diff options
Diffstat (limited to 'omegle.py')
-rw-r--r-- | omegle.py | 27 |
1 files changed, 16 insertions, 11 deletions
@@ -39,26 +39,31 @@ class Timer(Thread): class RESTClient(object): """Some routines used for calling the webservice""" headers = { - "Host" : "omegle.com", "Content-type": "application/x-www-form-urlencoded; charset=utf-8", "Accept": "application/json" } def __init__(self,host,http_debuglevel=0): + self.host=host self.conn_lock = Lock() self.conn = httplib.HTTPConnection(host) self.conn.set_debuglevel(http_debuglevel) def request(self,method,path,params): self.conn_lock.acquire() - self.conn.request(method,path,params,RESTClient.headers) - resp = self.conn.getresponse() - self.conn_lock.release() + try: + headers = RESTClient.headers.copy() + headers['Host'] = self.host + self.conn.request(method,path,params,headers) + resp = self.conn.getresponse() + finally: + self.conn_lock.release() return resp class OmegleChat(RESTClient): - def __init__(self,poll_interval=0.5,name=""): - RESTClient.__init__(self,'www.omegle.com') + def __init__(self,poll_interval=0.5,name="",host="omegle.com"): + self.name = name + RESTClient.__init__(self,host) self.timer = Timer(self._events, poll_interval) self.logger = logging.getLogger(__name__ + "." + self.__class__.__name__ + name) @@ -68,7 +73,7 @@ class OmegleChat(RESTClient): def start(self): """Starts a chat session. You have to wait until is_confirmed is set (or use on_connect)""" - self.logger.debug("/start") + self.logger.debug("/start host=%s" % self.host) if self.is_connected: self.logger.error("Already connected") raise Exception("Already connected") @@ -103,7 +108,7 @@ class OmegleChat(RESTClient): def _events(self): """does use its own "HTTPConnection" because its called async from a thread""" - conn = httplib.HTTPConnection('www.omegle.com') + conn = httplib.HTTPConnection(self.host) conn.request("POST", "/events", urllib.urlencode({'id' : self.id}), @@ -193,13 +198,13 @@ class OmegleChat(RESTClient): """To be overwritten""" self.logger.info("Server sent [\"waiting\"]") -def get_count(): +def get_count(host="omegle.com"): """Return the number of current online omegle users""" headers = { - "Host" : "omegle.com", + "Host" : host, "Content-type": "application/x-www-form-urlencoded; charset=utf-8", "Accept": "application/json"} - conn = httplib.HTTPConnection('www.omegle.com') + conn = httplib.HTTPConnection(host) conn.request("GET", "/count", urllib.urlencode({}), |