def get(url, params={}): try: if getVideostarCredentialsInfo() == False: if control.yesnoDialog( control.lang(40001).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'Trakt', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')): control.openSettings('2.3') raise Exception() url = urlparse.urljoin('https://api.videostar.pl', url) result = client.request(url, headers=headers, cookie=control.get_setting('videostar.sess')) r = json.loads(result) if r['status'] == "error" or result == None: if r['errors'][0]['code'] == 1: login() control.sleep(500) mycookie = control.get_setting('videostar.sess') result = client.source( url, headers=headers, cookie=control.get_setting('videostar.sess')) return result except Exception as e: control.log('Error videostar.get %s' % e) pass
def login(): try: if getItiviCredentialsInfo() == False: if control.yesnoDialog(control.lang(40006).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'Itivi', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')): control.openSettings('2.1') raise Exception() params = {} url = 'http://itivi.pl/include/login.php' params['log'] = control.get_setting('itivi.user') params['pwd'] = control.get_setting('itivi.pass') client2._clean_cookies(url) result = client2.http_get(url, data=params) myres = client.parseDOM(result,'div', attrs={'class': 'account_field_box'})[0] myres = client.parseDOM(myres,'font') premium = myres[0] + client.parseDOM(myres[1],'b')[0] + ' ' + control.lang(30493) control.infoDialog(premium.encode('utf-8'), time=200) return True except Exception as e: control.infoDialog(control.lang(30485).encode('utf-8'), time=400) control.log('Error itivi.login %s' % e) return True
def clear(table=None): try: control.idle() if table == None: table = ['rel_list', 'rel_lib'] elif not type(table) == list: table = [table] yes = control.yesnoDialog(control.lang(30401).encode('utf-8'), '', '') if not yes: return control.set_setting('telewizjada.token', '') control.set_setting('telewizjada.os', '') control.set_setting('telewizjada.ua', '') control.set_setting('telewizjada.browser', '') control.set_setting('telewizjada.device', '') control.set_setting('telewizjada.expire', '') control.set_setting('telewizjada.referer', '') control.set_setting('telewizjada.refreshcookie', '') control.set_setting('telewizjada.tokenExpireIn', '') control.set_setting('yoytv.sess', '') dbcon = database.connect(control.cacheFile) dbcur = dbcon.cursor() for t in table: try: dbcur.execute("DROP TABLE IF EXISTS %s" % t) dbcur.execute("VACUUM") dbcon.commit() except: pass control.infoDialog(control.lang(30402).encode('utf-8')) except: pass
def wizjachanels(): try: if getWizjaCredentialsInfo() == False: if control.yesnoDialog(control.lang(40005).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'Wizja', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')): control.openSettings('2.3') raise Exception() login() items = [] url = 'http://wizja.tv/' result = client2.http_get(url) result = client.parseDOM(result, 'td') for i in result: item = {} try: result2 = [(client.parseDOM(i, 'a', ret='href')[0], client.parseDOM(i, 'img', ret='src')[0])] #control.log('Dalina %s' % result2) item['img'] = 'http://wizja.tv/' + result2[0][1] item['img'] = item['img'].encode('utf-8') item['id'] = result2[0][0].replace('watch.php?id=','') item['id'] = item['id'].encode('utf-8') item['title'] = result2[0][1].replace('ch_logo/','').replace('.png','') item['title'] = item['title'].upper().encode('utf-8') # control.log('Calina %s' % item) items.append(item) except Exception as e: control.log(' Error wizja.wizjachanels for %s' % e) pass return items except Exception as e: control.log('Error wizja.wizjachanels %s' % e)
def login(): try: if getItiviCredentialsInfo() == False: if control.yesnoDialog( control.lang(40006).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'Itivi', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')): control.openSettings('2.1') raise Exception() params = {} #url = 'http://itivi.pl/include/login.php' #params['log'] = control.get_setting('itivi.user') #params['pwd'] = control.get_setting('itivi.pass') #client2._clean_cookies(url) #result = client2.http_get(url, data=params) #myres = client.parseDOM(result,'div', attrs={'class': 'account_field_box'})[0] #myres = client.parseDOM(myres,'font') #premium = myres[0] + client.parseDOM(myres[1],'b')[0] + ' ' + control.lang(30493) #control.infoDialog(premium.encode('utf-8'), time=200) return True except Exception as e: control.infoDialog(control.lang(30485).encode('utf-8'), time=400) control.log('Error itivi.login %s' % e) return True
def getchanels(): try: if getYoyCredentialsInfo() == False: if control.yesnoDialog(control.lang(40004).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'YOY', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')): control.openSettings('2.5') raise Exception() login() items = [] for j in range(1,10): url = 'http://yoy.tv/channels?live=1&country=140&page=%s' % j result = client2.http_get(url) result = client.parseDOM(result, 'a', attrs = {'class': 'thumb-info team'}) result = [(client.parseDOM(i, 'img', ret='src')[0], client.parseDOM(i, 'img', ret='alt')[0]) for i in result] for i in result: item = {} item['id'] = i[0].replace('http://yoy.tv/channel/covers/','').replace('.jpg?cache=32','') control.log('Alina %s' % item['id']) item['id']=item['id'].encode('utf-8') item['title'] = i[1].upper().encode('utf-8') items.append(item) return items except: #control.openSettings('6.1') control.log('ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ' )
def getVideoInfo(self, content, name, year, imdb, tvdb): try: self.loadingTime = time.time() self.totalTime = 0 self.currentTime = 0 self.folderPath = control.infoLabel('Container.FolderPath') self.name = name self.year = year self.content = content self.file = self.name + '.strm' self.file = self.file.translate(None, '\/:*?"<>|').strip('.') self.imdb = 'tt' + imdb if imdb.isdigit() else imdb self.tvdb = tvdb if not tvdb == None else '0' except: pass try: if self.content == 'movie': self.title = re.compile('(.+?) [(]\d{4}[)]$').findall( self.name)[0] elif self.content == 'episode': self.tvshowtitle, self.season, self.episode = re.compile( '(.+?) S(\d*)E(\d*)$').findall(self.name)[0] self.season, self.episode = '%01d' % int( self.season), '%01d' % int(self.episode) self.file2 = '%s (%s) S%02dE%02d.strm' % ( self.tvshowtitle.translate(None, '\/:*?"<>|'), self.year, int(self.season), int(self.episode)) except: pass try: if control.setting('resume_playback') == 'true': self.offset = bookmarks.getBookmark(self.name, self.imdb) if self.offset == '0': raise Exception() minutes, seconds = divmod(float(self.offset), 60) hours, minutes = divmod(minutes, 60) yes = control.yesnoDialog( '%s %02d:%02d:%02d' % (control.lang(30461).encode('utf-8'), hours, minutes, seconds), '', '', self.name, control.lang(30463).encode('utf-8'), control.lang(30462).encode('utf-8')) if yes: self.offset = '0' except: pass try: if self.content == 'movie': control.window.setProperty('script.trakt.ids', json.dumps({'imdb': self.imdb})) elif self.content == 'episode': control.window.setProperty('script.trakt.ids', json.dumps({'tvdb': self.tvdb})) except: pass
def getchanels(): try: if getYoyCredentialsInfo() == False: if control.yesnoDialog( control.lang(40004).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'YOY', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')): control.openSettings('1.21') raise Exception() #login() items = [] for j in range(1, 10): try: url = 'http://yoy.tv/channels?live=1&country=140&page=%s' % j result = client.request(url) result = client.parseDOM(result, 'a', attrs={'class': 'thumb-info team'}) result = [(client.parseDOM(i, 'img', ret='src')[0], client.parseDOM(i, 'img', ret='alt')[0]) for i in result] for i in result: item = {} item['id'] = i[0].replace('http://yoy.tv/channel/covers/', '').replace('.jpg?cache=32', '') control.log('YOY channel %s' % item['id']) item['id'] = item['id'].encode('utf-8') item['title'] = control.trans(i[1].upper().encode('utf-8')) items.append(item) except: control.log('YOY url: %s' % url) pass if 'true' == control.get_setting('xxxmode'): url = 'http://yoy.tv/channels?category=erotyka' result = client.request(url) result = client.parseDOM(result, 'a', attrs={'class': 'thumb-info team'}) result = [(client.parseDOM(i, 'img', ret='src')[0], client.parseDOM(i, 'img', ret='alt')[0]) for i in result] for i in result: control.log('XXX: %s' % i[0]) item = {} item['id'] = i[0].replace('http://yoy.tv/channel/covers/', '').replace('.jpg?cache=32', '') control.log('XXX Alina %s' % item['id']) item['id'] = item['id'].encode('utf-8') item['title'] = 'XXX ' + control.trans( i[1].upper().encode('utf-8')) items.append(item) return items except Exception as e: control.log('Error yoy.getchanels %s' % e)
def get(url, proxy=''): try: pl_proxy = control.setting('pl_proxy') pl_proxy_port = control.setting('pl_proxy_port') if getVideostarCredentialsInfo() == False: if control.yesnoDialog( control.lang(40001).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'Trakt', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')): control.openSettings('1.11') raise Exception() url = urlparse.urljoin('https://api.videostar.pl', url) if proxy == '': result = client.request( url, headers=headers, cookie=control.get_setting('videostar.sess')) else: myproxy = pl_proxy if pl_proxy_port != '': myproxy = myproxy + ':' + pl_proxy_port myproxy_check = is_bad_proxy(myproxy) if not myproxy_check == '': control.dialog.ok( control.addonInfo('name'), control.lang(40013).encode('utf-8') + ' ' + myproxy_check.encode('utf-8'), '') control.openSettings('0.11') return None result = client.request( url, headers=headers, cookie=control.get_setting('videostar.sess'), proxy=myproxy) r = json.loads(result) if r['status'] == "error" or result == None: if r['errors'][0]['code'] == 1: login() control.sleep(500) mycookie = control.get_setting('videostar.sess') result = client.source( url, headers=headers, cookie=control.get_setting('videostar.sess')) return result except Exception as e: control.log('Error videostar.get %s' % e) pass
def get(url, proxy='', retry=True): try: pl_proxy = control.setting('pl_proxy') pl_proxy_port = control.setting('pl_proxy_port') if getVideostarCredentialsInfo() == False: control.infoDialog('Enter credentials') if control.yesnoDialog( control.lang(40001).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'Trakt', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')): control.openSettings('1.11') return None full_url = urlparse.urljoin('https://api-pilot.wp.pl', url) if proxy == '': result = client.request( full_url, headers=headers, cookie=control.get_setting('videostar.sess')) else: myproxy = pl_proxy if pl_proxy_port != '': myproxy = myproxy + ':' + pl_proxy_port myproxy_check = is_bad_proxy(myproxy) if not myproxy_check == '': control.dialog.ok( control.addonInfo('name'), control.lang(40013).encode('utf-8') + ' ' + myproxy_check.encode('utf-8'), '') control.openSettings('0.11') return None result = client.request( full_url, headers=headers, cookie=control.get_setting('videostar.sess'), proxy=myproxy) r = json.loads(result) if (r['status'] == "error" or result == None) and retry: login() result = get(url, proxy, False) return result except Exception as e: control.log('Error videostar.get %s' % e) pass
def clearSources(self): try: control.idle() yes = control.yesnoDialog(control.lang(30510).encode('utf-8'), '', '') if not yes: return control.makeFile(control.dataPath) dbcon = database.connect(control.sourcescacheFile) dbcur = dbcon.cursor() dbcur.execute("DROP TABLE IF EXISTS rel_src") dbcur.execute("VACUUM") dbcon.commit() control.infoDialog(control.lang(30511).encode('utf-8')) except: pass
def clearSources(self): try: control.idle() yes = control.yesnoDialog( control.lang(30510).encode('utf-8'), '', '') if not yes: return control.makeFile(control.dataPath) dbcon = database.connect(control.sourcescacheFile) dbcur = dbcon.cursor() dbcur.execute("DROP TABLE IF EXISTS rel_src") dbcur.execute("VACUUM") dbcon.commit() control.infoDialog(control.lang(30511).encode('utf-8')) except: pass
def getVideoInfo(self, content, name, year, imdb, tvdb): try: self.loadingTime = time.time() self.totalTime = 0 ; self.currentTime = 0 self.folderPath = control.infoLabel('Container.FolderPath') self.name = name ; self.year = year ; self.content = content self.file = self.name + '.strm' self.file = self.file.translate(None, '\/:*?"<>|').strip('.') self.imdb = 'tt' + imdb if imdb.isdigit() else imdb self.tvdb = tvdb if not tvdb == None else '0' except: pass try: if self.content == 'movie': self.title = re.compile('(.+?) [(]\d{4}[)]$').findall(self.name)[0] elif self.content == 'episode': self.tvshowtitle, self.season, self.episode = re.compile('(.+?) S(\d*)E(\d*)$').findall(self.name)[0] self.season, self.episode = '%01d' % int(self.season), '%01d' % int(self.episode) self.file2 = '%s (%s) S%02dE%02d.strm' % (self.tvshowtitle.translate(None, '\/:*?"<>|'), self.year, int(self.season), int(self.episode)) except: pass try: if control.setting('resume_playback') == 'true': self.offset = bookmarks.getBookmark(self.name, self.imdb) if self.offset == '0': raise Exception() minutes, seconds = divmod(float(self.offset), 60) ; hours, minutes = divmod(minutes, 60) yes = control.yesnoDialog('%s %02d:%02d:%02d' % (control.lang(30461).encode('utf-8'), hours, minutes, seconds), '', '', self.name, control.lang(30463).encode('utf-8'), control.lang(30462).encode('utf-8')) if yes: self.offset = '0' except: pass try: if self.content == 'movie': control.window.setProperty('script.trakt.ids', json.dumps({'imdb': self.imdb})) elif self.content == 'episode': control.window.setProperty('script.trakt.ids', json.dumps({'tvdb': self.tvdb})) except: pass
def getchanels(): try: if getYoyCredentialsInfo() == False: if control.yesnoDialog(control.lang(40004).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'YOY', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')): control.openSettings('1.21') raise Exception() #login() items = [] for j in range(1,10): try: url = 'http://yoy.tv/channels?live=1&country=140&page=%s' % j result = client.request(url) result = client.parseDOM(result, 'a', attrs = {'class': 'thumb-info team'}) result = [(client.parseDOM(i, 'img', ret='src')[0], client.parseDOM(i, 'img', ret='alt')[0]) for i in result] for i in result: item = {} item['id'] = i[0].replace('http://yoy.tv/channel/covers/','').replace('.jpg?cache=32','') control.log('YOY channel %s' % item['id']) item['id']=item['id'].encode('utf-8') item['title'] = control.trans(i[1].upper().encode('utf-8')) items.append(item) except: control.log('YOY url: %s' % url) pass if 'true'== control.get_setting('xxxmode'): url = 'http://yoy.tv/channels?category=erotyka' result = client.request(url) result = client.parseDOM(result, 'a', attrs = {'class': 'thumb-info team'}) result = [(client.parseDOM(i, 'img', ret='src')[0], client.parseDOM(i, 'img', ret='alt')[0]) for i in result] for i in result: control.log('XXX: %s' %i[0]) item = {} item['id'] = i[0].replace('http://yoy.tv/channel/covers/','').replace('.jpg?cache=32','') control.log('XXX Alina %s' % item['id']) item['id']=item['id'].encode('utf-8') item['title'] = 'XXX '+ control.trans(i[1].upper().encode('utf-8')) items.append(item) return items except Exception as e: control.log('Error yoy.getchanels %s' % e)
def login(): try: if getItiviCredentialsInfo() == False: if control.yesnoDialog(control.lang(40006).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'Itivi', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')): control.openSettings('2.1') raise Exception() params = {} url = 'http://itivi.pl/include/login.php' params['log'] = control.get_setting('itivi.user') params['pwd'] = control.get_setting('itivi.pass') result = client2.http_get(url, data=params) return True except Exception as e: control.log('Error wizja.login %s' % e) return False
def login(): try: if getLooknijCredentialsInfo() == False: if control.yesnoDialog(control.lang(40008).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'Looknij', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')): control.openSettings('1.4') raise Exception() params = {} #url = 'http://itivi.pl/include/login.php' #params['log'] = control.get_setting('itivi.user') #params['pwd'] = control.get_setting('itivi.pass') #result = client2.http_get(url, data=params) return True except Exception as e: control.log('Error wizja.login %s' % e) return False
def get(url, params={}): try: if getVideostarCredentialsInfo() == False: if control.yesnoDialog(control.lang(40001).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'Trakt', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')): control.openSettings('2.3') raise Exception() url = urlparse.urljoin('https://api.videostar.pl', url) result = client.request(url, headers=headers, cookie=control.get_setting('videostar.sess')) r = json.loads(result) if r['status'] =="error" or result==None: if r['errors'][0]['code'] == 1: login() control.sleep(500) mycookie = control.get_setting('videostar.sess') result = client.source(url, headers=headers, cookie=control.get_setting('videostar.sess')) return result except Exception as e: control.log('Error videostar.get %s' % e) pass
def clear(table=None): try: control.idle() if table == None: table = ["rel_list", "rel_lib"] elif not type(table) == list: table = [table] yes = control.yesnoDialog(control.lang(30401).encode("utf-8"), "", "") if not yes: return control.set_setting("telewizjada.token", "") control.set_setting("telewizjada.os", "") control.set_setting("telewizjada.ua", "") control.set_setting("telewizjada.browser", "") control.set_setting("telewizjada.device", "") control.set_setting("telewizjada.expire", "") control.set_setting("telewizjada.referer", "") control.set_setting("telewizjada.refreshcookie", "") control.set_setting("telewizjada.tokenExpireIn", "") control.set_setting("yoytv.sess", "") dbcon = database.connect(control.cacheFile) dbcur = dbcon.cursor() for t in table: try: dbcur.execute("DROP TABLE IF EXISTS %s" % t) dbcur.execute("VACUUM") dbcon.commit() except: pass control.infoDialog(control.lang(30402).encode("utf-8")) except: pass
def get(url, proxy=''): try: pl_proxy = control.setting('pl_proxy') pl_proxy_port = control.setting('pl_proxy_port') if getVideostarCredentialsInfo() == False: if control.yesnoDialog(control.lang(40001).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'Trakt', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')): control.openSettings('1.11') raise Exception() url = urlparse.urljoin('https://api.videostar.pl', url) if proxy == '': result = client.request(url, headers=headers, cookie=control.get_setting('videostar.sess')) else: myproxy = pl_proxy if pl_proxy_port != '': myproxy = myproxy + ':' + pl_proxy_port myproxy_check = is_bad_proxy(myproxy) if not myproxy_check == '': control.dialog.ok(control.addonInfo('name'), control.lang(40013).encode('utf-8') + ' ' + myproxy_check.encode('utf-8'), '') control.openSettings('0.11') return None result = client.request(url, headers=headers, cookie=control.get_setting('videostar.sess'), proxy=myproxy) r = json.loads(result) if r['status'] =="error" or result==None: if r['errors'][0]['code'] == 1: login() control.sleep(500) mycookie = control.get_setting('videostar.sess') result = client.source(url, headers=headers, cookie=control.get_setting('videostar.sess')) return result except Exception as e: control.log('Error videostar.get %s' % e) pass
def getchanels(): try: if getYoyCredentialsInfo() == False: if control.yesnoDialog( control.lang(40004).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'YOY', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')): control.openSettings('2.5') raise Exception() login() items = [] for j in range(1, 10): url = 'http://yoy.tv/channels?live=1&country=140&page=%s' % j result = client2.http_get(url) result = client.parseDOM(result, 'a', attrs={'class': 'thumb-info team'}) result = [(client.parseDOM(i, 'img', ret='src')[0], client.parseDOM(i, 'img', ret='alt')[0]) for i in result] for i in result: item = {} item['id'] = i[0].replace('http://yoy.tv/channel/covers/', '').replace('.jpg?cache=32', '') control.log('Alina %s' % item['id']) item['id'] = item['id'].encode('utf-8') item['title'] = i[1].upper().encode('utf-8') items.append(item) return items except: #control.openSettings('6.1') control.log( 'ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ' )
def clear(table=None): try: control.idle() if table == None: table = ['rel_list', 'rel_lib'] elif not type(table) == list: table = [table] yes = control.yesnoDialog(control.lang(30401).encode('utf-8'), '', '') if not yes: return dbcon = database.connect(control.cacheFile) dbcur = dbcon.cursor() for t in table: try: dbcur.execute("DROP TABLE IF EXISTS %s" % t) dbcur.execute("VACUUM") dbcon.commit() except: pass control.infoDialog(control.lang(30402).encode('utf-8')) except: pass
def getstream(id): try: control.set_setting('pierwszatv.tokenExpireIn', '') control.set_setting('pierwszatv.serverId', '') control.set_setting('pierwszatv.streamId', '') control.set_setting('pierwszatv.token', '') if getPierwszaCredentialsInfo() == False: if control.yesnoDialog(control.lang(40003).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'Trakt', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')): control.set_setting('pierwszatv.user', '') control.set_setting('pierwszatv.password', '') control.openSettings('1.4') raise Exception() url = '/api/stream/create' params = {} params['id'] =id params['user'] =control.setting('pierwszatv.user').strip() params['password'] = urllib.quote_plus(control.setting('pierwszatv.password')) result = get(url, params) control.log('x1x1x1: %s' % result) result = json.loads(result) if result['status'] == 'ok': #time.sleep(1) expirein = int(int(result['tokenExpireIn'])*0.75) expirewhen = datetime.datetime.now() + datetime.timedelta(seconds=expirein) control.set_setting('pierwszatv.tokenExpireIn', str(int(time.mktime(expirewhen.timetuple())))) control.set_setting('pierwszatv.serverId', result['serverId']) control.set_setting('pierwszatv.streamId', result['streamId']) control.set_setting('pierwszatv.token', result['token']) for i in range(0, 5): try: r = get('/api/stream/status', {'serverId': result['serverId'] , 'streamId': result['streamId'], 'token': result['token']}) r = json.loads(r) if r['status'] == 'ok': #control.infoDialog(control.lang(30489).encode('utf-8'), time=6000) for j in range(0, 20): time.sleep(1) control.infoDialog(control.lang(30489).encode('utf-8'), time=500) try: result2 = client.request(r['source']+'?token='+result['token'],safe=True, timeout='2') control.log('Pierwsza link check nr: %s: result:%s' % (j,result2)) if result2 == None: raise Exception() else: return r['source']+'?token='+result['token'] except: pass return r['source']+'?token='+result['token'] time.sleep(3) except: pass if result['status'] == 'error': control.infoDialog('%s' % result['message'].encode('utf-8')) control.dialog.ok(control.addonInfo('name'), result['message'].encode('utf-8'), '') return None except Exception as e: control.log('Error pierwsza.getstream %s' % e )
def ipla_chanels(): control.log('Python version %s' % (sys.version)) #url10 = 'https://gm2.redefine.pl/rpc/system/' #headers10 = {'User-Agent': 'mipla_ios/122', 'Content-Type': 'application/x-www-form-urlencoded', # 'Accept-Language': 'pl-pl'} #post_init10 = {"jsonrpc": "2.0", "method": "getConfiguration", "id": 2, "params": { # "message": {"id": "CC3DFE81-1C70-403A-9C52-FC10EC51125A", "timestamp": "2016-10-16T00:08:57Z"}}} #data = requests.post(url10, data=post_init, headers=headers10) #print data.status_code, data.text #control.log('request %s|%s' % (data.status_code, data.text)) try: ipla_system_id() if getIplaCredentialsInfo() == False: if control.yesnoDialog(control.lang(40009).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'Ipla', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')): control.set_setting('ipla.user', '') control.set_setting('ipla.pass', '') control.openSettings('1.1') raise ValueError('No login orr password') user = control.setting('ipla.user').strip() password = hashlib.md5(control.setting('ipla.pass').strip()).hexdigest() systemid = control.setting('ipla.systemid').strip() items = [] post_getTVChannels = json.loads( '{"jsonrpc":"2.0","method":"getTvChannels","id":5,"params":{"authData":{"login":"******"},"message":{"id":"4B737B56-A11D-4E65-BC86-47EA1E40EC4D","timestamp":"2016-10-15T17:03:21Z"}}}') url_auth = 'https://getmedia.redefine.pl/tv/menu.json?passwdmd5='+password+'&api_client=mipla_ios&login='******'&machine_id=iOS%'+systemid+'&outformat=2&api_build=122' result = _call_ipla(url_system, post_init, headers) control.log('request %s' % (result)) result = _call_ipla(url_preauth, post_preauth, headers) result = _call_ipla(url_auth, headers=headers1) moje = json.loads(result) loginstatus = ipla_check_login(moje) if loginstatus <> 'OK': control.log('Ipla Login Error %s ' % loginstatus) control.infoDialog(loginstatus.encode('utf-8'),time=6000) control.dialog.ok(control.addonInfo('name') + ' - IPLA',loginstatus.encode('utf-8'), '') return myperms = [] for i in moje['config']['access_groups']: #control.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> %s' % i) if 'sc:' in i['code']: myperms.append(str(i['code'])) if 'oth:' in i['code']: myperms.append(str(i['code'])) #if 'loc:' in i['code']: # myperms.append(str(i['code'])) #control.log('###################################' % moje['config']) control.set_setting('ipla.passwdmd5', moje['config']['user']['passwdmd5']) my_action1 = moje['config']['traffic_url'] + 'id=' + moje['config']['traffic_id'] + \ '&extra=GoalName%3DInterfejs/Login/Email%7Cc%3Dipla-ios/122/10.0.2/Apple/iPhone&et=action' my_action2 = moje['config']['traffic_url'] + 'id=' + moje['config']['traffic_id'] + \ '&extra=GoalName%3DIInterfejs/Start_Aplikacji/Kolejny%7Cc%3Dipla-ios/122/10.0.2/Apple/iPhone&et=action' my_action3 = moje['config']['traffic_url'] + 'id=' + moje['config']['traffic_id'] + \ '&extra=GoalName%3DInterfejs/Przegl%C4%85danie%7Cc%3Dipla-ios/122/10.0.2/Apple/iPhone&et=view' result = _call_ipla(my_action1, headers=headers2) control.log('Python version %s' % (result)) result = _call_ipla(my_action2, headers=headers2) result = _call_ipla(my_action3, headers=headers2) post_getCat = json.loads( '{"jsonrpc":"2.0","method":"getCategoryWithFlatNavigation","id":4,"params":{"catid":0,"authData":{"login":"******"},"message":{"id":"47B80EF0-19D0-4BD0-82FF-80BC50EDF2A9","timestamp":"2016-10-15T23:02:22Z"}}}') #result = _call_ipla(url_navigation, post_getCat, headers) result = _call_ipla(url_navigation, post_getTVChannels, headers) moje = json.loads(result) print "GETCAT", result for i in moje['result']['results']: item = {} channelperms = i['grantExpression'].split('*') channelperms = [w.replace('+plat:all', '') for w in channelperms] for j in myperms: #control.log('BB: %s AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA %s' % (i['title'].upper(), i['grantExpression'])) if j in channelperms: #print("OK", i['id'], i['title'], i['published'], i['grantExpression']) # control.log('Dalina %s' % result2) item['img'] = i['thumbnails'][-1]['src'].encode('utf-8') item['id'] = i['id'] item['title'] = i['title'].upper().encode('utf-8') item['plot'] = i['description'].encode('utf-8') #control.log('RESULT I %s' % dump(item)) # control.log('Calina %s' % item) item = {'title': item['title'], 'originaltitle': item['title'], 'genre': '0', 'plot': item['plot'], 'name':item['title'], 'tagline': '0', 'poster': item['img'], 'fanart': '0', 'id':item['id'], 'service':'ipla', 'next': ''} items.append(item) #Dupes dupes = [] filter = [] for entry in items: if not entry['id'] in dupes: filter.append(entry) dupes.append(entry['id']) items = filter return items except Exception as e: control.log('Ipla Error %s ' % e) return
def getstream(id): try: control.infoDialog(control.lang(30495).encode('utf-8'), time=200) if getIplaCredentialsInfo() == False: if control.yesnoDialog(control.lang(40003).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'Trakt', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')): control.set_setting('ipla.user', '') control.set_setting('ipla.pass', '') control.openSettings('1.1') raise Exception() user = control.setting('ipla.user').strip() password = hashlib.md5(control.setting('ipla.pass').strip()).hexdigest() systemid = control.setting('ipla.systemid').strip() passwdmd5 = control.setting('ipla.passwdmd5').strip() url_auth = 'https://getmedia.redefine.pl/tv/menu.json?passwdmd5='+password+'&api_client=mipla_ios&login='******'&machine_id=iOS%'+systemid+'&outformat=2&api_build=122' post_getMedia = json.loads( '{"jsonrpc":"2.0","method":"getMedia","id":10,"params":{"cpid":0,"message":{"id":"F26642A8-8000-4C7A-B1CB-C2EADFD82E23","timestamp":"2016-10-16T00:53:25Z"},"authData":{"login":"******"},"mediaId":"'+str(id)+'"}}') post_perPlayData = json.loads( '{"jsonrpc":"2.0","method":"prePlayData","id":"-1864568404","params":{"mediaId":"'+str(id)+'","cpid":0,"authData":{"login":"******"}}}') #control.log('ipla1 %s' % id) result = _call_ipla(url_auth, headers=headers1) moje = json.loads(result) loginstatus = ipla_check_login(moje) if loginstatus <> 'OK': control.log('Ipla Login Error %s ' % loginstatus) control.infoDialog(loginstatus.encode('utf-8'),time=6000) control.dialog.ok(control.addonInfo('name') + ' - IPLA',loginstatus.encode('utf-8'), '') return my_action1 = moje['config']['traffic_url'] + 'id=' + moje['config']['traffic_id'] + \ '&extra=GoalName%3DInterfejs/Login/Email%7Cc%3Dipla-ios/122/10.0.2/Apple/iPhone&et=action' my_action2 = moje['config']['traffic_url'] + 'id=' + moje['config']['traffic_id'] + \ '&extra=GoalName%3DIInterfejs/Start_Aplikacji/Kolejny%7Cc%3Dipla-ios/122/10.0.2/Apple/iPhone&et=action' my_action3 = moje['config']['traffic_url'] + 'id=' + moje['config']['traffic_id'] + \ '&extra=GoalName%3DInterfejs/Przegl%C4%85danie%7Cc%3Dipla-ios/122/10.0.2/Apple/iPhone&et=view' result = _call_ipla(my_action1, headers=headers2) result = _call_ipla(my_action2, headers=headers2) result = _call_ipla(my_action3, headers=headers2) result = _call_ipla(url_navigation, post_getMedia, headers) result = _call_ipla(url_navigation, post_perPlayData, headers) moje = json.loads(result) url = moje['result']['mediaItem']['playback']['mediaSources'][-1]['authorizationServices']['pseudo']['url'] myid = moje['result']['mediaItem']['playback']['mediaId']['id'] url = url + '?cltype=mobile&cpid=0&id=' + myid + '&login='******'&passwdmd5='+passwdmd5+'&client_id=iOS%'+systemid+'&outformat=2' result = _call_ipla(url, headers=headers1) result = json.loads(result) url = result['resp']['license']['url'] + '|User-Agent='+urllib.quote_plus('IPLA/4.2.2.5 CFNetwork/808.0.2 Darwin/16.0.0') url = result['resp']['license']['url'] result = _call_ipla(url, headers=headers3) result = result.decode('utf-8') link = re.findall("BANDWIDTH=\d+\n(.*?m3u8)", result, re.MULTILINE)[0] if url_hls in link: url = link + '?userid=iOS%' + systemid + '&initial|User-Agent=' + urllib.quote_plus(headers2['User-Agent']) else: url = url_hls +link + '?userid=iOS%'+systemid+'&initial|User-Agent='+ urllib.quote_plus(headers2['User-Agent']) return url return None except Exception as e: control.log('Error ipla.getstream %s' % e ) return None
def login(): try: if getTelewizjadaCredentialsInfo() == False: if control.yesnoDialog( control.lang(40003).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'Trakt', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')): control.set_setting('telewizjada.user', '') control.set_setting('telewizjada.password', '') control.openSettings('1.20') control.log('>>>> LOGIN()') expire = control.get_setting('telewizjada.expire') control.log('Expire1: %s' % expire) if expire != '': try: from datetime import datetime #d = datetime.strptime(expire, '%Y-%m-%d %H:%M:%S') d = datetime( *(time.strptime(expire, '%Y-%m-%d %H:%M:%S')[0:6])) control.log('Expire2: %s' % d) d2 = datetime.now() if d > d2: control.log('Expire OK: %s %s' % (d, d2)) return True except: pass url = 'http://www.deltamediaplayer.com/index.php?option=com_users&view=login&Itemid=116' result, h1, content, cookie1 = client.request(url, output='extended') headers = {'referer': url} result = client.parseDOM(result, 'div', attrs={'class': 'login'})[0] result = re.findall( '<input type="hidden" name="([^"]+)" value="([^"]+)"', result) params = { 'username': control.get_setting('telewizjada.user'), 'password': control.get_setting('telewizjada.pass'), 'remember': 'yes', str(result[0][0]): urllib.quote(str(result[0][1])), str(result[1][0]): urllib.quote(str(result[1][1])) } paramslog = { 'username': control.get_setting('telewizjada.user'), 'password': '', 'remember': 'yes', str(result[0][0]): urllib.quote(str(result[0][1])), str(result[1][0]): urllib.quote(str(result[1][1])) } control.log('>>>> PARAMS %s' % (paramslog)) url = 'http://www.deltamediaplayer.com/index.php?option=com_users&task=user.login' result, h2, content, cookie2 = client.request(url, redirect=False, post=params, headers=headers, cookie=cookie1, output='extended') if content[ 'Location'] != 'https://www.deltamediaplayer.com/index.php?option=com_users&view=profile': control.infoDialog(control.lang(30600).encode('utf-8'), time=6000) control.dialog.ok( control.addonInfo('name') + ' - Telewizzjada.net', control.lang(30600).encode('utf-8'), '') raise ValueError('Bledny login lub haslo.') url = 'http://www.deltamediaplayer.com/playercode/authorised/gethlsusers.php' headers[ 'referer'] = 'http://www.deltamediaplayer.com/index.php?option=com_acctexp&view=user&layout=subscriptiondetails&Itemid=119' headers['X-Requested-With'] = 'XMLHttpRequest' headers['Content-Type'] = 'application/json' headers['cookie'] = '%s; %s' % (cookie1, content['Set-Cookie'].split(';')[0]) params2 = json.dumps({'browser': 'Desktop;Windows;Chrome 54'}) result = client.request(url, post=params2, headers=headers) control.log('>>>> RES r:%s ' % (result)) r = json.loads(result) result = [i for i in r if i['registered'] != 0] if len(result) > 0: for i in result: control.log('I %s' % i) control.log('QQQQQQQQQQQQQQ %s' % r[0]['hash'], ) control.set_setting('telewizjada.token', r[0]['hash']) control.set_setting('telewizjada.os', r[0]['os']) control.set_setting('telewizjada.browser', r[0]['browser']) control.set_setting('telewizjada.device', r[0]['device']) control.log("Brovser: %s" % r[0]['browser'].split(' ')[0]) ua = 'Mozilla/5.0 (%s; %s; rv:%s) Gecko/20100101 %s/%s' % ( r[0]['os'], r[0]['device'], r[0]['browser'].split(' ')[-1], r[0]['browser'].split(' ')[0], r[0]['browser'].split(' ')[-1]) control.log('UA %s' % ua) control.set_setting('telewizjada.ua', ua) return True else: control.infoDialog(control.lang(30601).encode('utf-8'), time=6000) control.dialog.ok( control.addonInfo('name') + ' - Telewizzjada.net', control.lang(30601).encode('utf-8'), '') raise ValueError('Brak zarejestrowanych przeglÄ…darek.') return False except Exception as e: control.log('Exception telewizjada.net login %s' % e) return False
def ipla_chanels(): control.log('Python version %s' % (sys.version)) #url10 = 'https://gm2.redefine.pl/rpc/system/' #headers10 = {'User-Agent': 'mipla_ios/122', 'Content-Type': 'application/x-www-form-urlencoded', # 'Accept-Language': 'pl-pl'} #post_init10 = {"jsonrpc": "2.0", "method": "getConfiguration", "id": 2, "params": { # "message": {"id": "CC3DFE81-1C70-403A-9C52-FC10EC51125A", "timestamp": "2016-10-16T00:08:57Z"}}} #data = requests.post(url10, data=post_init, headers=headers10) #print data.status_code, data.text #control.log('request %s|%s' % (data.status_code, data.text)) try: ipla_system_id() if getIplaCredentialsInfo() == False: if control.yesnoDialog( control.lang(40009).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'Ipla', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')): control.set_setting('ipla.user', '') control.set_setting('ipla.pass', '') control.openSettings('1.1') raise ValueError('No login orr password') user = control.setting('ipla.user').strip() password = hashlib.md5( control.setting('ipla.pass').strip()).hexdigest() systemid = control.setting('ipla.systemid').strip() items = [] post_getTVChannels = json.loads( '{"jsonrpc":"2.0","method":"getTvChannels","id":5,"params":{"authData":{"login":"******"},"message":{"id":"4B737B56-A11D-4E65-BC86-47EA1E40EC4D","timestamp":"2016-10-15T17:03:21Z"}}}' ) url_auth = 'https://getmedia.redefine.pl/tv/menu.json?passwdmd5=' + password + '&api_client=mipla_ios&login='******'&machine_id=iOS%' + systemid + '&outformat=2&api_build=122' result = _call_ipla(url_system, post_init, headers) control.log('request %s' % (result)) result = _call_ipla(url_preauth, post_preauth, headers) result = _call_ipla(url_auth, headers=headers1) moje = json.loads(result) loginstatus = ipla_check_login(moje) if loginstatus <> 'OK': control.log('Ipla Login Error %s ' % loginstatus) control.infoDialog(loginstatus.encode('utf-8'), time=6000) control.dialog.ok( control.addonInfo('name') + ' - IPLA', loginstatus.encode('utf-8'), '') return myperms = [] for i in moje['config']['access_groups']: #control.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> %s' % i) if 'sc:' in i['code']: myperms.append(str(i['code'])) if 'oth:' in i['code']: myperms.append(str(i['code'])) #if 'loc:' in i['code']: # myperms.append(str(i['code'])) #control.log('###################################' % moje['config']) control.set_setting('ipla.passwdmd5', moje['config']['user']['passwdmd5']) my_action1 = moje['config']['traffic_url'] + 'id=' + moje['config']['traffic_id'] + \ '&extra=GoalName%3DInterfejs/Login/Email%7Cc%3Dipla-ios/122/10.0.2/Apple/iPhone&et=action' my_action2 = moje['config']['traffic_url'] + 'id=' + moje['config']['traffic_id'] + \ '&extra=GoalName%3DIInterfejs/Start_Aplikacji/Kolejny%7Cc%3Dipla-ios/122/10.0.2/Apple/iPhone&et=action' my_action3 = moje['config']['traffic_url'] + 'id=' + moje['config']['traffic_id'] + \ '&extra=GoalName%3DInterfejs/Przegl%C4%85danie%7Cc%3Dipla-ios/122/10.0.2/Apple/iPhone&et=view' result = _call_ipla(my_action1, headers=headers2) control.log('Python version %s' % (result)) result = _call_ipla(my_action2, headers=headers2) result = _call_ipla(my_action3, headers=headers2) post_getCat = json.loads( '{"jsonrpc":"2.0","method":"getCategoryWithFlatNavigation","id":4,"params":{"catid":0,"authData":{"login":"******"},"message":{"id":"47B80EF0-19D0-4BD0-82FF-80BC50EDF2A9","timestamp":"2016-10-15T23:02:22Z"}}}' ) #result = _call_ipla(url_navigation, post_getCat, headers) result = _call_ipla(url_navigation, post_getTVChannels, headers) moje = json.loads(result) print "GETCAT", result for i in moje['result']['results']: item = {} channelperms = i['grantExpression'].split('*') channelperms = [w.replace('+plat:all', '') for w in channelperms] for j in myperms: #control.log('BB: %s AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA %s' % (i['title'].upper(), i['grantExpression'])) if j in channelperms: #print("OK", i['id'], i['title'], i['published'], i['grantExpression']) # control.log('Dalina %s' % result2) item['img'] = i['thumbnails'][-1]['src'].encode('utf-8') item['id'] = i['id'] item['title'] = i['title'].upper().encode('utf-8') item['plot'] = i['description'].encode('utf-8') #control.log('RESULT I %s' % dump(item)) # control.log('Calina %s' % item) item = { 'title': item['title'], 'originaltitle': item['title'], 'genre': '0', 'plot': item['plot'], 'name': item['title'], 'tagline': '0', 'poster': item['img'], 'fanart': '0', 'id': item['id'], 'service': 'ipla', 'next': '' } items.append(item) #Dupes dupes = [] filter = [] for entry in items: if not entry['id'] in dupes: filter.append(entry) dupes.append(entry['id']) items = filter return items except Exception as e: control.log('Ipla Error %s ' % e) return
def getstream(id): try: control.infoDialog(control.lang(30495).encode('utf-8'), time=200) if getIplaCredentialsInfo() == False: if control.yesnoDialog( control.lang(40003).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'Trakt', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')): control.set_setting('ipla.user', '') control.set_setting('ipla.pass', '') control.openSettings('1.1') raise Exception() user = control.setting('ipla.user').strip() password = hashlib.md5( control.setting('ipla.pass').strip()).hexdigest() systemid = control.setting('ipla.systemid').strip() passwdmd5 = control.setting('ipla.passwdmd5').strip() url_auth = 'https://getmedia.redefine.pl/tv/menu.json?passwdmd5=' + password + '&api_client=mipla_ios&login='******'&machine_id=iOS%' + systemid + '&outformat=2&api_build=122' post_getMedia = json.loads( '{"jsonrpc":"2.0","method":"getMedia","id":10,"params":{"cpid":0,"message":{"id":"F26642A8-8000-4C7A-B1CB-C2EADFD82E23","timestamp":"2016-10-16T00:53:25Z"},"authData":{"login":"******"},"mediaId":"' + str(id) + '"}}') post_perPlayData = json.loads( '{"jsonrpc":"2.0","method":"prePlayData","id":"-1864568404","params":{"mediaId":"' + str(id) + '","cpid":0,"authData":{"login":"******"}}}') #control.log('ipla1 %s' % id) result = _call_ipla(url_auth, headers=headers1) moje = json.loads(result) loginstatus = ipla_check_login(moje) if loginstatus <> 'OK': control.log('Ipla Login Error %s ' % loginstatus) control.infoDialog(loginstatus.encode('utf-8'), time=6000) control.dialog.ok( control.addonInfo('name') + ' - IPLA', loginstatus.encode('utf-8'), '') return my_action1 = moje['config']['traffic_url'] + 'id=' + moje['config']['traffic_id'] + \ '&extra=GoalName%3DInterfejs/Login/Email%7Cc%3Dipla-ios/122/10.0.2/Apple/iPhone&et=action' my_action2 = moje['config']['traffic_url'] + 'id=' + moje['config']['traffic_id'] + \ '&extra=GoalName%3DIInterfejs/Start_Aplikacji/Kolejny%7Cc%3Dipla-ios/122/10.0.2/Apple/iPhone&et=action' my_action3 = moje['config']['traffic_url'] + 'id=' + moje['config']['traffic_id'] + \ '&extra=GoalName%3DInterfejs/Przegl%C4%85danie%7Cc%3Dipla-ios/122/10.0.2/Apple/iPhone&et=view' result = _call_ipla(my_action1, headers=headers2) result = _call_ipla(my_action2, headers=headers2) result = _call_ipla(my_action3, headers=headers2) result = _call_ipla(url_navigation, post_getMedia, headers) result = _call_ipla(url_navigation, post_perPlayData, headers) moje = json.loads(result) url = moje['result']['mediaItem']['playback']['mediaSources'][-1][ 'authorizationServices']['pseudo']['url'] myid = moje['result']['mediaItem']['playback']['mediaId']['id'] url = url + '?cltype=mobile&cpid=0&id=' + myid + '&login='******'&passwdmd5=' + passwdmd5 + '&client_id=iOS%' + systemid + '&outformat=2' result = _call_ipla(url, headers=headers1) result = json.loads(result) url = result['resp']['license'][ 'url'] + '|User-Agent=' + urllib.quote_plus( 'IPLA/4.2.2.5 CFNetwork/808.0.2 Darwin/16.0.0') url = result['resp']['license']['url'] result = _call_ipla(url, headers=headers3) result = result.decode('utf-8') link = re.findall("BANDWIDTH=\d+\n(.*?m3u8)", result, re.MULTILINE)[0] if url_hls in link: url = link + '?userid=iOS%' + systemid + '&initial|User-Agent=' + urllib.quote_plus( headers2['User-Agent']) else: url = url_hls + link + '?userid=iOS%' + systemid + '&initial|User-Agent=' + urllib.quote_plus( headers2['User-Agent']) return url return None except Exception as e: control.log('Error ipla.getstream %s' % e) return None
def getstream(id): try: control.set_setting('pierwszatv.tokenExpireIn', '') control.set_setting('pierwszatv.serverId', '') control.set_setting('pierwszatv.streamId', '') control.set_setting('pierwszatv.token', '') if getPierwszaCredentialsInfo() == False: if control.yesnoDialog(control.lang(40003).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'Trakt', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')): control.set_setting('pierwszatv.user', '') control.set_setting('pierwszatv.password', '') control.openSettings('2.1') raise Exception() url = '/api/stream/create' params = {} params['id'] =id params['user'] =control.setting('pierwszatv.user').strip() params['password'] = urllib.quote_plus(control.setting('pierwszatv.password')) result = get(url, params) result = json.loads(result) if result['status'] == 'ok': #time.sleep(1) #control.log('x1x1x1: %s' % result['status']) expirein = int(int(result['tokenExpireIn'])*0.75) expirewhen = datetime.datetime.now() + datetime.timedelta(seconds=expirein) control.set_setting('pierwszatv.tokenExpireIn', str(int(time.mktime(expirewhen.timetuple())))) control.set_setting('pierwszatv.serverId', result['serverId']) control.set_setting('pierwszatv.streamId', result['streamId']) control.set_setting('pierwszatv.token', result['token']) for i in range(0, 5): try: r = get('/api/stream/status', {'serverId': result['serverId'] , 'streamId': result['streamId'], 'token': result['token']}) r = json.loads(r) if r['status'] == 'ok': #control.infoDialog(control.lang(30489).encode('utf-8'), time=6000) for j in range(0, 20): time.sleep(1) control.infoDialog(control.lang(30489).encode('utf-8'), time=500) try: result2 = client.request(r['source']+'?token='+result['token'],safe=True, timeout='2') control.log('Pierwsza link check nr: %s: result:%s' % (j,result2)) if result2 == None: raise Exception() else: return r['source']+'?token='+result['token'] except: pass return r['source']+'?token='+result['token'] time.sleep(3) except: pass if result['status'] == 'error': control.infoDialog('%s' % result['message'].encode('utf-8')) return None except Exception as e: control.log('Error pierwsza.getstream %s' % e )
def login(): try: if getTelewizjadaCredentialsInfo() == False: if control.yesnoDialog(control.lang(40003).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'Trakt', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')): control.set_setting('telewizjada.user', '') control.set_setting('telewizjada.password', '') control.openSettings('1.20') control.log('>>>> LOGIN()' ) expire = control.get_setting('telewizjada.expire') control.log('Expire1: %s' % expire) if expire != '': try: from datetime import datetime #d = datetime.strptime(expire, '%Y-%m-%d %H:%M:%S') d = datetime(*(time.strptime(expire, '%Y-%m-%d %H:%M:%S')[0:6])) control.log('Expire2: %s' % d) d2 = datetime.now() if d>d2: control.log('Expire OK: %s %s' % (d,d2)) return True except: pass url = 'http://www.deltamediaplayer.com/index.php?option=com_users&view=login&Itemid=116' result, h1, content, cookie1 = client.request(url,output='extended') headers= {'referer':url} result = client.parseDOM(result, 'div', attrs={'class':'login'})[0] result = re.findall('<input type="hidden" name="([^"]+)" value="([^"]+)"',result) params = { 'username':control.get_setting('telewizjada.user'), 'password':control.get_setting('telewizjada.pass'), 'remember':'yes', str(result[0][0]): urllib.quote(str(result[0][1])), str(result[1][0]): urllib.quote(str(result[1][1])) } paramslog = { 'username':control.get_setting('telewizjada.user'), 'password':'', 'remember':'yes', str(result[0][0]): urllib.quote(str(result[0][1])), str(result[1][0]): urllib.quote(str(result[1][1])) } control.log('>>>> PARAMS %s' % (paramslog)) url='http://www.deltamediaplayer.com/index.php?option=com_users&task=user.login' result, h2, content, cookie2 = client.request(url, redirect=False, post=params, headers=headers, cookie=cookie1, output='extended') if content['Location'] != 'https://www.deltamediaplayer.com/index.php?option=com_users&view=profile': control.infoDialog(control.lang(30600).encode('utf-8'),time=6000) control.dialog.ok(control.addonInfo('name') + ' - Telewizzjada.net',control.lang(30600).encode('utf-8'), '') raise ValueError('Bledny login lub haslo.') url = 'http://www.deltamediaplayer.com/playercode/authorised/gethlsusers.php' headers['referer']='http://www.deltamediaplayer.com/index.php?option=com_acctexp&view=user&layout=subscriptiondetails&Itemid=119' headers['X-Requested-With']='XMLHttpRequest' headers['Content-Type'] = 'application/json' headers['cookie'] = '%s; %s' % (cookie1,content['Set-Cookie'].split(';')[0]) params2=json.dumps({'browser':'Desktop;Windows;Chrome 54'}) result = client.request(url, post=params2, headers=headers) control.log('>>>> RES r:%s ' % (result)) r = json.loads(result) result = [i for i in r if i['registered'] != 0] if len(result)>0: for i in result: control.log('I %s' %i) control.log('QQQQQQQQQQQQQQ %s' % r[0]['hash'], ) control.set_setting('telewizjada.token', r[0]['hash']) control.set_setting('telewizjada.os', r[0]['os']) control.set_setting('telewizjada.browser', r[0]['browser']) control.set_setting('telewizjada.device', r[0]['device']) control.log("Brovser: %s" % r[0]['browser'].split(' ')[0]) ua = 'Mozilla/5.0 (%s; %s; rv:%s) Gecko/20100101 %s/%s' % (r[0]['os'], r[0]['device'], r[0]['browser'].split(' ')[-1], r[0]['browser'].split(' ')[0], r[0]['browser'].split(' ')[-1]) control.log('UA %s' %ua) control.set_setting('telewizjada.ua', ua) return True else: control.infoDialog(control.lang(30601).encode('utf-8'), time=6000) control.dialog.ok(control.addonInfo('name') + ' - Telewizzjada.net',control.lang(30601).encode('utf-8'), '') raise ValueError('Brak zarejestrowanych przeglÄ…darek.') return False except Exception as e: control.log('Exception telewizjada.net login %s' % e) return False