def weebchanels(): try: items=[] login() url = 'https://looknij.in/telewizja-online/' result = client2.http_get(url) r = client.parseDOM(result, 'div', attrs={'class': 'normal radius'}) r = [(client.parseDOM(i, 'h3')[0],client.parseDOM(i, 'img', ret='src')[0]) for i in r] r = [(client.parseDOM(i[0], 'a', ret='href')[0], client.parseDOM(i[0], 'a')[0], i[1]) for i in r] #control.log('RESULT R %s' % dump(r)) for i in r: item = {} try: # control.log('Dalina %s' % result2) item['img'] = i[2].encode('utf-8') item['id'] = i[0].split('-')[-1] #item['id'] = item['id'].encode('utf-8') item['title'] = i[1].replace('[Lektor]', '').replace(' ', '') item['title'] = item['title'].upper().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': '0', 'name':item['title'], 'tagline': '0', 'poster': item['img'], 'fanart': '0', 'id':item['id'], 'service':'looknij', 'next': ''} items.append(item) except Exception as e: control.log(' Error wizja.looknij for %s' % e) pass return items except Exception as e: control.log(' Error wizja.looknij for %s' % e) pass return items
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 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 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 imdb_user_list(self, url): try: result = client.request(url) result = result.decode('iso-8859-1').encode('utf-8') items = client.parseDOM(result, 'div', attrs = {'class': 'list_name'}) except: pass for item in items: try: name = client.parseDOM(item, 'a')[0] name = client.replaceHTMLCodes(name) name = name.encode('utf-8') url = client.parseDOM(item, 'a', ret='href')[0] url = url.split('/list/', 1)[-1].replace('/', '') url = self.imdblist_link % url url = client.replaceHTMLCodes(url) url = url.encode('utf-8') self.list.append({'name': name, 'url': url, 'context': url}) except: pass return self.list
def getstream(id): try: if yoylogin(): cookie = control.get_setting('yoytv.sess').strip() control.log('##### cookie2: %s' % cookie) url = 'http://yoy.tv/channels/%s' % id result = client.request(url, cookie=cookie) if 'http://yoy.tv/accept/' in result: if 'true' == control.get_setting('xxxmode'): control.log('EROTYK ') u1 = client.parseDOM(result, 'form', ret='action')[0] params = {} params['_token'] = client.parseDOM(result, 'input', ret='value', attrs={'name': '_token'})[0] control.log('params: %s' % params['_token']) result = client.request(u1, data=params, cookie=cookie) else: control.infoDialog(control.lang(30799).encode('utf-8') + ' ' +control.lang(30798).encode('utf-8')) return None if '<title>Kup konto premium w portalu yoy.tv</title>' in result: control.infoDialog(control.lang(30485).encode('utf-8')) return None result1 = result try: myobj = client.parseDOM(result1, 'object', ret='data', attrs={'type': 'application/x-shockwave-flash'})[0].encode('utf-8') result = client.parseDOM(result1, 'param', ret='value', attrs={'name': 'FlashVars'})[0].encode('utf-8') control.log("YOY res: %s |%s| " % (result,myobj)) p = urlparse.parse_qs(result) #control.log('# %s' % query) control.log('# %s' % p) control.log('# %s' % p['fms']) control.log('# %s' % p['cid']) myurl = p['fms'][0] + '/' + p['cid'][0] + ' swfUrl=' + myobj + ' swfVfy=true tcUrl=' + p['fms'][ 0] + '/_definst_ live=true timeout=15 pageUrl=' + url myurl = p['fms'][0] + '/' + p['cid'][0] + ' swfUrl=' + myobj + ' swfVfy=true live=true timeout=15 pageUrl=' + url # ' swfVfy=true tcUrl=' + 'rtmp://'+myip+'/oyo/_definst_ live=true pageUrl=' + url control.log("########## TAB:%s" % myurl) return myurl #myurl = myurl.replace('oyo','yoy') except: pass result = re.compile('type: "application/x-mpegurl", src: "([^"]+)"').findall(result1) control.log("########## TAB:%s" % result) myurl = result[0] return myurl else: return None except Exception as e: control.log('Error yoy.getstream %s' % e) return None
def getstream(id): login() try: url = 'http://yoy.tv/channels/%s' % id result = client2.http_get(url) #control.log('RES:%s'%result) if 'http://yoy.tv/accept/' in result: if 'true' == control.get_setting('xxxmode'): control.log('EROTYK ') u1 = client.parseDOM(result, 'form', ret='action')[0] params = {} params['_token'] = client.parseDOM(result, 'input', ret='value', attrs={'name': '_token'})[0] control.log('params: %s' % params['_token']) result = client2.http_get(u1, data=params) else: control.infoDialog( control.lang(30799).encode('utf-8') + ' ' + control.lang(30798).encode('utf-8')) return None if '<title>Kup konto premium w portalu yoy.tv</title>' in result: control.infoDialog(control.lang(30485).encode('utf-8')) return None #control.log('r %s' % result) result = client.parseDOM(result, 'param', ret='value', attrs={'name': 'FlashVars'})[0].encode('utf-8') lpi = result.index("s=") + result.index("=") * 3 rpi = result.index("&", lpi) - result.index("d") * 2 dp = [] cp = result[lpi:rpi].split('.') for i, item in enumerate(cp): j = 2 ^ i ^ ((i ^ 3) >> 1) k = 255 - int(cp[j]) dp.append(k) myip = '.'.join(map(str, dp)) control.log(myip) result = dict(urlparse.parse_qsl(result)) myplaypath = '%s?email=%s&secret=%s&hash=%s' % ( result['cid'], result['email'], result['secret'], result['hash']) myurl = 'rtmp://'+myip + ' app=yoy/_definst_ playpath=' + myplaypath + ' swfUrl=http://yoy.tv/playerv3a.swf' \ ' swfVfy=true tcUrl=' + 'rtmp://'+myip+'/yoy/_definst_ live=true pageUrl=' + url #control.log("########## TAB:%s" % myurl) return myurl except Exception as e: control.log('Error yoy.getstream %s' % e)
def weebchanels(): try: items = [] login() url = 'https://looknij.in/telewizja-online/' result = client.request(url) r = client.parseDOM(result, 'div', attrs={'class': 'normal radius'}) r = [(client.parseDOM(i, 'h3')[0], client.parseDOM(i, 'img', ret='src')[0]) for i in r] r = [(client.parseDOM(i[0], 'a', ret='href')[0], client.parseDOM(i[0], 'a')[0], i[1]) for i in r] control.log('RESULT R %s' % dump(r)) for i in r: item = {} try: # control.log('Dalina %s' % result2) item['img'] = i[2].encode('utf-8') item['id'] = i[0].split('-')[-1] #item['id'] = item['id'].encode('utf-8') item['title'] = i[1].replace('[Lektor]', '').replace(' ', '') item['title'] = item['title'].upper().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': '0', 'name': item['title'], 'tagline': '0', 'poster': item['img'], 'fanart': '0', 'id': item['id'], 'service': 'looknij', 'next': '' } items.append(item) except Exception as e: control.log(' Error wizja.looknij for %s' % e) pass return items except Exception as e: control.log(' Error wizja.looknij for %s' % e) pass return items
def login(): #if getYoyCredentialsInfo() == False: # raise Exception() try: params = {} url = 'http://yoy.tv/signin' client2._clean_cookies('http://yoy.tv/signin') result = client2.http_get(url) params['remember_me']='1' params['email'] = control.get_setting('yoytv.user') params['password'] = control.get_setting('yoytv.pass') params['_token']=client.parseDOM(result, 'input', ret='value', attrs={'name': '_token'})[0] result = client2.http_get(url, data=params) #control.set_setting('videostar.sess', result)'<a class="dropdown-toggle" href="http://yoy.tv/signout">Wyloguj się' #control.log('Resul %s' % result) if not 'http://yoy.tv/signout' in result: control.log('BBBBB LOGIN %s' % 'yoy.tv') control.infoDialog(control.lang(30484).encode('utf-8')) else: url = 'http://yoy.tv/user/settings' result = client2.http_get(url) premium = re.findall('Aktywne do: ([0-9 :-]+)',result) if len(premium)>0: #control.log('BBBBB LOGIN %s' % len(premium)) control.log('CCCCC LOGIN %s' % premium) control.infoDialog(control.lang(30496) + premium[0].encode('utf-8') ) except: pass
def yoylogin(): if getYoyCredentialsInfo() == False: raise ValueError('Brak ustawienia logiun lub hasła ') try: params = {} url = 'http://yoy.tv/signin' result, headers, content, cookie = client.request(url, output='extended') params['remember_me'] = '1' params['email'] = control.get_setting('yoytv.user') params['password'] = control.get_setting('yoytv.pass') params['_token'] = client.parseDOM(result, 'input', ret='value', attrs={'name': '_token'})[0] result1, headers, content, cookie = client.request(url, post=params, cookie=cookie, output='extended', redirect=False) mycookies = re.findall('Set-Cookie: (.*?);', '%s' % content) cookie = ";".join(mycookies) control.set_setting('yoytv.sess', cookie) control.log('##### cookie1: %s' % cookie) url = 'http://yoy.tv/' result = client.request(url, cookie=cookie) if not 'http://yoy.tv/signout' in result: control.log('BBBBB LOGIN %s' % 'yoy.tv') control.infoDialog(control.lang(30484).encode('utf-8')) control.dialog.ok( control.addonInfo('name') + ' - YOY TV', control.lang(30484).encode('utf-8'), '') control.openSettings('1.12') return False else: url = 'http://yoy.tv/user/settings' result = client.request(url, cookie=cookie) premium = re.findall('Aktywne do: ([0-9 :-]+)', result) if len(premium) > 0: control.log('CCCCC LOGIN %s' % premium) control.infoDialog( control.lang(30496) + premium[0].encode('utf-8')) return True except Exception as e: control.log('Yoylogin ERROR %s' % e) return False
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 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 predb_items(): try: years = [(self.datetime).strftime('%Y'), (self.datetime - datetime.timedelta(days = 365)).strftime('%Y')] months = (self.datetime - datetime.timedelta(days = 180)).strftime('%Y%m%d') result = '' for i in years: result += client.request(self.scn_page % (str(i), '1')) result += client.request(self.scn_page % (str(i), '2')) items = client.parseDOM(result, 'div', attrs = {'class': 'post'}) items = [(client.parseDOM(i, 'a', attrs = {'class': 'p-title'}), re.compile('(\d{4}-\d{2}-\d{2})').findall(i)) for i in items] items = [(i[0][0], i[1][0]) for i in items if len(i[0]) > 0 and len(i[1]) > 0] items = [(re.sub('(\.|\(|\[|\s)(\d{4}|S\d*E\d*|3D)(\.|\)|\]|\s)(.+)', '', i[0]), re.compile('[\.|\(|\[|\s](\d{4})[\.|\)|\]|\s]').findall(i[0]), re.sub('[^0-9]', '', i[1])) for i in items] items = [(i[0], i[1][-1], i[2]) for i in items if len(i[1]) > 0] items = [i for i in items if int(months) <= int(i[2])] items = sorted(items,key=lambda x: x[2])[::-1] items = [(re.sub('(\.|\(|\[|LIMITED|UNCUT)', ' ', i[0]).strip(), i[1]) for i in items] items = [x for y,x in enumerate(items) if x not in items[:y]] items = items[:150] return items except: return
def login(): #if getYoyCredentialsInfo() == False: # raise Exception() try: params = {} url = 'http://yoy.tv/signin' result = client2.http_get(url) params['remember_me']='1' params['email'] = control.get_setting('yoytv.user') params['password'] = control.get_setting('yoytv.pass') params['_token']=client.parseDOM(result, 'input', ret='value', attrs={'name': '_token'})[0] result = client2.http_get(url, data=params) #control.set_setting('videostar.sess', result) '<a class="dropdown-toggle" href="http://yoy.tv/signout">Wyloguj się' if not 'http://yoy.tv/signout' in result: control.log('BBBBB LOGIN %s' % 'yoy.tv') control.infoDialog(control.lang(30484).encode('utf-8')) except: pass
def getstream(id): login() try: url = 'http://yoy.tv/channels/%s' % id result = client2.http_get(url) if '<title>Kup konto premium w portalu yoy.tv</title>' in result: control.infoDialog(control.lang(30485).encode('utf-8')) return None #control.log('r %s' % result) result = client.parseDOM(result, 'param', ret='value', attrs={'name': 'FlashVars'})[0].encode('utf-8') result = dict(urlparse.parse_qsl(result)) myplaypath='%s?email=%s&secret=%s&hash=%s' %(result['cid'],result['email'],result['secret'],result['hash']) myurl = result['fms'].replace('/yoy','') + ' app=yoy/_definst_ playpath=' + myplaypath +' swfUrl=http://yoy.tv/playerv3a.swf' \ ' swfVfy=true tcUrl='+result['fms']+'/_definst_ live=true pageUrl='+url return myurl except Exception as e: control.log('Error yoy.getstream %s' % e)
def yoylogin(): if getYoyCredentialsInfo() == False: raise ValueError('Brak ustawienia logiun lub hasła ') try: params = {} url = 'http://yoy.tv/signin' result, headers, content, cookie = client.request(url, output='extended') params['remember_me']='1' params['email'] = control.get_setting('yoytv.user') params['password'] = control.get_setting('yoytv.pass') params['_token']=client.parseDOM(result, 'input', ret='value', attrs={'name': '_token'})[0] result1, headers, content, cookie = client.request(url, post=params, cookie=cookie, output='extended', redirect=False) mycookies = re.findall('Set-Cookie: (.*?);', '%s' % content) cookie = ";".join(mycookies) control.set_setting('yoytv.sess', cookie) control.log('##### cookie1: %s' % cookie) url = 'http://yoy.tv/' result = client.request(url, cookie=cookie) if not 'http://yoy.tv/signout' in result: control.log('BBBBB LOGIN %s' % 'yoy.tv') control.infoDialog(control.lang(30484).encode('utf-8')) control.dialog.ok(control.addonInfo('name') + ' - YOY TV', control.lang(30484).encode('utf-8'), '') control.openSettings('1.12') return False else: url = 'http://yoy.tv/user/settings' result = client.request(url, cookie=cookie) premium = re.findall('Aktywne do: ([0-9 :-]+)',result) if len(premium)>0: control.log('CCCCC LOGIN %s' % premium) control.infoDialog(control.lang(30496) + premium[0].encode('utf-8') ) return True except Exception as e: control.log('Yoylogin ERROR %s' % e) return False
def getstream(id): login() try: url = 'http://yoy.tv/channels/%s' % id result = client2.http_get(url) if '<title>Kup konto premium w portalu yoy.tv</title>' in result: control.infoDialog(control.lang(30485).encode('utf-8')) return None #control.log('r %s' % result) result = client.parseDOM(result, 'param', ret='value', attrs={'name': 'FlashVars'})[0].encode('utf-8') result = dict(urlparse.parse_qsl(result)) myplaypath = '%s?email=%s&secret=%s&hash=%s' % ( result['cid'], result['email'], result['secret'], result['hash']) myurl = result['fms'].replace('/yoy','') + ' app=yoy/_definst_ playpath=' + myplaypath +' swfUrl=http://yoy.tv/playerv3a.swf' \ ' swfVfy=true tcUrl='+result['fms']+'/_definst_ live=true pageUrl='+url return myurl except Exception as e: control.log('Error yoy.getstream %s' % e)
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 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 imdb_list(self, url, idx=True): try: if url == self.imdbwatchlist_link: def imdb_watchlist_id(url): return re.compile('/export[?]list_id=(ls\d*)').findall(client.request(url))[0] url = cache.get(imdb_watchlist_id, 8640, url) url = self.imdblist_link % url headers = {'Accept-Language': 'en-US'} result = str(client.request(url,headers=headers)) try: if idx == True: raise Exception() pages = client.parseDOM(result, 'div', attrs = {'class': 'desc'})[0] pages = re.compile('Page \d+? of (\d*)').findall(pages)[0] for i in range(1, int(pages)): u = url.replace('&start=1', '&start=%s' % str(i*100+1)) result += str(client.request(u)) except: pass result = result.replace('\n','') result = result.decode('iso-8859-1').encode('utf-8') items = client.parseDOM(result, 'tr', attrs = {'class': '.+?'}) items += client.parseDOM(result, 'div', attrs = {'class': 'list_item.+?'}) except: return try: next = client.parseDOM(result, 'span', attrs = {'class': 'pagination'}) next += client.parseDOM(result, 'div', attrs = {'class': 'pagination'}) name = client.parseDOM(next[-1], 'a')[-1] if 'laquo' in name: raise Exception() next = client.parseDOM(next, 'a', ret='href')[-1] next = url.replace(urlparse.urlparse(url).query, urlparse.urlparse(next).query) next = client.replaceHTMLCodes(next) next = next.encode('utf-8') except: next = '' for item in items: try: try: title = client.parseDOM(item, 'a')[1] except: pass try: title = client.parseDOM(item, 'a', attrs = {'onclick': '.+?'})[-1] except: pass title = client.replaceHTMLCodes(title) title = title.encode('utf-8') year = client.parseDOM(item, 'span', attrs = {'class': 'year_type'})[0] year = re.compile('(\d{4})').findall(year)[-1] year = year.encode('utf-8') if int(year) > int((self.datetime).strftime('%Y')): raise Exception() name = '%s (%s)' % (title, year) try: name = name.encode('utf-8') except: pass imdb = client.parseDOM(item, 'a', ret='href')[0] imdb = 'tt' + re.sub('[^0-9]', '', imdb.rsplit('tt', 1)[-1]) imdb = imdb.encode('utf-8') poster = '0' try: poster = client.parseDOM(item, 'img', ret='src')[0] except: pass try: poster = client.parseDOM(item, 'img', ret='loadlate')[0] except: pass if not ('_SX' in poster or '_SY' in poster): poster = '0' poster = re.sub('_SX\d*|_SY\d*|_CR\d+?,\d+?,\d+?,\d*','_SX500', poster) poster = client.replaceHTMLCodes(poster) poster = poster.encode('utf-8') genre = client.parseDOM(item, 'span', attrs = {'class': 'genre'}) genre = client.parseDOM(genre, 'a') genre = ' / '.join(genre) if genre == '': genre = '0' genre = client.replaceHTMLCodes(genre) genre = genre.encode('utf-8') try: duration = re.compile('(\d+?) mins').findall(item)[-1] except: duration = '0' duration = client.replaceHTMLCodes(duration) duration = duration.encode('utf-8') try: rating = client.parseDOM(item, 'span', attrs = {'class': 'rating-rating'})[0] except: rating = '0' try: rating = client.parseDOM(rating, 'span', attrs = {'class': 'value'})[0] except: rating = '0' if rating == '' or rating == '-': rating = '0' rating = client.replaceHTMLCodes(rating) rating = rating.encode('utf-8') try: votes = client.parseDOM(item, 'div', ret='title', attrs = {'class': 'rating rating-list'})[0] except: votes = '0' try: votes = re.compile('[(](.+?) votes[)]').findall(votes)[0] except: votes = '0' if votes == '': votes = '0' votes = client.replaceHTMLCodes(votes) votes = votes.encode('utf-8') try: mpaa = client.parseDOM(item, 'span', attrs = {'class': 'certificate'})[0] except: mpaa = '0' try: mpaa = client.parseDOM(mpaa, 'span', ret='title')[0] except: mpaa = '0' if mpaa == '' or mpaa == 'NOT_RATED': mpaa = '0' mpaa = mpaa.replace('_', '-') mpaa = client.replaceHTMLCodes(mpaa) mpaa = mpaa.encode('utf-8') director = client.parseDOM(item, 'span', attrs = {'class': 'credit'}) director += client.parseDOM(item, 'div', attrs = {'class': 'secondary'}) try: director = [i for i in director if 'Director:' in i or 'Dir:' in i][0] except: director = '0' director = director.split('With:', 1)[0].strip() director = client.parseDOM(director, 'a') director = ' / '.join(director) if director == '': director = '0' director = client.replaceHTMLCodes(director) director = director.encode('utf-8') cast = client.parseDOM(item, 'span', attrs = {'class': 'credit'}) cast += client.parseDOM(item, 'div', attrs = {'class': 'secondary'}) try: cast = [i for i in cast if 'With:' in i or 'Stars:' in i][0] except: cast = '0' cast = cast.split('With:', 1)[-1].strip() cast = client.replaceHTMLCodes(cast) cast = cast.encode('utf-8') cast = client.parseDOM(cast, 'a') if cast == []: cast = '0' plot = '0' try: plot = client.parseDOM(item, 'span', attrs = {'class': 'outline'})[0] except: pass try: plot = client.parseDOM(item, 'div', attrs = {'class': 'item_description'})[0] except: pass plot = plot.rsplit('<span>', 1)[0].strip() if plot == '': plot = '0' plot = client.replaceHTMLCodes(plot) plot = plot.encode('utf-8') fanart = 'http://films4u.org/imdb/bgs/'+imdb+'.jpg' fanart = fanart.encode('utf-8') tagline = re.compile('[.!?][\s]{1,2}(?=[A-Z])').split(plot)[0] try: tagline = tagline.encode('utf-8') except: pass self.list.append({'title': title, 'originaltitle': title, 'year': year, 'premiered': '0', 'studio': '0', 'genre': genre, 'duration': duration, 'rating': rating, 'votes': votes, 'mpaa': mpaa, 'director': director, 'writer': '0', 'cast': cast, 'plot': plot, 'tagline': tagline, 'name': name, 'code': imdb, 'imdb': imdb, 'tmdb': '0', 'tvdb': '0', 'tvrage': '0', 'poster': poster, 'banner': '0', 'fanart': fanart, 'next': next}) except: pass return self.list
def getstream(id): try: if yoylogin(): cookie = control.get_setting('yoytv.sess').strip() control.log('##### cookie2: %s' % cookie) url = 'http://yoy.tv/channels/%s' % id result = client.request(url, cookie=cookie) if 'http://yoy.tv/accept/' in result: if 'true' == control.get_setting('xxxmode'): control.log('EROTYK ') u1 = client.parseDOM(result, 'form', ret='action')[0] params = {} params['_token'] = client.parseDOM(result, 'input', ret='value', attrs={'name': '_token'})[0] control.log('params: %s' % params['_token']) result = client.request(u1, data=params, cookie=cookie) else: control.infoDialog(control.lang(30799).encode('utf-8') + ' ' +control.lang(30798).encode('utf-8')) return None if '<title>Kup konto premium w portalu yoy.tv</title>' in result: control.infoDialog(control.lang(30485).encode('utf-8')) return None myobj = client.parseDOM(result, 'object', ret='data', attrs={'type': 'application/x-shockwave-flash'})[0].encode('utf-8') result = client.parseDOM(result, 'param', ret='value', attrs={'name': 'FlashVars'})[0].encode('utf-8') control.log("YOY res: %s |%s| " % (result,myobj)) p = urlparse.parse_qs(result) #control.log('# %s' % query) control.log('# %s' % p) control.log('# %s' % p['fms']) control.log('# %s' % p['cid']) #lpi = result.index("s=") + result.index("=") * 3 #control.log('# %s' ) #rpi = result.index("&", lpi) - result.index("d") * 2 #dp=[] #cp=result[lpi:rpi].split('.') #for i, item in enumerate(cp): # j = 2 ^ i ^ ((i ^ 3) >> 1) # k = 255 - int(cp[j]) # dp.append(k) #myip = '.'.join(map(str, dp)) #control.log("YOY myip: %s " % (myip)) #myplaypath='%s?email=%s&secret=%s&hash=%s' %(result['cid'],result['email'],result['secret'],result['hash']) #myurl = 'rtmp://'+myip + ' app=yoy/_definst_ playpath=' + myplaypath + ' swfUrl=' + myobj + \ # ' swfVfy=true tcUrl=' + 'rtmp://'+myip+'/yoy/_definst_ live=true timeout=15 pageUrl=' + url myurl = p['fms'][0] + '/' + p['cid'][0] + ' swfUrl=' + myobj + ' swfVfy=true tcUrl=' + p['fms'][ 0] + '/_definst_ live=true timeout=15 pageUrl=' + url myurl = p['fms'][0] + '/' + p['cid'][0] + ' swfUrl=' + myobj + ' swfVfy=true live=true timeout=15 pageUrl=' + url # ' swfVfy=true tcUrl=' + 'rtmp://'+myip+'/oyo/_definst_ live=true pageUrl=' + url control.log("########## TAB:%s" % myurl) #myurl = myurl.replace('oyo','yoy') return myurl else: return None except Exception as e: control.log('Error yoy.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 getstream(id): try: if yoylogin(): cookie = control.get_setting('yoytv.sess').strip() control.log('##### cookie2: %s' % cookie) url = 'http://yoy.tv/channels/%s' % id result = client.request(url, cookie=cookie) if 'http://yoy.tv/accept/' in result: if 'true' == control.get_setting('xxxmode'): control.log('EROTYK ') u1 = client.parseDOM(result, 'form', ret='action')[0] params = {} params['_token'] = client.parseDOM( result, 'input', ret='value', attrs={'name': '_token'})[0] control.log('params: %s' % params['_token']) result = client.request(u1, data=params, cookie=cookie) else: control.infoDialog( control.lang(30799).encode('utf-8') + ' ' + control.lang(30798).encode('utf-8')) return None if '<title>Kup konto premium w portalu yoy.tv</title>' in result: control.infoDialog(control.lang(30485).encode('utf-8')) return None result1 = result try: myobj = client.parseDOM( result1, 'object', ret='data', attrs={'type': 'application/x-shockwave-flash'})[0].encode('utf-8') result = client.parseDOM(result1, 'param', ret='value', attrs={'name': 'FlashVars' })[0].encode('utf-8') control.log("YOY res: %s |%s| " % (result, myobj)) p = urlparse.parse_qs(result) #control.log('# %s' % query) control.log('# %s' % p) control.log('# %s' % p['fms']) control.log('# %s' % p['cid']) myurl = p['fms'][0] + '/' + p['cid'][ 0] + ' swfUrl=' + myobj + ' swfVfy=true tcUrl=' + p['fms'][ 0] + '/_definst_ live=true timeout=15 pageUrl=' + url myurl = p['fms'][0] + '/' + p['cid'][ 0] + ' swfUrl=' + myobj + ' swfVfy=true live=true timeout=15 pageUrl=' + url # ' swfVfy=true tcUrl=' + 'rtmp://'+myip+'/oyo/_definst_ live=true pageUrl=' + url control.log("########## TAB:%s" % myurl) return myurl #myurl = myurl.replace('oyo','yoy') except: pass result = re.compile('type: "application/x-mpegurl", src: "([^"]+)"' ).findall(result1) control.log("########## TAB:%s" % result) myurl = result[0] return myurl else: return None except Exception as e: control.log('Error yoy.getstream %s' % e) return None