def __init__(self, view_=None, model_=None, debug=False): if view_ == None: self.view = view.View() else: self.view = view_ if model_ == None: self.model = model.Model() else: self.model = model_ self.soap = SOAP() ######## #root folder self.folders_dom = {} self.ses_id = '' self.chomik_id = '0' self.folder_id = '0' self.cur_fold = [] self.user = '' self.password = '' self.last_login = 0 self.debug = debug
def __init__(self, view_=None, model_=None, debug=False): #reload(sys) #sys.setdefaultencoding('utf8') if view_ == None: self.view = view.View() else: self.view = view_ if model_ == None: self.model = model.Model() else: self.model = model_ self.soap = SOAP() ######## #root folder self.folders_dom = {} self.ses_id = '' self.chomik_id = '0' self.folder_id = '0' self.cur_fold = [] self.user = '' self.password = '' self.last_login = 0 self.debug = debug self.cookie = ''
def __init__(self, view_ = None, model_ = None): if view_ == None: self.view = view.View() else: self.view = view_ if model_ == None: self.model = model.Model() else: self.model = model_ self.soap = SOAP() ######## #root folder self.folders_dom = {} self.ses_id = '' self.chomik_id = '0' self.folder_id = '0' self.cur_fold = [] self.user = '' self.password = '' self.last_login = 0
def __init__(self, view_ = None, model_ = None, debug = False): #reload(sys) #sys.setdefaultencoding('utf8') if view_ == None: self.view = view.View() else: self.view = view_ if model_ == None: self.model = model.Model() else: self.model = model_ self.soap = SOAP() ######## #root folder self.folders_dom = {} self.ses_id = '' self.chomik_id = '0' self.folder_id = '0' self.cur_fold = [] self.user = '' self.password = '' self.last_login = 0 self.debug = debug self.cookie = ''
class Chomik(object): def __init__(self, view_ = None, model_ = None, debug = False): if view_ == None: self.view = view.View() else: self.view = view_ if model_ == None: self.model = model.Model() else: self.model = model_ self.debug = debug self.soap = SOAP() ######## #root folder self.folders_dom = {} self.ses_id = '' self.chomik_id = '0' self.folder_id = '0' self.cur_fold = [] self.user = '' self.password = '' self.last_login = 0 self.cookie = '' self.chomikbox_url = '' self.opener = None def send(self, content, l_ip = "box.chomikuj.pl", l_port = 80): if l_ip != None: login_ip = l_ip if l_port != None: login_port = l_port sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(glob_timeout) sock.connect( (login_ip, login_port) ) sock.send(content) resp = "" kRespSize = 2056 while True: tmp = sock.recv(kRespSize) resp += tmp if tmp == '' or tmp.endswith("\r\n\r\n"): break sock.close() if "Set-Cookie: __cfduid=" in resp: self.cookie = re.findall("Set-Cookie: __cfduid=([^;]*)", resp)[0] resp = resp.partition("\r\n\r\n")[2] resp = re.sub("\r\n\w{1,10}\r\n", "", resp) _, _, resp = resp.partition("<") resp = "<" + resp resp,_,_ = resp.rpartition(">") resp = resp + ">" return resp def login(self, user, password): """ Logowanie sie do chomika Zwraca True przy pomyslnym zalogowani, a False wpp """ self.user = user self.password = password if self.relogin() == True: self.get_dir_list() return True else: return False def relogin(self): if self.last_login + 360 > time.time(): return True self.last_login = time.time() password = hashlib.md5(self.password).hexdigest() xml_dict = [('ROOT',[('name' , self.user), ('passHash', password), ('ver' , '4'), ('client',[('name','chomikbox'),('version',version) ]) ])] xml_content = self.soap.soap_dict_to_xml(xml_dict, "Auth").strip() xml_len = len(xml_content) header = """POST /services/ChomikBoxService.svc HTTP/1.1\r\n""" header += """SOAPAction: http://chomikuj.pl/IChomikBoxService/Auth\r\n""" #header += """Content-Encoding: identity\r\n""" header += """Content-Type: text/xml;charset=utf-8\r\n""" header += """Content-Length: %d\r\n""" % xml_len header += """Connection: Keep-Alive\r\n""" header += """Accept-Encoding: identity\r\n""" header += """Accept-Language: pl-PL,en,*\r\n""" header += """User-Agent: Mozilla/5.0\r\n""" header += """Host: box.chomikuj.pl\r\n\r\n""" header += xml_content resp = self.send(header) resp_dict = self.soap.soap_xml_to_dict(resp) status = resp_dict['s:Envelope']['s:Body']['AuthResponse']['AuthResult']['a:status'] if status != 'Ok': self.view.print_( "Blad(relogin):" ) self.view.print_( status ) return False try: chomik_id = resp_dict['s:Envelope']['s:Body']['AuthResponse']['AuthResult']['a:hamsterId'] ses_id = resp_dict['s:Envelope']['s:Body']['AuthResponse']['AuthResult']['a:token'] self.ses_id = ses_id self.chomik_id = chomik_id if self.ses_id == "-1" or self.chomik_id == "-1": return False except IndexError, e: self.view.print_( "Blad(relogin):" ) self.view.print_( e ) self.view.print_( resp ) return False else:
class Chomik(object): def __init__(self, view_ = None, model_ = None, debug = False): #reload(sys) #sys.setdefaultencoding('utf8') if view_ == None: self.view = view.View() else: self.view = view_ if model_ == None: self.model = model.Model() else: self.model = model_ self.soap = SOAP() ######## #root folder self.folders_dom = {} self.ses_id = '' self.chomik_id = '0' self.folder_id = '0' self.cur_fold = [] self.user = '' self.password = '' self.last_login = 0 self.debug = debug self.cookie = '' def send(self, content): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(glob_timeout) sock.connect( (login_ip, login_port) ) sock.send(content) resp = "" kRespSize = 2056 while True: tmp = sock.recv(kRespSize) resp += tmp #if tmp == '' or tmp.endswith("\r\n\r\n"): if tmp.endswith("\r\n\r\n") and resp.count("\r\n\r\n") >= 2 or tmp == '': break sock.close() if "Set-Cookie: __cfduid=" in resp: self.cookie = re.findall("Set-Cookie: __cfduid=([^;]*)", resp)[0] resp = resp.partition("\r\n\r\n")[2] resp = re.sub("\r\n\w{1,10}\r\n", "", resp) _, _, resp = resp.partition("<") resp = "<" + resp resp,_,_ = resp.rpartition(">") resp = resp + ">" return resp def login(self, user, password): """ Logowanie sie do chomika Zwraca True przy pomyslnym zalogowani, a False wpp """ self.user = user self.password = password if self.relogin() == True: self.get_dir_list() return True else: return False def relogin(self): #we log in recently if self.last_login + 300 > time.time(): return True self.last_login = time.time() password = hashlib.md5(self.password).hexdigest() xml_dict = [('ROOT',[('name' , self.user), ('passHash', password), ('ver' , '4'), ('client',[('name','chomikbox'),('version',version) ]) ])] xml_content = self.soap.soap_dict_to_xml(xml_dict, "Auth").strip() xml_len = len(xml_content) header = """POST /services/ChomikBoxService.svc HTTP/1.1\r\n""" header += """SOAPAction: http://chomikuj.pl/IChomikBoxService/Auth\r\n""" #header += """Content-Encoding: identity\r\n""" header += """Content-Type: text/xml;charset=utf-8\r\n""" header += """Content-Length: %d\r\n""" % xml_len header += """Connection: Keep-Alive\r\n""" header += """Accept-Encoding: identity\r\n""" header += """Accept-Language: pl-PL,en,*\r\n""" header += """User-Agent: Mozilla/5.0\r\n""" header += """Host: box.chomikuj.pl\r\n\r\n""" header += xml_content resp = self.send(header) resp_dict = self.soap.soap_xml_to_dict(resp) status = resp_dict['s:Envelope']['s:Body']['AuthResponse']['AuthResult']['a:status'] if status != 'Ok': self.view.print_( "Blad(relogin):" ) self.view.print_( status ) return False try: chomik_id = resp_dict['s:Envelope']['s:Body']['AuthResponse']['AuthResult']['a:hamsterId'] ses_id = resp_dict['s:Envelope']['s:Body']['AuthResponse']['AuthResult']['a:token'] self.ses_id = ses_id self.chomik_id = chomik_id if self.ses_id == "-1" or self.chomik_id == "-1": return False except IndexError, e: self.view.print_( "Blad(relogin):" ) self.view.print_( e ) #self.view.print_( resp ) return False else:
class Chomik(object): def __init__(self, view_ = None, model_ = None): if view_ == None: self.view = view.View() else: self.view = view_ if model_ == None: self.model = model.Model() else: self.model = model_ self.soap = SOAP() ######## #root folder self.folders_dom = {} self.ses_id = '' self.chomik_id = '0' self.folder_id = '0' self.cur_fold = [] self.user = '' self.password = '' self.last_login = 0 def send(self, content): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(glob_timeout) sock.connect( (login_ip, login_port) ) sock.send(content) resp = "" while True: tmp = sock.recv(640) if tmp == '': break resp += tmp sock.close() return resp.partition("\r\n\r\n")[2] def login(self, user, password): """ Logowanie sie do chomika Zwraca True przy pomyslnym zalogowani, a False wpp """ self.user = user self.password = password if self.relogin() == True: self.get_dir_list() return True else: return False def relogin(self): #we log in recently if self.last_login + 3600 > time.time(): return True password = hashlib.md5(self.password).hexdigest() xml_dict = [('ROOT',[('name' , self.user), ('passHash', password), ('ver' , '4'), ('client',[('name','chomikbox'),('version','2.0.4.3') ]) ])] xml_content = self.soap.soap_dict_to_xml(xml_dict, "Auth").strip() xml_len = len(xml_content) header = """POST /services/ChomikBoxService.svc HTTP/1.1\r\n""" header += """SOAPAction: http://chomikuj.pl/IChomikBoxService/Auth\r\n""" header += """Content-Type: text/xml;charset=utf-8\r\n""" header += """Content-Length: %d\r\n""" % xml_len header += """Connection: Keep-Alive\r\n""" header += """Accept-Language: pl-PL,en,*\r\n""" header += """User-Agent: Mozilla/5.0\r\n""" header += """Host: box.chomikuj.pl\r\n\r\n""" header += xml_content resp = self.send(header) resp_dict = self.soap.soap_xml_to_dict(resp) status = resp_dict['s:Envelope']['s:Body']['AuthResponse']['AuthResult']['a:status'] if status != 'Ok': self.view.print_( "Blad(relogin):" ) self.view.print_( status ) return False try: chomik_id = resp_dict['s:Envelope']['s:Body']['AuthResponse']['AuthResult']['a:hamsterId'] ses_id = resp_dict['s:Envelope']['s:Body']['AuthResponse']['AuthResult']['a:token'] self.ses_id = ses_id self.chomik_id = chomik_id except IndexError, e: self.view.print_( "Blad(relogin):" ) self.view.print_( e ) #self.view.print_( resp ) return False else: