def get_links(self, cItem): URL = cItem['url'] urlTab = [] sts, data = self.getPage(URL) if sts: Tab_els = re.findall('<iframe.*?src="(.*?)"', data, re.S) for elm in Tab_els: printDBG('link------------->' + elm) if 'www.2embed' in elm: urls = self.get_2embed(elm) for url in urls: urlTab.append({ 'name': '|2Embed| ' + gethostname(url), 'url': url, 'need_resolve': 1 }) elif 'database.gdriveplayer' in elm: urls = self.get_gdriveplayer(elm) for url in urls: urlTab.append({ 'name': '|GdrivePlayer| ' + gethostname(url), 'url': url, 'need_resolve': 1 }) else: urlTab.append({ 'name': gethostname(elm), 'url': elm, 'need_resolve': 1 }) return urlTab
def get_links(self, cItem): urlTab = [] URL = cItem['url'] sts, data = self.getPage(URL) if sts: Tab_els = re.findall('tabtitle">(.*?)<(.*?)</center>', data, re.S) for (titre0, data0) in Tab_els: local = '' Tab_els0 = re.findall('<iframe.*?src="(.*?)"', data0, re.S | re.IGNORECASE) if Tab_els0: URL = Tab_els0[0] if '24hd' in URL: local = 'local' urlTab.append({ 'name': gethostname(URL), 'url': 'hst#tshost#' + URL + '|XXSEE', 'need_resolve': 1, 'type': local }) else: urlTab.append({ 'name': gethostname(URL), 'url': URL, 'need_resolve': 1 }) return urlTab
def get_links(self, cItem): urlTab = [] url = cItem['url'] sts, data = self.getPage(url) if sts: data1 = re.findall('main-info">.*?href="(.*?)"', data, re.S) if data1: URL = data1[0].replace('download', 'watch') sts, data = self.getPage(URL) if sts: server_data = re.findall('servers-list">(.*?)</ul>', data, re.S) if server_data: server_data1 = re.findall( '<li.*?(src|SRC)="(.*?)".*?">(.*?)<', server_data[0], re.S) for (x1, url, titre) in server_data1: url = unifurl(url) host = gethostname(url) titre = titre.replace('سيرفر', 'Server') titre = titre + ' \c0000??00( ' + host + ' )' if not '/arabseed.' in url: urlTab.append({ 'name': titre, 'url': url, 'need_resolve': 1 }) else: urlTab.append({ 'name': titre, 'url': 'hst#tshost#' + url, 'need_resolve': 1 }) if len(urlTab) == 0: server_data2 = re.findall('<li.*?"(.*?)">(.*?)<', server_data[0], re.S) for (url, titre) in server_data2: url = unifurl(url) host = gethostname(url) titre = titre.replace('سيرفر', 'Server') titre = titre + ' \c0000??00( ' + host + ' )' if not 'arabseed' in url: urlTab.append({ 'name': titre, 'url': url, 'need_resolve': 1 }) else: urlTab.append({ 'name': titre, 'url': 'hst#tshost#' + url, 'need_resolve': 1 }) return urlTab
def get_links(self,cItem): URL=cItem['url'] urlTab = self.cacheLinks.get(URL, []) printDBG('Cache='+str(urlTab)) if urlTab == []: sts, data = self.getPage(URL) if sts: data_list = re.findall('class="TPlayerTb.*?trembed=(.*?)("|")', data, re.S) for (url,x1) in data_list: printDBG('etap 1') url=url.replace('&','&') url=self.MAIN_URL+'/?trembed='+url.replace('&','&') sts, data2 = self.getPage(url,self.defaultParams) data_list2 = re.findall('src.*?["\'](.*?)["\']', data2, re.S) if data_list2: printDBG('etap 2') url=data_list2[0] sts, data3 = self.getPage(url,self.defaultParams) data_list3 = re.findall("var id.+?'(.+?)'", data3, re.S) if data_list3: printDBG('etap 3') url1=self.MAIN_URL+'/?trhidee=1&trfex='+data_list3[0][::-1] paramsUrl = dict(self.defaultParams) paramsUrl['header']['Referer'] = url sts, data3 = self.getPage(url1,paramsUrl) if sts: Url=data3.meta['url'] printDBG('etap 5='+Url) if ('public/dist' in Url) and ('id=' in Url): URL = 'https://' + Url.split('/')[2] + '/hls/'+Url.split('id=')[1]+'/'+Url.split('id=')[1]+'.playlist.m3u8' printDBG('etap 6='+URL) URL = strwithmeta(URL, {'Referer':Url}) urlTab.extend(getDirectM3U8Playlist(URL, checkExt=True, checkContent=True, sortWithMaxBitrate=999999999)) if '/public/dist/index.html?id=' in Url: URL = Url.replace('/public/dist/index.html?id=','/getLinkStreamMd5/') printDBG('etap 7='+URL) sts, data4 = self.getPage(URL,paramsUrl) if sts: data_lst = re.findall('file":"(.*?)".*?label":"(.*?)"', data4, re.S) if data_lst: label = data_lst[0][1] if 'googlevideo' in data_lst[0][0]: label = '|'+label + '| Google' urlTab.append({'name':label, 'url':data_lst[0][0], 'need_resolve':0}) elif '/embedplay/' in Url: sts, data4 = self.getPage(Url,self.defaultParams) if sts: data_list4 = re.findall('<iframe.*?src=["\'](.*?)["\']', data4, re.S) if data_list4: Url = data_list4[0] urlTab.append({'name':gethostname(Url), 'url':Url, 'need_resolve':1}) else: urlTab.append({'name':gethostname(Url), 'url':Url, 'need_resolve':1}) self.cacheLinks[str(cItem['url'])] = urlTab return urlTab
def get_links(self,cItem): urlTab = [] if config.plugins.iptvplayer.ts_dsn.value: urlTab = self.cacheLinks.get(str(cItem['url']), []) if urlTab == []: url=cItem['url']+'watch/' sts, data = self.getPage(url) if sts: server_data = re.findall('<li data-post="(.*?)".*?data-server="(.*?)".*?>(.*?)</li>', data, re.S) for (code2,code1,srv) in server_data: srv = ph.clean_html(srv) srv = srv.replace('سيرفر','Server').replace('عرب سيد',' ArabSeed') local = '' if 'ArabSeed' in srv: local = 'local' if not config.plugins.iptvplayer.ts_dsn.value: urlTab.append({'name':srv, 'url':'hst#tshost#'+code1+'|'+code2, 'need_resolve':1,'type':local}) else: urlTab0=self.getVideos(code1+'|'+code2) for elm in urlTab0: #printDBG('elm='+str(elm)) url_ = elm[0] type_ = elm[1] if type_ == '1': name_ = gethostname(url_) urlTab.append({'name':'|'+srv+'| '+name_, 'url':url_, 'need_resolve':1,'type':local}) urlTab = sorted(urlTab, key=lambda x: x['name'], reverse=False) if config.plugins.iptvplayer.ts_dsn.value: self.cacheLinks[str(cItem['url'])] = urlTab return urlTab
def Get_Gomostream_Servers(self,Url): urlTab = [] sts, data = self.getPage(Url,self.defaultParams) if sts: tc_data = re.findall('var tc.*?[\'"](.*?)[\'"]', data, re.S) _token_data = re.findall('_token".*?"(.*?)"', data, re.S) fn_data = re.findall('function _tsd_tsd_ds\(s\) \{.+?slice\((.+?),(.+?)\).+?return _.+? \+ "(.+?)"\+"(.+?)";', data, re.S) if (tc_data and _token_data and fn_data): tc = tc_data[0] _token = _token_data[0] _token1 = self.get_token(fn_data,tc) printDBG('token = '+_token1) POST_HEADER={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0', 'X-Requested-With':'XMLHttpRequest','x-token': _token1,'Referer':Url} post_data = {'tokenCode':tc,'_token':_token} sts, data = self.getPage('https://gomo.to/decoding_v3.php',{'header':POST_HEADER},post_data) if sts: srv_data = re.findall('"(.*?)"', data.replace('\\',''), re.S) for srv in srv_data: if srv!='': if 'gomo.to' not in srv: urlTab.append({'name':gethostname(srv).capitalize(), 'url':srv, 'need_resolve':1}) else: titre = 'Gomostream' if '/vid1/' in srv: titre = 'GDrive' urlTab.append({'name':'|Local| '+titre, 'url':'hst#tshost#'+srv+'|XXGOM', 'need_resolve':1,'type':'local'}) return urlTab
def get_links(self, cItem): urlTab = [] URL = cItem['url'] sts, data = self.getPage(URL) if sts: Liste_els = re.findall('class="movies-servers.*?<ul(.*?)</ul>', data, re.S) if Liste_els: Liste_els_2 = re.findall( '<li.*?data-serv="(.*?)".*?post="(.*?)">(.*?)</li>', Liste_els[0], re.S) for (code1, code2, srv) in Liste_els_2: url = 'https://www.zimabdko.com/wp-admin/admin-ajax.php?action=codecanal_ajax_request&post=' + code2 + '&serv=' + code1 sts, data = self.getPage(url) Liste_els = re.findall('src.*?["\'](.*?)["\']', data, re.S) if Liste_els: urlTab.append({ 'name': '|Server: ' + ph.clean_html(srv) + '| ' + gethostname(Liste_els[0]), 'url': Liste_els[0], 'need_resolve': 1 }) return urlTab
def get_links(self,cItem): urlTab = [] #urlTab.append({'name':'ttttttt', 'url':'hkhhk', 'need_resolve':0}) URL=cItem['url'] sts, data = self.getPage(URL) if sts: #d1 = re.findall('''["']sources['"]\s*:\s*\[(.*?)\]''', data) d1 = re.findall('''["']sources['"]\s*:\s*\[(.*?)\]''', data, re.S) if d1: if 'eval' in d1[0]: d3 = re.findall('eval\((.*)', data, re.S) if d3: #tab_dec=[SAWLIVETV_decryptPlayerParams,VIDEOWEED_decryptPlayerParams, VIDEOWEED_decryptPlayerParams2,TEAMCASTPL_decryptPlayerParams,VIDUPME_decryptPlayerParams,KINGFILESNET_decryptPlayerParams] data = unpackJSPlayerParams('eval('+d3[0]+')', SAWLIVETV_decryptPlayerParams, 0) printDBG(data) urlTab.append({'name':'Direct Link', 'url':data.replace('"','').replace("'",''), 'need_resolve':0,'type':'local'}) else: d1 = re.findall('''['"]*file['"]*\s*:\s*([^\(]+)''', d1[0])[0] d2 = re.findall('function\s+%s[^{]+{\s*([^}]+)' % d1, data)[0] data_list = re.findall('return.*?"(.*?)"', d2, re.S) if data_list: URL1=data_list[0] urlTab.append({'name':'Direct Link', 'url':URL1, 'need_resolve':0,'type':'local'}) data_list = re.findall('<iframe src="(.*?)"', data, re.S) if data_list: URL1=data_list[0] urlTab.append({'name':gethostname(URL1), 'url':URL1, 'need_resolve':1}) return urlTab
def get_links(self, cItem): urlTab = [] URL = cItem['url'] if config.plugins.iptvplayer.ts_dsn.value: urlTab = self.cacheLinks.get(URL, []) if urlTab == []: sts, data = self.getPage(URL) if sts: Liste_els = re.findall('class="movies-servers.*?<ul(.*?)</ul>', data, re.S) if Liste_els: Liste_els_2 = re.findall( 'data-serv="(.*?)".*?post="(.*?)">(.*?)</li>', Liste_els[0], re.S) for (code1, code2, srv) in Liste_els_2: if not config.plugins.iptvplayer.ts_dsn.value: urlTab.append({ 'name': 'Server: ' + ph.clean_html(srv), 'url': 'hst#tshost#' + code2 + '|' + code1, 'need_resolve': 1 }) else: urlTab0 = self.getVideos(code2 + '|' + code1) for elm in urlTab0: local = '' printDBG('elm=' + str(elm)) url_ = elm[0] type_ = elm[1] name_ = gethostname(url_) if 'drive.google' in name_.lower(): name_ = 'Google.Com' if 'zimabdko.' in url_: local = 'local' name_ = 'zimabdko.com' if type_ == '1': urlTab.append({ 'name': '|Server: ' + ph.clean_html(srv) + '| ' + name_, 'url': url_, 'need_resolve': 1, 'type': local }) if config.plugins.iptvplayer.ts_dsn.value: self.cacheLinks[str(cItem['url'])] = urlTab return urlTab
def get_links(self,cItem): #local = [('/player.html?','!!DELETE!!','1'),] urlTab = [] URL = cItem['url'] sts, data = self.getPage(URL) if sts: server_data = re.findall('<div id="(._server)".*?src="(.*?)"', data, re.S) for x1,link in server_data: if 'exturl.php?id=' in link: link = base64.b64decode(link.split('exturl.php?id=')[1]).decode("utf-8") titre_ = gethostname(link) urlTab.append({'name':titre_, 'url':link, 'need_resolve':1}) #result = self.add_menu(cItem,'','<div id="(._server)".*?src="(.*?)"','','serv_url',ord=[1,0],local=local) return urlTab
def get_links(self, cItem): urlTab = [] URL = cItem['url'] sts, data = self.getPage(URL) if sts: Tab_els = re.findall('tabtitle">(.*?)<(.*?)</center>', data, re.S) for (titre0, data0) in Tab_els: Tab_els0 = re.findall('<iframe.*?src="(.*?)"', data0, re.S) if Tab_els0: URL = Tab_els0[0] if self.up.checkHostSupport(URL): urlTab.append({ 'name': gethostname(URL), 'url': URL, 'need_resolve': 1 }) else: urlTab.append({ 'name': gethostname(URL), 'url': 'hst#tshost#' + URL + '|XXSEE', 'need_resolve': 1 }) return urlTab
def get_links(self, cItem): urlTab = [] URL = cItem['url'] sts, data0 = self.cm.getPage(URL, self.defaultParams) if sts: Liste_els0 = re.findall('class="ChooseServer">(.*?)</table>', data0, re.S) if Liste_els0: Tab_urls = [] Liste_els1 = re.findall( '<input id="(.*?)".*?\(\'(.*?)\'.*?value="(.*?)"', Liste_els0[0], re.S) for (x1, url, titre) in Liste_els1: if url not in Tab_urls: videoUrl = url Tab_urls.append(url) nr = 1 local = '' #if 'سرفر' in titre: titre = titre.replace('سيرفر', 'Server') titre = titre.replace('الموقع', 'Local') if url.startswith('//'): url = 'https:' + url if '.mp4' in url: url = url.replace('../../../', self.MAIN_URL + '/') url = url.replace('http://www.n300.net:8080/', 'https://ssl.n300.me:8080/') if 'videoURL=' in url: url = url.split('videoURL=', 1)[-1] titre = '|' + titre + '| N300' nr = 0 local = 'local' meta = {'Referer': videoUrl} url = strwithmeta(url, meta) if '?videoURL=' in url: sts, data0 = self.cm.getPage( url, self.defaultParams) if sts: Liste_els1 = re.findall( 'file:.*?["\'](.*?)["\']', data0, re.S) if Liste_els1: url = Liste_els1[0] else: titre = '|' + titre + '| ' + gethostname(url) urlTab.append({ 'name': titre, 'url': url, 'need_resolve': nr, 'type': local }) return urlTab
def get_links(self, cItem): urlTab = [] URL = cItem['url'] sts, data0 = self.cm.getPage(URL, self.defaultParams) if sts: Liste_els0 = re.findall('class="ChooseServer">(.*?)</table>', data0, re.S) if Liste_els0: Tab_urls = [] Liste_els1 = re.findall( '<input id="(.*?)".*?\(\'(.*?)\'.*?value="(.*?)"', Liste_els0[0], re.S) for (x1, url, titre) in Liste_els1: if url not in Tab_urls: Tab_urls.append(url) nr = 1 local = '' #if 'سرفر' in titre: titre = titre.replace('سيرفر', 'Server') titre = titre.replace('الموقع', 'Local') if '.mp4' in url: printDBG('fffff1') url = url.replace('../../../', 'http://www.n300.me/') titre = '|' + titre + '| N300' nr = 0 local = 'local' if '?videoURL=' in url: printDBG('fffff2') sts, data0 = self.cm.getPage( url, self.defaultParams) if sts: printDBG('fffff3') Liste_els1 = re.findall( 'file:.*?["\'](.*?)["\']', data0, re.S) if Liste_els1: printDBG('fffff4') url = Liste_els1[0] else: titre = '|' + titre + '| ' + gethostname(url) urlTab.append({ 'name': titre, 'url': url, 'need_resolve': nr, 'type': local }) return urlTab
def get_links(self, cItem): urlTab = [] URL = cItem['url'] sts, data = self.getPage(URL) if sts: data_list = re.findall( 'class="TPlayerTb.*?trembed=(.*?)("|")', data, re.S) for (url, x1) in data_list: url = url.replace('&', '&') url = self.MAIN_URL + '/?trembed=' + url.replace('&', '&') sts, data2 = self.getPage(url, self.defaultParams) printDBG(data2) data_list2 = re.findall('src.*?["\'](.*?)["\']', data2, re.S) if data_list2: url = data_list2[0] sts, data3 = self.getPage(url, self.defaultParams) printDBG('data222' + data3) data_list3 = re.findall("var id.+?'(.+?)'", data3, re.S) if data_list3: url1 = self.MAIN_URL + '/?trhidee=1&trfex=' + data_list3[ 0][::-1] paramsUrl = dict(self.defaultParams) paramsUrl['header']['Referer'] = url sts, data3 = self.getPage(url1, paramsUrl) printDBG('dataeta' + str(data3.meta)) Url = data3.meta['url'] if self.up.checkHostSupport(Url) == 1: urlTab.append({ 'name': gethostname(Url), 'url': Url, 'need_resolve': 1 }) elif 'hdsto' in Url: URL = 'https://' + Url.split( '/')[2] + '/hls/' + Url.split( 'id=')[1] + '/' + Url.split( 'id=')[1] + '.playlist.m3u8' URL = strwithmeta(URL, {'Referer': Url}) urlTab.extend( getDirectM3U8Playlist( URL, checkExt=True, checkContent=True, sortWithMaxBitrate=999999999)) #urlTab = getDirectM3U8Playlist(URL, checkExt=True, checkContent=True, sortWithMaxBitrate=999999999) return urlTab
def get_links(self,cItem): urlTab = [] URL=cItem['url'] sts, data = self.getPage(URL,self.defaultParams) if sts: Tab_els = re.findall('src="(https://www.youtube.*?)"', data, re.S) if Tab_els: urlTab.append({'name':'TRAILER', 'url':Tab_els[0], 'need_resolve':1}) Tab_els = re.findall('play-box-iframe.*?data-src="(.*?)".*?></iframe>', data, re.S) for url in Tab_els: try: if '//moviflex.net' in url: sts, data = self.getPage(url,self.defaultParams) url_els = re.findall('<source src="(.*?)"', data, re.S) if url_els: urlTab.append({'name':'Moviflex', 'url':url_els[0], 'need_resolve':0,'type':'local'}) elif 'moviflex.ml' in url: post_data = {'r':'','d':'moviflex.ml'} url=url.replace('/v/','/api/source/') sts, data = self.getPage(url,self.defaultParams, post_data) data = json_loads(data) elmdata = data['data'] for elm0 in elmdata: urlTab.append({'name':'|'+elm0['label']+'| Moviflex' , 'url':elm0['file'], 'need_resolve':0,'type':'local'}) elif '.moviflex.pw' in url: paramsUrl = dict(self.defaultParams1) paramsUrl['header']['Referer'] = URL sts, data = self.getPage(url,paramsUrl) url_els = re.findall('JuicyCodes.Run\((.*?)\)', data, re.S) if url_els: b64data=url_els[0] b64data=b64data.replace('"+"','') .replace('"','') script_data=base64.b64decode(b64data) script_ = unpackJSPlayerParams(script_data, SAWLIVETV_decryptPlayerParams, 0) url_els = re.findall('file":"(.*?)".*?label":"(.*?)"', script_, re.S) for (url_,titre_) in url_els: urlTab.append({'name':'|'+titre_+'| Moviflex' , 'url':strwithmeta(url_, {'Referer':url}), 'need_resolve':0,'type':'local'}) else: if len(url)>4: url11 = url.split('https://') url='https://' + url11[-1] urlTab.append({'name':gethostname(url), 'url':url, 'need_resolve':1}) except: a='' return urlTab
def showhosts(self,cItem): urlTab = [] lng=cItem.get('lng','eng') elm=cItem['elm'] if lng=='eng': printDBG('start showhosts'+str(elm)) streams=elm.get('streams',[]) if streams==[]: streams=elm.get('tvdb_id','') URL=self.MAIN_URL+'/episode/'+streams sts, data = self.getPage(URL,self.defaultParams) if sts: data = json_loads(data) streams = data.get('streams',[]) Image = cItem['icon'] stream_lst=[] titre_ = cItem['title'].replace('>> ','') if ' - '+tscolor('\c0000????') in titre_: titre_=titre_.split(' - '+tscolor('\c0000????'))[0] for elm1 in streams: stream = elm1['stream'] name = elm1.get('source','!!') type_ = elm1.get('type',0) if (stream not in stream_lst): stream_lst.append(stream) if type_ in [9004]: Name = 'MOMOMESH [Multi]' Url = stream Type_ = 'Momomesh' Desc = 'Multi Hosts' Image = 'https://momomesh.tv/wp-content/uploads/2020/07/momomesh.logo_.hd_.png' elif type_ in [9000]: Name = 'GDDB [Multi]' Url = stream Type_ = 'GDDB' Desc = 'Multi Hosts' Image = 'https://cdn.domestika.org/c_fill,dpr_2.0,h_96,t_base_params.format_jpg,w_96/v1311703747/avatars/000/054/289/54289-original.jpg' elif type_ in [9001]: Name = 'OpenloadMovies [Multi]' Url = stream Type_ = 'openloadmovies' Desc = 'Multi Hosts' Image = 'https://openloadmovies.cam/wp-content/uploads/2020/02/openload-movie-desktop.png' elif type_ in [61,62,63]: Name = 'Gomostream [Multi]' Url = stream Type_ = 'Gomostream' Desc = 'Multi Hosts' Image = 'https://i.ibb.co/TH2kJm6/putstream.png' elif type_ in [98,99,64,93]: Name = 'VIP ['+name.replace('VIP','').strip()+']' Url = stream Type_ = 'VIP' Type_ = 'Non' Desc = 'Direct Links' Image = 'https://i.ibb.co/L6vctvL/VIP-1024x672.png' elif type_ in [39]: Name = 'Vidcloud [Multi]' Url = stream Type_ = 'Vidcloud' Desc = 'Multi Hosts' Image = 'https://vidcloud.icu/img/logo_vid.png?1' elif type_ in [27,28,29,30,31]: Name = 'Youtube' Url = stream Type_ = 'Resolve' Desc = 'Youtube' elif type_ in [77]: Name = '123Movies [Multi]' Url = stream Type_ = '123Movies' Desc = 'Multi Hosts' Image = 'https://i.ibb.co/kQGDxLc/x123.png' elif type_ in [20]: Name = 'Vidlink [Multi]' Url = stream Type_ = 'Vidlink' Desc = 'Multi Hosts\nM3u8 server\nWith subs' Image = 'https://i.ibb.co/bJwn22Q/vidlink.png' elif type_ in [71]: Name = 'Seehd.pl [Multi]' Url = stream Type_ = 'Seehd' Desc = 'Multi Hosts' Image = 'https://i.ibb.co/mJymy06/seehd.png' elif type_ in [73]: Name = 'Chillax [Multi]' Url = stream Type_ = 'Chillax' Desc = '---- > '+tscolor('\c00????00')+'Work only in eplayer3 '+tscolor('\c0000??00')+'WITH BUFFERING '+tscolor('\c00??????')+'<----' Desc = Desc + '\n'+tscolor('\c00??????')+'Good M3u8 Server\nMust wait for cloudflare bypass' Image = 'https://i.ibb.co/r2kKX5s/chillax.png' elif type_ in [11]: Name = 'DB-Media [Multi]' Url = stream Type_ = 'DB-Media' Desc = 'Multi Hosts, Need To Resolve captcha' Image = 'https://i.ibb.co/6tTVtx5/Logo-d-B-Media.png' elif type_ in [2,4,9,6]: printDBG('eeeeeeeeeeeeeee'+str(elm1)) Name = gethostname(stream).capitalize() Url = stream Type_ = 'Resolve' Desc = stream elif type_ in [48,43,]: #48:pl ,43:kisscartoon,49:tvz | Cloudflare Name = '|'+str(type_)+'| '+name Url = stream Type_ = 'Non'#'na' Desc = stream else: printDBG('eeeeeeeeeeeeeee'+str(elm1)) Name = '|'+str(type_)+'| '+name Url = stream if os.path.exists('/usr/lib/enigma2/python/Plugins/tsiplayer'): Type_ = 'na' Name = Name + ' <---------- NEW' Image = 'https://i.ibb.co/Q8ZRP0X/yaq9y3ab.png' else: Type_ = 'Non'#'na' Desc = stream if Type_ != 'Non': printDBG('elm'+str(elm1)) self.addVideo({'import':cItem['import'],'category' : 'host2','url': Url,'title':titre_,'desc':tscolor('\c00????00')+Name+tscolor('\c00??????')+'\n'+Desc,'icon':Image,'hst':'tshost','Type_':Type_} ) elif lng=='ar': hsts = ['host_egybest','host_faselhd','host_akoam','host_akwam','host_movs4u','host_cima4u','host_arablionz','host_arabseed'] threads = [] for hst in hsts: Extra = 'from tsiplayer.'+hst+' import ' str_ch = elm.get('title','') year = cItem.get('year','') threads.append(TsThread(self.get_results,Extra,str_ch,year)) for i in threads: i.start() i.join(timeout=4)
def Get_GDDB_Servers(self,Url): urlTab = [] sts, data = self.getPage(Url,self.defaultParams) if sts: printDBG('0001') serv_string = re.findall('Main Server.*?href="(.*?)"', data, re.S) if serv_string: printDBG('0002') link_ = serv_string[0] if link_.startswith('//'): link_= 'http:'+link_ sts1, data1 = self.getPage(link_,self.defaultParams) if sts1: printDBG('0003') serv_string = re.findall('class="linkserver".*?data-video="(.*?)"', data1, re.S) for elm in serv_string: printDBG('0004') if elm.startswith('//'): elm = 'http:'+elm urlTab.append({'name':gethostname(elm).capitalize(), 'url':elm, 'need_resolve':1}) if False: eval_string = re.findall('(eval.{1,10}p,a,c,k,e,d.*?)</script>', data, re.S) if eval_string: eval_string = eval_string[0].strip() printDBG('eval_string=' + eval_string) script0 = cPacker().unpack(eval_string) printDBG('script0=' + script0) result = re.findall('data=.*?(\{.*?}).*?null.*?[\'"](.*?)[\'"]',script0, re.S) if result: try: code_ = json_loads(result[0][0]) printDBG('Code='+str(code_)) data1 = result[0][1].strip().replace('\\','') printDBG('data1='+data1) lst = re.compile("[A-Za-z]{1,}").split(data1) printDBG('lst='+str(lst)) script = '' for elm in lst: script = script+chr(int(elm)) printDBG('script='+script) result = re.findall('pass.*?[\'"](.*?)[\'"]',script, re.S) if result: pass_ = result[0] printDBG('pass_='+pass_) ciphertext = base64.b64decode(code_['ct']) iv = unhexlify(code_['iv']) salt = unhexlify(code_['s']) b = pass_ decrypted = cryptoJS_AES_decrypt(ciphertext, b, salt) printDBG('decrypted='+decrypted) data2 = decrypted[1:-1] #data2 = decrypted.replace('"','').strip() printDBG('data2='+data2) data2 = cPacker().unpack(data2) printDBG('data2='+data2) url_list = re.findall('sources:(\[.*?\])',data2, re.S) #for data3 in url_list: data3= url_list[0] data3 = data3.replace('\\','').replace('"+countcheck+"','') printDBG('data3='+data3+'#') src_lst = json_loads(data3) printDBG('src_lst='+str(src_lst)+'#') for elm in src_lst: label = elm.get('label','') type_ = elm.get('type','') url_ = elm.get('file','') if url_.startswith('//'): url_='http:'+url_ urlTab.append({'name':(type_+' '+label).capitalize(), 'url':url_, 'need_resolve':0}) except: pass return urlTab
def get_links(self, cItem): urlTab = [] URL = cItem['url'] sts, data = self.getPage(URL) if sts: Tab_els = re.findall('<iframe.*?src="(.*?)"', data, re.S) i = 0 for url in Tab_els: if url.startswith('//'): url = 'http:' + url if ('youtube' not in url) and ('/templates/' not in url): i = i + 1 if 'darkom.video' in url: if not config.plugins.iptvplayer.ts_dsn.value: urlTab.append({ 'name': 'Server: ' + str(i), 'url': 'hst#tshost#' + url, 'need_resolve': 1 }) else: url = self.extract_link(url) if url != '': urlTab.append({ 'name': gethostname(url), 'url': url, 'need_resolve': 1 }) else: urlTab.append({ 'name': gethostname(url), 'url': url, 'need_resolve': 1 }) films_list2 = re.findall('class="insidelinks">(.*?)</ul>', data, re.S) if films_list2: films_list3 = re.findall('<a.*?href="(.*?)".*?">(.*?)</a>', films_list2[0], re.S) for (url1, titre1) in films_list3: titre1 = titre1.replace('شاهد على المشغل', 'Server: ') if 'darkom.video' in url1: if not config.plugins.iptvplayer.ts_dsn.value: urlTab.append({ 'name': ph.clean_html(titre1), 'url': 'hst#tshost#' + url1, 'need_resolve': 1 }) else: url1 = self.extract_link(url1) if url1 != '': urlTab.append({ 'name': gethostname(url1), 'url': url1, 'need_resolve': 1 }) else: urlTab.append({ 'name': ph.clean_html(titre1), 'url': url1, 'need_resolve': 1 }) return urlTab