From 55ff032856b22aa5e91a3416b83f69f577f732d3 Mon Sep 17 00:00:00 2001 From: yvesf Date: Thu, 2 Jul 2009 20:07:56 +0000 Subject: yhia git-svn-id: http://xapek.org/svn/common/omegle@1174 d0e8fea9-7529-0410-93fb-d39fd5b9c1dd --- omegle_icq.py | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 omegle_icq.py (limited to 'omegle_icq.py') diff --git a/omegle_icq.py b/omegle_icq.py new file mode 100644 index 0000000..bd38526 --- /dev/null +++ b/omegle_icq.py @@ -0,0 +1,114 @@ +#!/usr/bin/python +import struct +import sys +import thread + +from twisted.words.protocols import oscar +from twisted.internet import reactor, protocol +from twisted.python import log + +from omegle import OmegleChat + + +randoms = [['370496181', 'megahal123'], ['446323989','gagaga']] +i=0 +uin = randoms[i][0] +password = randoms[i][1] + +class OmegleICQChat(OmegleChat): + def __init__(self,icqconn,user): + self.user = user + self.icqconn = icqconn + OmegleChat.__init__(self,name="("+user.name+")") + def on_message(self,message): + print "got message %s" % message + self.send_icqconn( message ) + + def send_icqconn(self,message): + reactor.callFromThread(self.icqconn.sendMessage, self.user.name, str(message) ) + + def on_connect(self): + print "connected" + self.send_icqconn( "== Stranger CONNECTED (type disconnect to disconnect) ==" ) + def on_disconnect(self): + print "disconnecteed" + self.send_icqconn( "==Stranger Disconnected ==" ) + + +class icqBot( oscar.BOSConnection ): + capabilities = [oscar.CAP_CHAT] + + def initDone( self ): + self.requestSelfInfo() + self.requestSSI().addCallback(self.gotBuddyList) + + self.omegleConns = {} + + def shutdown( self ): + for conn in self.omegleConns: + if conn.is_connected: + conn.disconnect() + + def updateBuddy(self, user): + print "Update buddy %s" % user + + def gotBuddyList( self, buddylist ): + self.activateSSI() + self.setProfile("Forget ICQ, MSN, Yahoo and the other shitty protocols! Use Jabber!") + self.setIdleTime( 0 ) + self.clientReady() + for user in buddylist[0][0].users: + print "Authorize %s" % user.name + self.sendAuthorizationResponse(user.name, True, '') + + print 'ICQ-Autoresponder-Bot aktiviert ;-)' + + def receiveMessage( self, user, multiparts, flags ): + print "receiveMessage(%s,%s,%s)" % (user,multiparts,flags) + if not self.omegleConns.has_key(user.name): + self.omegleConns[user.name] = OmegleICQChat(self,user) + + try: + message = str(multiparts[0][0]) + if not self.omegleConns[user.name].is_connected: + if message == "connect": + self.omegleConns[user.name].start() + self.sendMessage(user.name, "Connecting you to omegle") + else: + self.sendMessage(user.name, "Not connected, type >connect<") + elif self.omegleConns[user.name].is_connected and not self.omegleConns[user.name].is_confirmed: + self.sendMessage(user.name, "Wait for connection confirm from omegle") + elif self.omegleConns[user.name].is_confirmed and message == "disconnect": + self.omegleConns[user.name].disconnect() + self.sendMessage(user.name, "Disconnecting") + else: + print "Send: %s" % message + self.omegleConns[user.name].send(message) + except Exception,e: + print "error: %s %s\n%s" % (user,multiparts,e) + + def chatReceiveMessage( self, chat, user, message ): + self.receiveMessage( self, user, message, 0 ) + + def receiveSendFileRequest(self, *args): +# def receiveSendFileRequest(self, user, file, description, cookie): + print args + + def sendAuthorizationResponse(self, uin, success, responsString): + packet = struct.pack("b", len(uin)) + uin + if success: + packet += struct.pack("b", 1) + else: + packet += struct.pack("b", 0) + packet += struct.pack(">H", len(responsString)) + responsString + self.sendSNACnr(0x13, 0x1a, packet) + + +class OscarCrap( oscar.OscarAuthenticator ): + BOSClass = icqBot + + +log.startLogging(sys.stdout) +protocol.ClientCreator( reactor, OscarCrap, uin, password, icq=1 ).connectTCP( 'login.icq.com', 5238 ) +reactor.run() + -- cgit v1.2.1