summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryvesf <yvesf@d0e8fea9-7529-0410-93fb-d39fd5b9c1dd>2009-07-08 05:32:32 +0000
committeryvesf <yvesf@d0e8fea9-7529-0410-93fb-d39fd5b9c1dd>2009-07-08 05:32:32 +0000
commit22f880a3798e578a1128012f7ee684c53b457d1e (patch)
tree948f913569480587e4e47356c278305d02f363cc
parent318fe180e481c259d69bd474c6e228f4ad7e1835 (diff)
downloadomegle-22f880a3798e578a1128012f7ee684c53b457d1e.tar.gz
omegle-22f880a3798e578a1128012f7ee684c53b457d1e.zip
icq bridge
git-svn-id: http://xapek.org/svn/common/omegle@1195 d0e8fea9-7529-0410-93fb-d39fd5b9c1dd
-rw-r--r--omegle_icq.py50
1 files 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()