summaryrefslogtreecommitdiff
path: root/test.py
diff options
context:
space:
mode:
Diffstat (limited to 'test.py')
-rw-r--r--test.py152
1 files changed, 0 insertions, 152 deletions
diff --git a/test.py b/test.py
deleted file mode 100644
index 950ba8d..0000000
--- a/test.py
+++ /dev/null
@@ -1,152 +0,0 @@
-import sys
-import httplib
-import urllib
-import time
-import json
-from threading import Thread, Lock
-
-class Timer(Thread):
- def __init__(self,func,interval=0.50):
- Thread.__init__(self)
- self.func = func
- self.interval = interval
-
- self.running = False
-
- def run(self):
- self.running = True
- while self.running:
- self.func()
- time.sleep(self.interval)
-
- def stop(self):
- self.running = False
-
-
-class OmegleChat(object):
- headers = {
- "Host" : "omegle.com",
- "Content-type": "application/x-www-form-urlencoded; charset=utf-8",
- "Accept": "application/json"
- }
-
- def __init__(self,poll_interval=0.5):
- self.conn = httplib.HTTPConnection('www.omegle.com')
-# self.conn.set_debuglevel(100)
-
- self.conn_lock = Lock()
-
- self.timer = Timer(self.events, poll_interval)
-
- def start(self):
- self.conn_lock.acquire()
- self.conn.request("POST", "/start", {}, OmegleChat.headers)
- self.conn_lock.release()
- r=self.conn.getresponse()
- body=r.read()
- id=body.split("\"")
- if id.__len__() == 3:
- self.id = id[1]
- print "Connected, id=%s" % self.id
- else:
- raise Exception("Bad response: %s" % body)
- #Poll events
- self.timer.start()
-
- def disconnect(self):
- self.timer.stop()
-
- self.conn_lock.acquire()
- self.conn.request("POST",
- "/disconnect",
- urllib.urlencode({'id' : self.id}),
- OmegleChat.headers)
- r = self.conn.getresponse()
- self.conn_lock.release()
- body = r.read()
- if body != "win":
- raise Exception("/disconnect; Bad response: %s" % body)
-
- def events(self):
- conn = httplib.HTTPConnection('www.omegle.com')
- conn.request("POST",
- "/events",
- urllib.urlencode({'id' : self.id}),
- OmegleChat.headers)
- r=conn.getresponse()
- body=r.read()
- self.dispatch_event(conn,body)
- conn.close()
-
- def send(self,msg):
- self.conn_lock.acquire()
- self.conn.request("POST",
- "/send",
- urllib.urlencode({'id':self.id,'msg':msg}),
- OmegleChat.headers)
- r=self.conn.getresponse()
- self.conn_lock.release()
- body = r.read()
- if body != "win":
- raise Exception("/send; Bad response %s" % body)
-
- def typing(self,msg):
- self.conn_lock.acquire()
- self.conn.request("POST",
- "/typing",
- urllib.urlencode({'id':self.id}),
- OmegleChat.headers)
- r=self.conn.getresponse()
- self.conn_lock.release()
- body = r.read()
- if body != "win":
- raise Exception("/typing; Bad response %s" % body)
-
-
- def dispatch_event(self,conn,body):
- try:
- data_set=json.read(body)
- for data in data_set:
- if data[0] == "typing":
- self.on_typing()
- elif data[0] == "gotMessage" and data.__len__() == 2:
- self.on_message(data[1])
- elif data[0] == "connected":
- self.on_connect()
- elif data[0] == "strangerDisconnected":
- self.timer.stop()
- self.on_disconnect()
- elif data[0] == "waiting":
- pass #unhandled
- else:
- print "Unknown JSON Data: %s" % body
- except json.ReadException:
- print "Json ReadException. Body: %s" % body
-
- def on_message(self,message):
- print "<<< %s" % message
- def on_connect(self):
- print "Connected"
- def on_typing(self):
- print "Stranger is typing"
- def on_disconnect(self):
- print "Stranger Disconnectet"
-
-
-if __name__ == "__main__":
- print "Lets chat. Type \"quit\" to disconnect"
- chat = OmegleChat()
- chat.start()
- while 1==1:
- try:
- cmd=sys.stdin.readline().strip()
- except KeyboardInterrupt:
- chat.disconnect()
- break
- if cmd=="quit":
- chat.disconnect()
- break
- else:
- print ">>> %s" % cmd
- chat.send(cmd)
-