From 22f880a3798e578a1128012f7ee684c53b457d1e Mon Sep 17 00:00:00 2001 From: yvesf Date: Wed, 8 Jul 2009 05:32:32 +0000 Subject: icq bridge git-svn-id: http://xapek.org/svn/common/omegle@1195 d0e8fea9-7529-0410-93fb-d39fd5b9c1dd --- omegle_icq.py | 50 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 42 insertions(+), 8 deletions(-) diff --git a/omegle_icq.py b/omegle_icq.py index 1ec7f7c..6100e7b 100644 --- a/omegle_icq.py +++ b/omegle_icq.py @@ -9,7 +9,7 @@ from twisted.python import log from omegle import OmegleChat - +# TEST RUN randoms = [['370496181', 'megahal123'], ['446323989','gagaga']] i=1 uin = randoms[i][0] @@ -56,6 +56,10 @@ CAP_TYPING = '\x56\x3f\xc8\x09\x0b\x6f\x41\xbd\x9f\x79\x42\x26\x09\xdf\xa2\xf3' class icqBot( oscar.BOSConnection ): capabilities = [oscar.CAP_CHAT,CAP_TYPING] + + def __init__(self,s,p,factory,**kwargs): + self.factory = factory + oscar.BOSConnection.__init__(self, s, p,**kwargs) def oscar_04_14(self,snac): data = snac[3] @@ -98,7 +102,7 @@ class icqBot( oscar.BOSConnection ): def gotBuddyList( self, buddylist ): self.activateSSI() - self.setProfile("Forget ICQ, MSN, Yahoo and the other shitty protocols! Use Jabber!") + self.setProfile("Forget ICQ, MSN, Yahoo and the other shitty protocols! Use XMPP/Jabber!") self.setIdleTime( 0 ) self.clientReady() for user in buddylist[0][0].users: @@ -162,10 +166,35 @@ class icqBot( oscar.BOSConnection ): class OscarCrap( oscar.OscarAuthenticator ): BOSClass = icqBot + # override this to connect our factory to our clients + def connectToBOS(self, server, port): + c = protocol.ClientCreator(reactor, OscarCrap.BOSClass, + self.username, self.cookie, self.factory) + return c.connectTCP(server, port) + + + +from twisted.internet.protocol import Protocol, ReconnectingClientFactory, ClientFactory -from twisted.internet.protocol import Protocol, ReconnectingClientFactory +class OscarFactory(ClientFactory): + OAClass=OscarCrap + def __init__(self, uid,password,icq=1): + self.uid = uid + self.password = password + self.icq = icq + + def buildProtocol(self, addr): + p = OscarFactory.OAClass(self.uid,password,icq=self.icq) + p.factory = self + return p + + def startedConnecting(self, connector): + print 'Started to connect to oscar' + + def connectionLost(self,reason): + print "CONECTION LOST" class OscarClientFactory(ReconnectingClientFactory): def startedConnecting(self, connector): @@ -175,22 +204,27 @@ class OscarClientFactory(ReconnectingClientFactory): print 'Connected.' print 'Resetting reconnection delay' self.resetDelay() - return protocol.ClientCreator( reactor, OscarCrap, uin, password, icq=1 ).connectTCP( 'login.icq.com', 5238 ) + #return protocol.ClientCreator( reactor, OscarCrap, uin, password, icq=1 ) + p=OscarCrap(uin, password, icq=1 ) + p.factory = self + return p def clientConnectionLost(self, connector, reason): print 'Lost connection. Reason:', reason - ReconnectingClientFactory.clientConnectionLost(self, connector, reason) +# ReconnectingClientFactory.clientConnectionLost(self, connector, reason) def clientConnectionFailed(self, connector, reason): print 'Connection failed. Reason:', reason - ReconnectingClientFactory.clientConnectionFailed(self, connector, - reason) +# ReconnectingClientFactory.clientConnectionFailed(self, connector, +# reason) + log.startLogging(sys.stdout) #protocol.ClientCreator( reactor, OscarCrap, uin, password, icq=1 ).connectTCP( 'login.icq.com', 5238 ) -reactor.connectTCP('login.icq.com', 5238, OscarClientFactory()) +reactor.connectTCP('login.icq.com', 5238, OscarFactory(uin,password,icq=1)) +#.connectTCP( 'login.icq.com', 5238 ) reactor.run() -- cgit v1.2.1