def get_cached_url(self, url, data='', cache_limit=8): try: dbcon = database.connect(control.sourcescachedUrl) dbcur = dbcon.cursor() #dbcur.execute( # "CREATE TABLE IF NOT EXISTS rel_url (""source TEXT, ""imdb_id TEXT, ""season TEXT, ""episode TEXT, ""rel_url TEXT, ""UNIQUE(source, imdb_id, season, episode)"");") dbcur.execute( "CREATE TABLE IF NOT EXISTS url_cache (url VARCHAR(255) NOT NULL, data VARCHAR(255), response, res_header, timestamp, PRIMARY KEY(url, data))") except: pass try: if data is None: data = '' html = '' res_header = [] created = 0 now = time.time() age = now - created limit = 60 * 60 * cache_limit dbcur.execute('SELECT timestamp, response, res_header FROM url_cache WHERE url = %s and data=%s' % (url,data)) rows = dbcur.fetchall() control.log('DB ROWS: Url: %s, ' % (rows)) if rows: created = float(rows[0][0]) res_header = json.loads(rows[0][2]) age = now - created if age < limit: html = rows[0][1] control.log('DB Cache: Url: %s, Data: %s, Cache Hit: %s, created: %s, age: %.2fs (%.2fh), limit: %ss' % ( url, data, bool(html), created, age, age / (60 * 60), limit)) return created, res_header, html except: return
def play(self, name, title, service, meta): syshandle = int(sys.argv[1]) sysaddon = sys.argv[0] #control.log('xxx BBB3 %s | %s ' % (syshandle, sysaddon)) #control.log('BBB1 %s %s %s %s' % (name, title, meta,service)) try: if not control.infoLabel('Container.FolderPath').startswith( 'plugin://'): control.log('BBB2') control.playlist.clear() #control.resolve(int(sys.argv[1]), True, control.item(path='')) #control.execute('Dialog.Close(okdialog)') url = self.sourcesDirect(service, meta) if url == None: raise Exception() if url == 'close://': return from resources.lib.lib.player import player player().run(name, url, meta, service) return url except: control.infoDialog(control.lang(30501).encode('utf-8'), time=4000)
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 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 getstream(id): try: pl_proxy = control.setting('pl_proxy') pl_proxy_port = control.setting('pl_proxy_port') url = 'https://api.videostar.pl/channels/get/%s?format_id=2' % id result = get(url, pl_proxy) control.log('Z %s' % result) result = json.loads(result) if result['status'] == 'ok': url = result['stream_channel']['url_base'] result = client.request( url, headers=headers, cookie=control.get_setting('videostar.sess'), output='geturl') return result if result['status'] == 'error': control.infoDialog('%s' % result['errors'][0]['msg'].encode('utf-8')) control.dialog.ok(control.addonInfo('name'), result['errors'][0]['msg'].encode('utf-8'), '') raise Exception() except: #control.openSettings('6.1') control.log( 'ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ' )
def login(): #if getYoyCredentialsInfo() == False: # raise Exception() try: params = {} url = 'http://wizja.tv/users/index.php' result = client2.http_get(url) params['login']='******' params['user_name'] = control.get_setting('wizja.user') params['user_password'] = control.get_setting('wizja.pass') result = client2.http_get(url, data=params) control.log('DATA %s' % result) if 'o..</font><br>' in result: control.log('CCCC LOGIN %s' % 'wizja.tv') control.infoDialog(control.lang(30486).encode('utf-8'),time=6000) raise Exception() elif 'Zalogowany jako :' in result: if '<font color=ff0000>Brak premium' in result: control.infoDialog(control.lang(30490).encode('utf-8'), time=6000) return True else: return True elif '<font color="#FF0000">Wpisa' in result: control.log('CCCC LOGIN %s' % 'wizja.tv') control.infoDialog(control.lang(30487).encode('utf-8'),time=6000) else: control.log('CCCC LOGIN %s' % 'wizja.tv') control.infoDialog(control.lang(30488).encode('utf-8'), time=6000) return False except Exception as e: control.log('Error wizja.login %s' % e)
def get(self, url, idx=True): try: try: url = getattr(self, url + '_link') except: pass try: u = urlparse.urlparse(url).netloc.lower() except: pass if url in self.pierwsza_link: self.pierwsza_list(url) if url in self.videostar_link: self.videostar_list(url) if url in self.yoy_link: self.yoy_list(url) if url in self.weeb_link: self.weeb_list(url) if url in self.wizja_link: self.wizja_list(url) if idx == True: self.movieDirectory(self.list) return self.list except Exception as e: control.log('Error: %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 login(): #f getVideostarCredentialsInfo() == False: # raise Exception() params = {} #control.set_setting('videostar.sess', '') params['login'] = control.get_setting('videostar.user') params['password'] = control.get_setting('videostar.pass') params['permanent'] = 1 url = 'https://api-pilot.wp.pl/user/login' result = client.request(url, post=params, headers=headers, output='cookie') control.log('ResultC videostar.get %s' % result) if result == '': control.infoDialog('Unauthorized') return None control.set_setting('videostar.sess', result) control.sleep(500) url = 'https://api-pilot.wp.pl/invitations/limit' headers['cookie'] = result result2 = client.request(url, headers=headers) if 'error' in result2: result2 = json.loads(result2) control.log('EEEEEEEEEEEE Result videostar.get %s' % result2['errors'][0]['msg']) control.infoDialog(result2['errors'][0]['msg'].encode('utf-8')) control.sleep(500) return result
def play(self, name, title, service, meta): syshandle = int(sys.argv[1]) sysaddon = sys.argv[0] #control.log('xxx BBB3 %s | %s ' % (syshandle, sysaddon)) #control.log('BBB1 %s %s %s %s' % (name, title, meta,service)) try: if not control.infoLabel('Container.FolderPath').startswith('plugin://'): control.log('BBB2' ) control.playlist.clear() #control.resolve(int(sys.argv[1]), True, control.item(path='')) #control.execute('Dialog.Close(okdialog)') url = self.sourcesDirect(service, meta) if url == None: raise Exception() if url == 'close://': return from resources.lib.lib.player import player player().run(name, url, meta,service) return url except: control.infoDialog(control.lang(30501).encode('utf-8'),time=4000)
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 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 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 streamrefresh(): try: #mynow = int(datetime.datetime.now().strftime('%s')) mynow = int(str(int(time.mktime(datetime.datetime.now().timetuple())))) expired = int(control.get_setting('telewizjada.tokenExpireIn')) #control.log('XXXX Telewizjadanet Exp:%s Now:%s' % (expired, mynow)) if mynow > expired: ua = control.get_setting('telewizjada.ua') refreshcookie = control.get_setting('telewizjada.refreshcookie') referer = control.get_setting('telewizjada.referer') myheaders = { 'User-Agent': ua, 'Content-Type': 'application/json', 'cookie': refreshcookie, 'referer': referer } url = 'http://www.telewizjada.net/net/service/verifydevice.php' params = json.dumps({"action": "old", "key": ""}) result = client.request(url, post=params, headers=myheaders) control.log('Telewizjada verifydevice result: %s' % (result)) expirewhen = datetime.datetime.now() + datetime.timedelta( seconds=refreshtime) control.set_setting('telewizjada.tokenExpireIn', str(int(time.mktime(expirewhen.timetuple())))) except Exception as e: control.log('Error telewizjada.refresh %s' % e) raise Exception()
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 fix_bad_cookies(cookies): for domain in cookies: for path in cookies[domain]: for key in cookies[domain][path]: cookie = cookies[domain][path][key] if cookie.expires > sys.maxint: control.log('Fixing cookie expiration for %s: was: %s now: %s' % (key, cookie.expires, sys.maxint)) cookie.expires = sys.maxint return cookies
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 is_bad_proxy(pip): try: proxy_handler = urllib2.ProxyHandler({'http': pip}) opener = urllib2.build_opener(proxy_handler) opener.addheaders = [('User-agent', 'Mozilla/5.0')] urllib2.install_opener(opener) req=urllib2.Request('http://kodi.filmkodi.com') # change the url address here sock=urllib2.urlopen(req, timeout=20) except urllib2.HTTPError, e: control.log('Error code: %s' % e.code) return 'Error code: %s' % e.code
def checkSources(self, name, title, year, imdb, tmdb, tvdb, service, season, episode, tvshowtitle, alter, date): sourceDict = [] for package, name, is_pkg in pkgutil.walk_packages(__path__): sourceDict.append((name, is_pkg)) sourceDict = [i[0] for i in sourceDict if i[1] == False] content = 'movie' if tvshowtitle == None else 'episode' if content == 'movie': sourceDict = [i for i in sourceDict if i.endswith(('_mv', '_mv_tv'))] try: sourceDict = [(i, control.setting(re.sub('_mv_tv$|_mv$|_tv$', '', i))) for i in sourceDict] except: sourceDict = [(i, 'true') for i in sourceDict] else: sourceDict = [i for i in sourceDict if i.endswith(('_tv', '_mv_tv'))] try: sourceDict = [(i, control.setting(re.sub('_mv_tv$|_mv$|_tv$', '', i) + '_tv')) for i in sourceDict] except: sourceDict = [(i, 'true') for i in sourceDict] threads = [] control.makeFile(control.dataPath) self.sourceFile = control.sourcescacheFile sourceDict = [i[0] for i in sourceDict if i[1] == 'true'] if content == 'movie': title = cleantitle.normalize(title) for source in sourceDict: threads.append(workers.Thread(self.getMovieSource, title, year, imdb, re.sub('_mv_tv$|_mv$|_tv$', '', source), __import__(source, globals(), locals(), [], -1).source())) else: tvshowtitle = cleantitle.normalize(tvshowtitle) season, episode = alterepisode.alterepisode().get(imdb, tmdb, tvdb, service, season, episode, alter, title, date) for source in sourceDict: control.log("SOURCE S2 %s" % source) threads.append(workers.Thread(self.getEpisodeSource, title, year, imdb, tvdb, season, episode, tvshowtitle, date, re.sub('_mv_tv$|_mv$|_tv$', '', source), __import__(source, globals(), locals(), [], -1).source())) try: timeout = int(control.setting('sources_timeout_40')) except: timeout = 40 [i.start() for i in threads] for i in range(0, timeout * 2): try: if xbmc.abortRequested == True: return sys.exit() if len(self.sources) >= 10: break is_alive = [x.is_alive() for x in threads] if all(x == False for x in is_alive): break time.sleep(0.5) except: pass if len(self.sources) >= 10: return True else: return False
def pierwsza_list(self, url): items = cache.get(pierwsza.chanels, 2) #items = pierwsza.chanels() next = '' for item in items: try: id = str(item['id']) id = id.encode('utf-8') title = item['name'] title = client.replaceHTMLCodes(title) title = title.encode('utf-8') poster = '0' try: poster = item['thumbail'] poster = self.pierwsza_link+poster except: pass poster = poster.encode('utf-8') fanart = '0' try: fanart = item['thumbail'] fanart = self.pierwsza_link+fanart except: pass fanart = fanart.encode('utf-8') plot = '0' try: plot = item['overview'] except: pass if plot == None: plot = '0' plot = client.replaceHTMLCodes(plot) plot = plot.encode('utf-8') try: tagline = item['tagline'] except: tagline = None if tagline == None and not plot == '0': tagline = re.compile('[.!?][\s]{1,2}(?=[A-Z])').split(plot)[0] elif tagline == None: tagline = '0' tagline = client.replaceHTMLCodes(tagline) try: tagline = tagline.encode('utf-8') except: pass self.list.append({'title': title, 'originaltitle': title, 'genre': '0', 'plot': plot, 'name':title, 'tagline': tagline, 'poster': poster, 'fanart': fanart, 'id':id, 'service':'pierwsza', 'next': next}) #control.log("##################><><><><> pierwsza item %s" % self.list) except: control.log("##################><><><><> pierwsza item %s" % newlist) pass import operator self.list.sort(key=operator.itemgetter('title')) return self.list
def getstream(id): try: if login(): ref = 'http://wizja.tv/watch.php?id=%s' % id result = client2.http_get(ref) headers = {'Referer': ref} url = 'http://wizja.tv/porter.php?ch=%s' % id result = client2.http_get(url, headers=headers) #control.log('Error wizja.getstream %s' % result) #[SPECTO]: Error wizja.getstream WWW: <html><head> #<link rel="stylesheet" type="text/css" href="/white.css"></head><body><font size="3"><br><br><center><b><font color="#ff0000">Oglądasz zbyt wiele programów jednocześnie!</font></b><br><br>Zamknij pozostałe otwarte strony i spróbuj ponownie, <br>lub # <a href="killme.php?id=70" target="_top">zakończ wszystkie pozostałe połączenia i wpuść mnie!</a></font> # mylink = re.compile('src: "(.*?)"').findall(result) mykill = re.compile('<a href="killme.php\?id=(.*?)" target="_top">' ).findall(result) if len(mylink) > 0: rtmp2 = urllib.unquote(mylink[0]).decode('utf8') rtmp1 = re.compile( 'rtmp://(.*?)/(.*?)/(.*?)\?(.*?)\&streamType').findall( rtmp2) rtmp = 'rtmp://' + rtmp1[0][0] + '/' + rtmp1[0][ 1] + '/' + rtmp1[0][2] + '?' + rtmp1[0][ 3] + ' app=' + rtmp1[0][1] + '?' + rtmp1[0][ 3] + ' swfVfy=1 flashver=WIN\\2020,0,0,306 timeout=25 swfUrl=http://wizja.tv/player/StrobeMediaPlayback.swf live=true pageUrl=' + ref return rtmp elif len(mykill) > 0: control.log('Error KILL %s' % mykill) urlkill = 'http://wizja.tv/killme.php?id=%s' % mykill[0] result = client2.http_get(urlkill, headers=headers) control.sleep(300) url = 'http://wizja.tv/porter.php?ch=%s' % id result = client2.http_get(url, headers=headers) mylink = re.compile('src: "(.*?)"').findall(result) if len(mylink) > 0: rtmp2 = urllib.unquote(mylink[0]).decode('utf8') rtmp1 = re.compile( 'rtmp://(.*?)/(.*?)/(.*?)\?(.*?)\&streamType').findall( rtmp2) rtmp = 'rtmp://' + rtmp1[0][0] + '/' + rtmp1[0][ 1] + '/' + rtmp1[0][2] + '?' + rtmp1[0][ 3] + ' app=' + rtmp1[0][1] + '?' + rtmp1[0][ 3] + ' swfVfy=1 flashver=WIN\\2020,0,0,306 timeout=25 swfUrl=http://wizja.tv/player/StrobeMediaPlayback.swf live=true pageUrl=' + ref return rtmp else: raise Exception('WWW: ' + result) else: return except Exception as e: control.log('Error wizja.getstream %s' % e)
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) 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)) 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)) result = dict(urlparse.parse_qsl(result)) 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 pageUrl=' + url #control.log("########## TAB:%s" % myurl) return myurl except Exception as e: control.log('Error yoy.getstream %s' % e)
def chanels(): adult = control.get_setting('xxxmode') #if login() == False: # control.log('Błędny login') # raise ValueError('Błędny login') url = 'http://www.telewizjada.net/get_channels_cache.php' items = [] try: result = client.request(url) result = json.loads(result) for i in result['channels']: try: if adult == 'false': if i['isAdult'] == 1: control.log('Adult telewizjada.chanels %s' % i['displayName']) raise ValueError('Adult channel %s' % i['displayName']) item = {} item['img'] = urlparse.urljoin(base_url, i['bigThumb']).encode('utf-8') item['id'] = i['id'] item['title'] = i['displayName'].upper().encode('utf-8') item['plot'] = i['description'].encode('utf-8') 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': 'telewizjadanet', 'next': '' } items.append(item) #control.log('XXXXXXXXX %s' % i) except: pass return items except Exception as e: control.log('Error telewizjada.chanels %s' % e) control.dialog.ok( control.addonInfo('name') + ' - Telewizjada.net', control.lang(30602).encode('utf-8'), '') return
def run(self, name, url, meta, service): control.log("###URL %s" % url) if control.window.getProperty('PseudoTVRunning') == 'True': return control.player.play(url, control.item(path=url)) #client.mystat('http://'+service+'.tv') if service=='telewizjadanet': self._service = service self._playing = True if service=='pierwsza': self._service = service self._playing = True if service=='looknij': control.log("Looknij start") self._service = service self._playing = True poster, thumb, meta = self.getMeta(meta) control.log("###META %s" % meta) item = control.item(path=url) item.setArt({'icon': thumb, 'thumb': thumb, 'poster': poster, 'tvshow.poster': poster, 'season.poster': poster}) #item.setInfo(type='Video', infoLabels=meta) #item.setInfo(type='Video', infoLabels={ "Title": meta['title']}) control.log("###URL %s | %s | %s" % (url, name, int(sys.argv[1]))) control.resolve(int(sys.argv[1]), True, item) for i in range(0, 240): if self.isPlayingVideo(): break xbmc.sleep(1000)
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 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 getstream(id): try: url = 'https://api.videostar.pl/channels/get/%s?format_id=2' % id result = get(url) result = json.loads(result) if result['status'] == 'ok': url = result['stream_channel']['url_base'] result = client.request(url, headers=headers, cookie=control.get_setting('videostar.sess'), output='geturl') return result raise Exception() except: #control.openSettings('6.1') control.log('ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ' )
def getstream(id): try: if login(): ref='%s' % id result = client2.http_get(ref) headers={'Referer':ref} url = '%s' % id result = client2.http_get(url, headers=headers) mylink = re.compile("file[']*[:,]\s*[']([^']+)").findall(result) if len(mylink)>0: rtmp = mylink[0].replace('flv:','') rtmp = rtmp + ' live=true timeout=15' return rtmp except Exception as e: control.log('Error itivi.getstream %s' % e)
def getstream(id): try: if wizjalogin(): cookie = control.setting('wizja.token').strip() ref = 'http://wizja.tv/watch.php?id=%s' % id result = client.request(ref, headers=HOST, cookie=cookie) HOST['Referer'] = ref url = 'http://wizja.tv/porter.php?ch=%s' % id result = client.request(url, headers=HOST, cookie=cookie) mylink = re.compile('src: "(.*?)"').findall(result) mykill = re.compile('<a href="killme.php\?id=(.*?)" target="_top">' ).findall(result) if len(mylink) > 0: rtmp2 = urllib.unquote(mylink[0]).decode('utf8') rtmp1 = re.compile( 'rtmp://(.*?)/(.*?)/(.*?)\?(.*?)\&streamType').findall( rtmp2) rtmp = 'rtmp://' + rtmp1[0][0] + '/' + rtmp1[0][ 1] + '/' + rtmp1[0][2] + '?' + rtmp1[0][ 3] + ' app=' + rtmp1[0][1] + '?' + rtmp1[0][ 3] + ' swfVfy=1 flashver=WIN\\2020,0,0,306 timeout=25 swfUrl=http://wizja.tv/player/StrobeMediaPlayback.swf live=true pageUrl=' + ref return rtmp #kill other sessions elif len(mykill) > 0: control.log('Error KILL %s' % mykill) urlkill = 'http://wizja.tv/killme.php?id=%s' % mykill[0] result = client.request(urlkill, headers=HOST, cookie=cookie) control.sleep(300) url = 'http://wizja.tv/porter.php?ch=%s' % id result = client.request(url, headers=HOST, cookie=cookie) mylink = re.compile('src: "(.*?)"').findall(result) if len(mylink) > 0: rtmp2 = urllib.unquote(mylink[0]).decode('utf8') rtmp1 = re.compile( 'rtmp://(.*?)/(.*?)/(.*?)\?(.*?)\&streamType').findall( rtmp2) rtmp = 'rtmp://' + rtmp1[0][0] + '/' + rtmp1[0][ 1] + '/' + rtmp1[0][2] + '?' + rtmp1[0][ 3] + ' app=' + rtmp1[0][1] + '?' + rtmp1[0][ 3] + ' swfVfy=1 flashver=WIN\\2020,0,0,306 timeout=25 swfUrl=http://wizja.tv/player/StrobeMediaPlayback.swf live=true pageUrl=' + ref return rtmp else: raise Exception('WWW: ' + result) else: return except Exception as e: control.log('Error wizja.getstream %s' % e)
def _clean_cookies(base_url): cookie_file = os.path.join(control.cookieDir, '%s_cookies.lwp' % shrink_host((base_url))) #cookie_file = os.path.join('/home/mrknow/.kodi/userdata/addon_data/plugin.video.milenium/Cookies', '%s_cookies.lwp' % shrink_host((base_url))) #control.log('control.cookieDir: %s' % (control.cookieDir)) cj = cookielib.LWPCookieJar(cookie_file) try: cj.load(ignore_discard=True) cj.clear() cj.save(ignore_discard=True) except Exception as e: control.log('_clean_cookies: %s' % e) pass #log_utils.log('After Cookies: %s - %s' % (self, scraper_utils.cookies_as_str(cj)), log_utils.LOGDEBUG) return cj
def chanels(): items = [] try: result = get('/api/channels') result = json.loads(result) for i in result['channels']: try: items.append(i) except: pass if len(items) == 0: items = result except: control.log('Error pierwsza.chanels' ) pass return items
def getstream(id): try: #if login(): url='https://looknij.in/tv/data/%s' % id headers={'Referer':url, "X-Requested-With":"XMLHttpRequest"} params = {"isMobile":"false"} result = client2.http_get(url, data=params, headers=headers) result = json.loads(result) #control.log('RES %s' % dump(result)) if len(result)>0: link = result['Url'] #control.log('RES %s' % dump(link)) return link return except Exception as e: control.log('Error looknij.getstream %s' % e) return
def getstream(id): try: #if login(): url = 'https://looknij.in/tv/data/%s' % id headers = {'Referer': url, "X-Requested-With": "XMLHttpRequest"} params = {"isMobile": "false"} result = client.request(url, post=params, headers=headers) result = json.loads(result) #control.log('RES %s' % dump(result)) if len(result) > 0: link = result['Url'] #control.log('RES %s' % dump(link)) return link return except Exception as e: control.log('Error looknij.getstream %s' % e) return
def getstream(id): try: if login() == False: control.log('Błędny login') raise ValueError('Błędny login') ua = control.get_setting('telewizjada.ua') myheaders = {'User-Agent':ua} token = control.get_setting('telewizjada.token') mainurl = 'http://www.telewizjada.net/live.php?cid=%s' % id myheaders['referer']=mainurl sidcookie = client.request(mainurl, headers=myheaders, output='cookie') #control.log('SidCookie: %s' % (sidcookie)) url='http://www.statsgather.com/activatehls/getstats.php' hlsresult = client.request(url, post='', headers=myheaders, cookie='hls_stats=%s' % token) control.log('GetSTAT Result: %s' % hlsresult) mastercookie = '%s;%s;%s;%s ' % (sidcookie, 'hlsplugin=%s' % token, 'cb-enabled=accepted', 'cookieView=all' ) #control.log('MASTERCOOKIE ' + mastercookie) url = 'http://www.telewizjada.net/net/service/verifydevice.php' params = json.dumps({'action':'new', 'key':hlsresult}) jsonmyheaders = myheaders jsonmyheaders['Content-Type'] = 'application/json' jsonmyheaders['cookie'] = mastercookie #result = client.request(url, post=params, headers=jsonmyheaders) result, h1, content, cookie10 = client.request(url, post=params, headers=jsonmyheaders,output='extended') refreshcookie = '%s;%s;%s;%s ' % (sidcookie, '%s' % content['Set-Cookie'].split(';')[0], 'cb-enabled=accepted', 'cookieView=all' ) #control.log('AccessCookie: %s|%s' % (result,content['Set-Cookie'])) control.set_setting('telewizjada.refreshcookie', refreshcookie) control.set_setting('telewizjada.referer',mainurl) result = json.loads(result) if result['status'] == 'Active': #time.sleep(1) control.set_setting('telewizjada.expire', result['expire']) expirewhen = datetime.datetime.now() + datetime.timedelta(seconds=refreshtime) control.set_setting('telewizjada.tokenExpireIn', str(int(time.mktime(expirewhen.timetuple())))) url = 'http://www.telewizjada.net/get_channel_data.php' myheaders1 = {'cookie': mastercookie, 'User-Agent':ua, 'referer': mainurl} params = {'cid':str(id)} result = client.request(url, post=params, headers=myheaders1) result = json.loads(result) vidlink = '%s|Cookie=%s' % (result['channelurl'], sidcookie) control.log('TELEWIZJADA VID %s' % vidlink) return vidlink return None except Exception as e: control.log('Error telewizjada.net .getstream %s' % e )
def weebchanels(): items = [] try: result = get('/api/getChannelList') result = json.loads(result) for i in result: try: if result[i]['channel_online'] != '2': raise Exception() id = result[i]['channel_name'] title = result[i]['channel_title'].encode('utf-8') poster = '0' try: poster = result[i]['channel_logo_url'] except: pass fanart = '0' try: fanart = result[i]['channel_logo_url'] except: pass #fanart = fanart.encode('utf-8') plot = '0' try: plot=result[i]['channel_description'] plot = client.replaceHTMLCodes(plot) except: pass #plot = plot.encode('utf-8') tagline = '0' try: tagline = tagline.encode('utf-8') except: pass #tagline = plot.encode('utf-8') #ala = {'name': title, 'id': id} ala={'title': title, 'originaltitle': title, 'genre': '0', 'plot': plot, 'name': title, 'tagline': tagline, 'poster': poster, 'fanart': fanart, 'id': id,'service':'weeb', 'next': ''} items.append(ala) except: pass if len(items) == 0: items = result except: control.log('Error weeb.chanels' ) pass return items
def googletag(url): quality = re.compile('itag=(\d*)').findall(url) quality += re.compile('=m(\d*)$').findall(url) try: quality = quality[0] except: return [] control.log('<><><><><><><><><><><><> %s <><><><><><><><><>' % quality) if quality in ['37', '137', '299', '96', '248', '303', '46']: return [{'quality': '1080p', 'url': url}] elif quality in ['22', '84', '136', '298', '120', '95', '247', '302', '45', '102']: return [{'quality': 'HD', 'url': url}] elif quality in ['35', '44', '135', '244', '94']: return [{'quality': 'SD', 'url': url}] elif quality in ['18', '34', '43', '82', '100', '101', '134', '243', '93']: return [{'quality': 'SD', 'url': url}] elif quality in ['5', '6', '36', '83', '133', '242', '92', '132']: return [{'quality': 'SD', 'url': url}] else: return []
def http_get(url, cookies=None, data=None, multipart_data=None, headers=None, allow_redirect=True, method=None, require_debrid=False, cache_limit=8): #control.log('--=-=-==-=-=-=- CLIENT2 url: %s' % (url)) html = cached_http_get(url, shrink_host(url), control.DEFAULT_TIMEOUT, cookies=cookies, data=data, multipart_data=multipart_data, headers=headers, allow_redirect=allow_redirect, method=method, require_debrid=require_debrid, cache_limit=cache_limit) sucuri_cookie = get_sucuri_cookie(html) if sucuri_cookie: control.log('Setting sucuri cookie: %s' % (sucuri_cookie)) if cookies is not None: cookies = cookies.update(sucuri_cookie) else: cookies = sucuri_cookie html = cached_http_get(url, shrink_host(url), control.DEFAULT_TIMEOUT, cookies=cookies, data=data, multipart_data=multipart_data, headers=headers, allow_redirect=allow_redirect, method=method, require_debrid=require_debrid, cache_limit=0) return html
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 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 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 getstream(id): try: url = 'https://api.videostar.pl/channels/get/%s?format_id=2' % id result = get(url) result = json.loads(result) if result['status'] == 'ok': url = result['stream_channel']['url_base'] result = client.request( url, headers=headers, cookie=control.get_setting('videostar.sess'), output='geturl') return result raise Exception() except: #control.openSettings('6.1') control.log( 'ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ' )
def getstream(id): try: if login(): ref='http://wizja.tv/watch.php?id=%s' % id result = client2.http_get(ref) headers={'Referer':ref} url = 'http://wizja.tv/porter.php?ch=%s' % id result = client2.http_get(url, headers=headers) mylink = re.compile('src: "(.*?)"').findall(result) if len(mylink)>0: rtmp2 = urllib.unquote(mylink[0]).decode('utf8') rtmp1 = re.compile('rtmp://(.*?)/(.*?)/(.*?)\?(.*?)\&streamType').findall(rtmp2) rtmp = 'rtmp://' + rtmp1[0][0] + '/' + rtmp1[0][1] +'/' +rtmp1[0][2]+ '?'+ rtmp1[0][3]+ ' app=' + rtmp1[0][1] + '?' +rtmp1[0][3]+' swfVfy=1 flashver=WIN\\2020,0,0,306 timeout=25 swfUrl=http://wizja.tv/player/StrobeMediaPlayback.swf live=true pageUrl='+ref return rtmp else: raise Exception() else: return except Exception as e: control.log('Error wizja.login %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 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 getstream(id): try: params={} params['channel']=id url = '/api/setPlayer' result = get(url, params) result = dict(urlparse.parse_qsl(result)) playPath = result['11'] bitrate = result['20'] token = result['73'] if bitrate == '1': playPath = playPath + 'HI' rtmp = str(result['10']) + '/' + playPath + ' live=true pageUrl=token swfUrl=' + token return rtmp raise Exception() except: #control.openSettings('6.1') control.log('Error weeb.getstream' )
def getstream(id): try: pl_proxy = control.setting('pl_proxy') pl_proxy_port = control.setting('pl_proxy_port') url = 'https://api.videostar.pl/channels/get/%s?format_id=2' % id result = get(url,pl_proxy) control.log('Z %s' % result) result = json.loads(result) if result['status'] == 'ok': url = result['stream_channel']['url_base'] result = client.request(url, headers=headers, cookie=control.get_setting('videostar.sess'), output='geturl') return result if result['status'] == 'error': if result['errors'][0]['code'] == 300: params = {'t':result['errors'][0]['data']['stream_token'] } res = get('/channels/close', headers=headers, cookie=control.get_setting('videostar.sess'), post=params) control.log('Z %s' % result) return getstream(id) else: control.infoDialog('%s' % result['errors'][0]['msg'].encode('utf-8')) control.dialog.ok(control.addonInfo('name'), result['errors'][0]['msg'].encode('utf-8'), '') raise Exception() except: #control.openSettings('6.1') control.log('ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ' )
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 streamrefresh(): try: #mynow = int(datetime.datetime.now().strftime('%s')) mynow = int(str(int(time.mktime(datetime.datetime.now().timetuple())))) expired = int(control.get_setting('pierwszatv.tokenExpireIn')) #control.log('XXXX Exp:%s Now:%s' % (expired, mynow)) if mynow>expired: control.log('Pierwsza refresh') url = '/api/stream/refresh' params = {} params['serverId'] =control.get_setting('pierwszatv.serverId') params['streamId'] =control.get_setting('pierwszatv.streamId') params['token'] = control.get_setting('pierwszatv.token') result = get(url, params) result = json.loads(result) 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())))) except Exception as e: control.log('Error pierwsza.refresh %s' % e ) raise Exception()