def handleFolder(self, url=None, code=None): if not code: code = re.search(r'/folder/([^\?]+)', url).group(1) r = self.request.get( 'https://www.fshare.vn/api/v3/files/folder?linkcode=%s&sort=type,name' % code) r = json.loads(r) listitems = [] if 'items' in r and len(r['items']) > 0: listitems = [ "[%s] %s" % (i['type'] == 1 and helper.humanbytes(i["size"]) or 'Folder', i["name"]) for i in r['items'] ] else: helper.message("Fshare link folder die") return index = helper.create_select_dialog(listitems) if index == -1: return None if r['items'][index]['type'] == 1: return r['items'][index]['linkcode'] else: return self.handleFolder(code=r['items'][index]['linkcode'])
def get_link(self): if re.search(r'/folder/([^\?]+)', self.url): code = self.handleFolder(self.url) if not code: return None else: code = re.search(r'/file/([^\?]+)', self.url).group(1) token = self.get_token() r = self.request.post('https://www.fshare.vn/download/get', { '_csrf-app': token, 'linkcode': code, 'withFcode5': 0, 'fcode': '' }) item = json.loads(r) # self.logout() if 'errors' in item: helper.message("Fshare error: %s" % item['errors']['linkcode'][0]) raise Exception('Fshare', 'error') return # should block ui to wait until able retrieve a link return item[u'url']
def get_link(self): if re.search(r'/folder/([^\?]+)', self.url): code = self.handleFolder(self.url) if not code: return None else: self.url = "https://www.fshare.vn/file/%s" % code token = self.get_token(self.url) r = self.request.post('https://api2.fshare.vn/api/session/download', json={ 'token': token, 'url': self.url }) item = json.loads(r) if 'errors' in item: helper.message("Fshare error: %s" % item['errors']['linkcode'][0]) raise Exception('Fshare', 'error') return # should block ui to wait until able retrieve a link if int( self.request.head( item.get('location')).headers['Content-Length']): return item.get('location').encode('utf-8') return
def get_link(self, response): movie = { 'group': {}, 'episode': [], 'links': [], } videos = json.loads(response) subtitle = None # https://fimfast.com/subtitle if 'subtitle' in videos and len( videos['subtitle']) > 0 and 'vi' in videos['subtitle']: subtitle = 'https://fimfast.com/subtitle/%s.vtt' % videos[ 'subtitle']['vi'] videos = videos['sources'] if u'hls' in videos and videos['hls']: helper.message('Fimfast HLS', 'Movie Found') movie['links'].append({ 'link': videos['hls'], # 'link': self.get_hls(videos['hls']), 'title': 'Link hls', 'type': 'hls', 'resolve': False, 'subtitle': subtitle }) return movie elif u'hff' in videos and videos['hff'] and self.encodeString( videos['hff'], 69).find('No link') == -1: url = self.encodeString(videos['hff'], 69) movie['links'].append({ 'link': url, 'title': 'Link hff', 'type': 'hls', 'resolve': False, 'subtitle': subtitle }) return movie else: for videotype in videos: if videos[videotype] and videotype != u'hff': if type(videos[videotype]) is not unicode: for key, link in enumerate(videos[videotype]): movie['links'].append({ 'link': link['src'], 'title': 'Link %s' % link['quality'].encode('utf-8'), 'type': link['type'].encode('utf-8'), 'resolve': True, 'subtitle': subtitle }) return movie
def get_link_fshare(self): if not helper.getSetting('fshare.username'): helper.message('Required username/password to get fshare.vn link, open addon settings', 'Login Required') if helper.getSetting('fshare.enable'): return fshare.FShare( self.url, helper.getSetting('fshare.username'), helper.getSetting('fshare.password') ).get_link(), '1080' else: return fshare.FShare(self.url).get_link(), '1080'
def get_link_fshare(self): if not helper.getSetting('fshare.username'): helper.message( 'Required username/password to get fshare.vn link, open addon settings', 'Login Required') xbmcaddon.Addon().openSettings() return None, None if helper.getSetting('fshare.enable'): return fshare.FShareVN( self.url, helper.getSetting('fshare.username'), helper.getSetting('fshare.password')).get_link(), 'Fshare' else: return fshare.FShareVN(self.url).get_link(), 'Fshare'
def get_link(self): print("Find link source of %s" % self.url) if re.search('ok.ru', self.url): return ok.get_link(self.url) elif re.search('openload.co', self.url): return self.get_link_openload() elif re.search('fshare.vn', self.url): return self.get_link_fshare() elif re.search('dailymotion.com', self.url): return self.get_link_dailymotion() elif re.search('fptplay.net', self.url): helper.message('FPTPlay hls link parsing', 'Get Link') return fptplay.get_link(self.url) elif re.search('sstreamgg.xyz', self.url) \ or re.search('ggstream.me', self.url) \ or re.search('hhstream.xyz', self.url) \ or re.search('116.203.139.97', self.url) \ or re.search('tstream.xyz', self.url): return self.get_sstreamgg() elif re.search('hls.phimmoi.net', self.url): helper.message('Phimmoi hls link parsing', 'Get Link') return phimmoi.get_link(self.url, self.media['origin_url']) elif re.search('hydrax.html', self.url): helper.message('hydrax link parsing', 'Get Link') return hydrax.get_vip_hydrax(self.url, self.media) elif re.search('hydrax.net/watch', self.url): helper.message('hydrax link parsing', 'Get Link') return hydrax.get_guest_hydrax(self.url, self.media) elif re.search('youtube.com', self.url): return self.get_youtube() elif re.search('imacdn.com', self.url): return imacdn.get_link(self.url) elif re.search('vtv16.com', self.url): return vtv16.get_link(self.url) elif re.search('hls.hydrax.net', self.url): return hls_hydrax.get_link(self.url, self.media), 'hls5' elif re.search('dgo.dongphim.net', self.url): return self.url + "|Origin=http://dongphim.net", 'hls1' elif self.url.endswith('m3u8'): return self.get_m3u8() return self.url, 'unknow'
def get(self, response, url, skipEps=False): movie = { 'group': {}, 'episode': [], 'links': [], } soup = BeautifulSoup(response, "html.parser") self.originURL = url try: error = py2_encode( soup.select_one( 'div.error-not-available div.alert-subheading').find( text=True, recursive=False)) if error: helper.message(error, 'Not Found') return movie except: pass # get episode if possible servers = soup.select('div.list-server > div.server.clearfix') if skipEps is False and len(servers) > 0: helper.log( "***********************Get Movie Episode*****************************" ) found = False items = self.get_server_list(servers) if items is not None and len(items) > 0: movie['group'] = items found = True else: found = False if found is False: servers = soup.select('ul.server-list > li.backup-server') movie['group'] = self.get_server_list(servers) else: movie['group']['phimmoi'] = [{ 'link': self.originURL, 'title': 'Unknown link' }] return movie
def get_link(self): if not self.username or not self.password: token = self.get_token() else: r = self.login() token = self.extract_token(r) code = re.search('/file/([^\?]+)', self.url).group(1) r = self.request.post('https://www.fshare.vn/download/get', { '_csrf-app': token, 'linkcode': code, 'withFcode5': 0, 'fcode': '' }) item = json.loads(r) self.logout() if 'errors' in item: helper.message("Fshare error: %s" % item['errors']['linkcode'][0]) raise Exception('Fshare', 'error') return # should block ui to wait until able retrieve a link return item[u'url']
def get_decrypt_key(self, response): try: a = WisePacker.decode(response) return re.search("setDecryptKey\('(.*)'\);watching", a).group(1) except: helper.message(response, "Phimmoi", 15000)
def get_link(self): print("LinkParser:: Find link source of %s" % self.url) if re.search('ok.ru', self.url): # return self.get_link_resolveurl() return ok.get_link(self.url) if re.search('drive.google.com', self.url): return self.get_link_resolveurl() if re.search('feurl.com', self.url): return feurl.get_link(self.url, self.media) if 'play.playoffsite.xyz' in self.url: return playoffsite.get_link(self.url, self.media) if re.search('streamtape.com', self.url): return streamtape.get_link(self.url, self.media) elif 'vhstream.xyz' in self.url \ or 'vkooltv.com' in self.url \ or '3s.live' in self.url \ or 'vn.phimmoicdn.net' in self.url \ or 'loadblancer.xemphimmedia.com' in self.url \ : return cors.get_link(self.url, self.media) elif 'cdnplay.xyz' in self.url \ : return hls_parser.get_link(self.url, self.media, parser=True) elif 'phimnhe.net/player/yotube.php' in self.url \ or 'aio.vtvhub.com' in self.url \ or 'xomphimhay.com/proxy/loadstream.php' in self.url \ or 'xem-phim.tv/proxy' in self.url \ or 'xemphimso.org/proxy' in self.url \ or 'phimgi.tv/player/yotube.php' in self.url: return iframeembed.get_link(self.url, self.media) elif 'https://proxy.playphim.info' in self.url: return proxy_playphim.get_link(self.url, self.media) elif 'fimfast.com' in self.url \ or 'cdnplay.xyz' in self.url \ or 'vodcdn.xyz' in self.url \ or 'vdicdn.com' in self.url \ or 'phimngay.com' in self.url \ or 'beverly-downing' in self.url \ or 'play.xomphimhay.com/load-stream' in self.url \ or 'play.xemphimso.info/load-stream' in self.url \ or 'proxymedia.site' in self.url \ or 'goostreams.online' in self.url \ or 'goolink.site' in self.url \ or 'vtv16.site' in self.url \ or 'fbcdn.net' in self.url \ or 'googleapicdn.com' in self.url: return cors.get_link(self.url, self.media, including_agent=False) elif 'googlevideo.com' in self.url: return googlevideo.get_link(self.url, self.media) elif 'fantvh.net' in self.url: return fantvh.get_link(self.url, self.media) elif re.search('manga123.net', self.url): return manga123.get_link(self.url, self.media) elif re.search('mixdrop.co', self.url): return mixdrop.get_link(self.url, self.media), 'mixdrop.co' elif 'wowza' in self.url \ : # or 'apihls.vproxy.online' in self.url: return streamlink.get_link(self.url, self.media) elif 'okru.biphim.club' in self.url: return okru_biphim_club.get_link(self.url, self.media) elif '90p.tv' in self.url \ or 'binhluanvidamme.online' in self.url: return phut90.get_link(self.url, self.media), '90p.tv' # Animehay elif 'plb.animehay.tv' in self.url: return self.input_stream() elif 'lb.animehay.tv' in self.url: return animehay.get_link(self.url), 'animehay.tv' elif 'animehay.tv/cca.php' in self.url: return animehay_cca.get_link(self.url) elif 'animehay.kyunkyun.net/stream' in self.url: return animehay_kyun.get_link(self.url) elif 'https://moekawaii.stream/embed/animehay.php' in self.url: return animehay_moekawaii.get_link(self.url) elif 'vudeo.net' in self.url: return vudeo.get_link(self.url) elif 'aparat.cam' in self.url: return aparat.get_link(self.url) elif 'motphim.net' in self.url: return motphim.get_link(self.url) elif 'upstream.to' in self.url: return upstream.get_link(self.url) elif 'voe.sx' in self.url: return voe.get_link(self.url) elif re.search('toolsp2p', self.url) \ or re.search('player.toolpg.com', self.url) \ or re.search('hls.hphim.org', self.url): return toolpg.get_link(self.url, self.media) elif re.search('hphim.org', self.url) \ or re.search('facebookstream.cloud', self.url): return vanlongstreaming.get_link(self.url, self.media) elif re.search('openload.co', self.url): return self.get_link_openload() elif re.search('movie3s.net', self.url): return movie3s.get_link(self.url, self.media) elif 'apihls.vproxy.online' in self.url: return self.url, 'inputstream' elif 'phim7z.vproxy.online' in self.url: return vproxy.get_link(self.url, self.media) elif re.search('vtvhub.com', self.url) \ or 'phim7z.vproxy.online' in self.url: return vtvhub.get_link(self.url, self.media) elif re.search('smamuhh1metro.com', self.url): return smamuhh1metro.get_link(self.url, self.media) elif re.search('stream.kiwi', self.url): return header_location.get_link(self.url, self.media) elif re.search('fshare.vn', self.url): return self.get_link_fshare() elif re.search('dailymotion.com', self.url): return self.get_link_resolveurl() elif re.search('streamango.com', self.url): return self.get_link_resolveurl() elif re.search('rapidvid.to', self.url): return rapidvid.get_link(self.url) elif re.search('verystream.com', self.url): return verystream.get_link(self.url) elif re.search('onlystream.tv', self.url): return onlystream.get_link(self.url) elif re.search('rapidvideo.com', self.url): return self.get_link_resolveurl() elif re.search('fembed.com', self.url): return fembed.get_link(self.url) elif re.search('24hd.club', self.url): return hdclub.get_link(self.url) elif re.search('vuviphim.xyz', self.url) \ or re.search('vuviphimmoi.com', self.url) \ or re.search('vuviphimzz.com', self.url) \ or re.search('thoctv.com', self.url): return vuviphim.get_link(self.url) elif re.search('fptplay.net', self.url): helper.message('FPTPlay hls link parsing', 'Get Link') return fptplay.get_link(self.url) elif re.search('sstreamgg.xyz', self.url) \ or re.search('ggstream.me', self.url) \ or re.search('hhstream.xyz', self.url) \ or re.search('116.203.139.97', self.url) \ or re.search('tstream.xyz', self.url): return self.get_referer_link() elif 'pzc.phimmoi' in self.url: return pzc_phimmoi.get_link(self.url, self.media) elif 'gpt.phimmoi' in self.url: helper.message('Phimmoi gpt.phimmoi.net link parsing', 'Get Link') return pzc_phimmoi.get_link(self.url, self.media) # elif 'gpt2.phimmoi.net' in self.url: elif re.search(r'gpt\d.phimmoi', self.url): return gpt2_phimmoi.get_link(self.url, self.media) elif re.search('hls.phimmoi', self.url): helper.message('Phimmoi hls link parsing', 'Get Link') return phimmoi.get_link(self.url, self.media['originUrl']) elif re.search('hydrax.html', self.url): helper.message('hydrax link parsing', 'Get Link') return hydrax.get_vip_hydrax(self.url, self.media) elif re.search('hydrax.net/watch', self.url): helper.message('hydrax link parsing', 'Get Link') return hydrax.get_guest_hydrax(self.url, self.media) # elif re.search('youtube.com', self.url): # return self.get_youtube() elif re.search('imacdn.com', self.url): helper.message('imacdn HFF', 'Movie Found') return imacdn.get_link(self.url, self.media), 'imacdn' elif re.search('vtv16.com', self.url): return vtv16.get_link(self.url) elif re.search('hls.hydrax.net', self.url): return hls_hydrax.get_link(self.url, self.media), 'hls5' elif re.search('dgo.dongphim.net', self.url) \ or re.search('dgo.dongphim.tv', self.url) \ or re.search('dgo.dongphim.biz', self.url): return cors.get_link(self.url, self.media) elif '.xyz' in self.url: return cors.get_link(self.url, self.media, including_agent=False) elif self.url.endswith('m3u8'): return self.get_m3u8() return self.url, 'unknow'
def get_link(self): print("LinkParser:: Find link source of %s" % self.url) if re.search('ok.ru', self.url): # return self.get_link_resolveurl() return ok.get_link(self.url) elif 'vhstream.xyz' in self.url \ or 'vtvhub.com' in self.url \ or 'vkooltv.com' in self.url \ or 'vn.phimmoicdn.net' in self.url \ or 'hls.phimmoi' in self.url \ : return cors.get_link(self.url, self.media) elif 'fimfast.com' in self.url \ or 'phimngay.com' in self.url \ or 'animehay.tv' in self.url \ or 'beverly-downing' in self.url: return cors.get_link(self.url, self.media, including_agent=False) elif 'googlevideo.com' in self.url: return googlevideo.get_link(self.url, self.media) elif re.search('manga123.net', self.url): return manga123.get_link(self.url, self.media) elif re.search('mixdrop.co', self.url): return mixdrop.get_link(self.url, self.media), 'mixdrop.co' elif 'wowza' in self.url: return streamlink.get_link(self.url, self.media) elif 'plb.animehay.tv' in self.url: return self.input_stream() elif '90m.tv' in self.url: return phut90.get_link(self.url, self.media), '90m.tv' elif 'lb.animehay.tv' in self.url: return animehay.get_link(self.url), 'animehay.tv' elif re.search('toolsp2p', self.url) or re.search( 'hls.hphim.org', self.url): return toolpg.get_link(self.url, self.media) elif re.search('hphim.org', self.url): return hphim.get_link(self.url, self.media), 'hphim.org' elif re.search('openload.co', self.url): return self.get_link_openload() elif re.search('movie3s.net', self.url): return movie3s.get_link(self.url, self.media) elif re.search('vtvhub.com', self.url): return vtvhub.get_link(self.url, self.media) elif re.search('smamuhh1metro.com', self.url): return smamuhh1metro.get_link(self.url, self.media) elif re.search('fshare.vn', self.url): return self.get_link_fshare() elif re.search('dailymotion.com', self.url): return self.get_link_resolveurl() elif re.search('streamango.com', self.url): return self.get_link_resolveurl() elif re.search('rapidvid.to', self.url): return rapidvid.get_link(self.url) elif re.search('verystream.com', self.url): return verystream.get_link(self.url) elif re.search('onlystream.tv', self.url): return onlystream.get_link(self.url) elif re.search('rapidvideo.com', self.url): return self.get_link_resolveurl() elif re.search('fembed.com', self.url): return fembed.get_link(self.url) elif re.search('24hd.club', self.url): return hdclub.get_link(self.url) elif re.search('vuviphim.xyz', self.url): return vuviphim.get_link(self.url) elif re.search('fptplay.net', self.url): helper.message('FPTPlay hls link parsing', 'Get Link') return fptplay.get_link(self.url) elif re.search('sstreamgg.xyz', self.url) \ or re.search('ggstream.me', self.url) \ or re.search('hhstream.xyz', self.url) \ or re.search('116.203.139.97', self.url) \ or re.search('tstream.xyz', self.url): return self.get_referer_link() elif re.search('hls.phimmoi.[net|link]', self.url): helper.message('Phimmoi hls link parsing', 'Get Link') return phimmoi.get_link(self.url, self.media['originUrl']) elif re.search('hydrax.html', self.url): helper.message('hydrax link parsing', 'Get Link') return hydrax.get_vip_hydrax(self.url, self.media) elif re.search('hydrax.net/watch', self.url): helper.message('hydrax link parsing', 'Get Link') return hydrax.get_guest_hydrax(self.url, self.media) elif re.search('youtube.com', self.url): return self.get_youtube() elif re.search('imacdn.com', self.url): helper.message('imacdn HFF', 'Movie Found') return imacdn.get_link(self.url, self.media), 'imacdn' elif re.search('vtv16.com', self.url): return vtv16.get_link(self.url) elif re.search('hls.hydrax.net', self.url): return hls_hydrax.get_link(self.url, self.media), 'hls5' elif re.search('dgo.dongphim.net', self.url): return dongphim.get_link(self.url, self.media) elif '.xyz' in self.url: return cors.get_link(self.url, self.media, including_agent=False) elif self.url.endswith('m3u8'): return self.get_m3u8() return self.url, 'unknow'
def get_link(self): print("Find link source of %s" % self.url) if re.search('ok.ru', self.url): return ok.get_link(self.url) elif '90m.tv' in self.url: return phut90.get_link(self.url), '720' elif 'lb.animehay.tv' in self.url: return animehay.get_link(self.url), '720' elif re.search('openload.co', self.url): return self.get_link_openload() elif re.search('toolsp2p.to', self.url): return toolpg.get_link(self.url, self.media) elif re.search('movie3s.net', self.url): return movie3s.get_link(self.url, self.media) elif re.search('vtvhub.com', self.url): return vtvhub.get_link(self.url, self.media) elif re.search('smamuhh1metro.com', self.url): return smamuhh1metro.get_link(self.url, self.media) elif re.search('fshare.vn', self.url): return self.get_link_fshare() elif re.search('dailymotion.com', self.url): return self.get_link_resolveurl() elif re.search('streamango.com', self.url): return self.get_link_resolveurl() elif re.search('rapidvid.to', self.url): return rapidvid.get_link(self.url) elif re.search('verystream.com', self.url): return verystream.get_link(self.url) elif re.search('onlystream.tv', self.url): return onlystream.get_link(self.url) elif re.search('rapidvideo.com', self.url): return self.get_link_resolveurl() elif re.search('fembed.com', self.url): return fembed.get_link(self.url) elif re.search('24hd.club', self.url): return hdclub.get_link(self.url) elif re.search('vuviphim.xyz', self.url): return vuviphim.get_link(self.url) elif re.search('fptplay.net', self.url): helper.message('FPTPlay hls link parsing', 'Get Link') return fptplay.get_link(self.url) elif re.search('sstreamgg.xyz', self.url) \ or re.search('ggstream.me', self.url) \ or re.search('hhstream.xyz', self.url) \ or re.search('116.203.139.97', self.url) \ or re.search('tstream.xyz', self.url): return self.get_sstreamgg() elif re.search('hls.phimmoi.[net|link]', self.url): helper.message('Phimmoi hls link parsing', 'Get Link') return phimmoi.get_link(self.url, self.media['originUrl']) elif re.search('hydrax.html', self.url): helper.message('hydrax link parsing', 'Get Link') return hydrax.get_vip_hydrax(self.url, self.media) elif re.search('hydrax.net/watch', self.url): helper.message('hydrax link parsing', 'Get Link') return hydrax.get_guest_hydrax(self.url, self.media) elif re.search('youtube.com', self.url): return self.get_youtube() elif re.search('imacdn.com', self.url): helper.message('imacdn HFF', 'Movie Found') return imacdn.get_link(self.url), 'hls5' elif re.search('vtv16.com', self.url): return vtv16.get_link(self.url) elif re.search('hls.hydrax.net', self.url): return hls_hydrax.get_link(self.url, self.media), 'hls5' elif re.search('dgo.dongphim.net', self.url): return dongphim.get_link(self.url, self.media) elif self.url.endswith('m3u8'): return self.get_m3u8() return self.url, 'unknow'