MSN Bot Class

makobu makobu.mwambiriro at gmail.com
Thu Oct 11 05:56:55 EDT 2007


##########################################################################
# MsnClient Class -- A basic class that enables one to create an MSN
client this way:
#  x = MsnClient(to_msnid, bot_msnid, bot_msnid_password, messege);
x.tell()
# (C) Timothy Makobu, 2007
##########################################################################

import select
import socket
import thread
import msnlib
import msncb
import time
import sys

class MsnClient:
    def __init__(self, to_id='', bot_id='', bot_pass='',
message='Hi :D'):
        """ MsnClient(to_msnid, bot_msnid, bot_msnid_password,
messege) """
        self.to_id = to_id
        self.message = message
        self.msn_obj = msnlib.msnd()
        self.msn_obj.cb = msncb.cb()
        self.msn_obj.email = bot_id
        self.msn_obj.pwd = bot_pass
        self.msn_obj.login()
        self.msn_obj.sync()
        self.msn_obj.change_status('online')

    def _send_message(self):
        time.sleep(15)
        print 'Here 2'
        print 'here 3', self.msn_obj.sendmsg(self.to_id, self.message)
        time.sleep(30)
        self._quit()
    def _quit(self):
        try:
            self.msn_obj.disconnect()
        except:
            pass
        sys.exit(0)
    def tell(self):
        thread.start_new_thread(self._send_message, ())
        while 1:
            self.nd = self.msn_obj.pollable()
            self.in_fd = self.nd[0]
            self.out_fd = self.nd[1]
            try:
                self.poller = select.select(self.in_fd, self.out_fd,
[], 0)
            except:
                self._quit()
            for self.i in self.poller[0] + self.poller[1]:
                try:
                    self.msn_obj.read(self.i)
                except('SocketError', socket.error), err:
                    if self.i != self.msn_obj:
                        self.msn_obj.close(self.i)
                    else:
                        self._quit()
            time.sleep(0.1)




More information about the Python-list mailing list