def sources(self, url, hostDict, hostprDict): try: hostDict = hostDict + hostprDict sources = [] if url == None: return sources try: vurl = urlparse.urljoin(self.base_link, url) r = client.request(vurl) links = re.compile('<iframe.+?src="(.+?)"', re.DOTALL).findall(r) for u in links: if not 'http' in u: continue quality = source_tools.get_quality(u) info = source_tools.get_info(u) valid, host = source_utils.is_host_valid(u, hostDict) if valid: sources.append({ 'source': host, 'quality': quality, 'language': 'en', 'url': u, 'info': info, 'direct': False, 'debridonly': False }) except: pass try: vurl2 = urlparse.urljoin(self.base_link, url + '-mirror-2/') r2 = client.request(vurl2) links2 = re.compile('<iframe.+?src="(.+?)"', re.DOTALL).findall(r2) for u2 in links2: if not 'http' in u2: continue quality2 = source_tools.get_quality(u2) info2 = source_tools.get_info(u2) valid, host2 = source_utils.is_host_valid(u2, hostDict) if valid: sources.append({ 'source': host2, 'quality': quality2, 'language': 'en', 'url': u2, 'info': info2, 'direct': False, 'debridonly': False }) except: pass return sources except: return sources
def sources(self, url, hostDict, hostprDict): try: sources = [] if url == None: return sources r = client.request(url, headers=client.randommobileagent('android')) match = re.compile('<input type="hidden" value="(.+?)"', re.DOTALL).findall(r) for url in match: url = "https:" + url if not url.startswith('http') else url if 'vidstreaming.io' in url: r = client.request( url, headers=client.randommobileagent('android')) match = re.compile('data-video="(.+?)"', re.DOTALL).findall(r) for link in match: link = "https:" + link if not link.startswith( 'http') else link valid, host = source_tools.checkHost(link, hostDict) if valid: info = source_tools.get_info(link) quality = source_tools.get_quality(link) sources.append({ 'source': host, 'quality': quality, 'language': 'en', 'url': link, 'info': info, 'direct': False, 'debridonly': False }) else: valid, host = source_tools.checkHost(url, hostDict) if valid: info = source_tools.get_info(url) quality = source_tools.get_quality(url) sources.append({ 'source': host, 'quality': quality, 'language': 'en', 'url': url, 'info': info, 'direct': False, 'debridonly': False }) return sources except: return sources
def sources(self, url, hostDict, hostprDict): try: hostDict = hostDict + hostprDict sources = [] if url == None: return sources r = client.request(url) match = re.compile('<iframe.+?src="(.+?)"', re.DOTALL).findall(r) for url in match: quality = source_tools.get_quality(url) info = source_tools.get_info(url) valid, host = source_utils.is_host_valid(url, hostDict) if valid or 'gogoanime' in url: sources.append({ 'source': host, 'quality': quality, 'language': 'en', 'url': url, 'info': info, 'direct': False, 'debridonly': False }) return sources except: return sources
def sources(self, url, hostDict, hostprDict): try: sources = [] if url == None: return sources r = client.request(url) links = re.compile('<iframe.+?src="(.+?)"', re.DOTALL).findall(r) for u in links: r = client.request(u) match = getSum.findSum(r) for link in match: valid, host = source_tools.checkHost(link, hostDict) if valid: info = source_tools.get_info(link) quality = source_tools.get_quality(link) sources.append({ 'source': host, 'quality': quality, 'language': 'en', 'url': link, 'info': info, 'direct': False, 'debridonly': False }) return sources except: return sources
def sources(self, url, hostDict, hostprDict): try: sources = [] if url == None: return sources r = getSum.get(url) match = getSum.findSum(r) for url in match: if 'steepto.com' in url: continue url = url.encode('utf-8') info = source_tools.get_info(url) quality = source_tools.get_quality(url) sources.append({ 'source': 'Direct', 'quality': quality, 'language': 'en', 'url': url, 'info': info, 'direct': True, 'debridonly': False }) return sources except: return sources
def sources(self, url, hostDict, hostprDict): try: sources = [] if url == None: return sources hostDict = hostprDict + hostDict r = getSum.get(url, Type='cfscrape') match = re.compile( '(?:file|source)(?:\:)\s*(?:\"|\')(.+?)(?:\"|\')').findall(r) for url in match: url = url.encode('utf-8') info = source_tools.get_info(url) quality = source_tools.get_quality(url) sources.append({ 'source': 'Direct', 'quality': quality, 'language': 'en', 'url': url, 'info': info, 'direct': True, 'debridonly': False }) return sources except: return sources
def sources(self, url, hostDict, hostprDict): try: sources = [] if url == None: return sources r = client.request(url) match = re.compile('<iframe src="(.+?)"').findall(r) for url in match: r = client.request(url) if 'playpanda' in url: match = re.compile("url: '(.+?)',").findall(r) else: match = re.compile('file: "(.+?)",').findall(r) for url in match: url = url.replace('\\', '') if url in str(sources): continue info = source_tools.get_info(url) quality = source_tools.get_quality(url) sources.append({ 'source': 'Direct', 'quality': quality, 'language': 'en', 'url': url, 'info': info, 'direct': False, 'debridonly': False }) return sources except: return sources
def sources(self, url, hostDict, hostprDict): try: sources = [] if url == None: return sources r = client.request(url, headers=client.randommobileagent('android')) match = re.compile('<option data-em="(.+?)"', re.DOTALL).findall(r) for u in match: r = base64.b64decode(u) r = client.parseDOM(r, 'iframe', ret='src')[0] r = client.request(r, headers=client.randommobileagent('android')) try: u = client.parseDOM(r, 'iframe', ret='src')[0] except: u = client.parseDOM(r, 'source', ret='src')[0] valid, host = source_tools.checkHost(u, hostDict) if valid: info = source_tools.get_info(u) quality = source_tools.get_quality(u) sources.append({ 'source': host, 'quality': quality, 'language': 'en', 'url': u, 'info': info, 'direct': False, 'debridonly': False }) return sources except: return sources
def sources(self, url, hostDict, hostprDict): try: sources = [] if url is None: return sources r = client.request(url, headers=self.headers) match = re.compile('<iframe src="(.+?)"').findall(r) for url in match: r = client.request(url, headers=self.headers) if 'playpanda' in url: match = re.compile("url: '(.+?)',").findall(r) else: match = re.compile('file: "(.+?)",').findall(r) for url in match: url = url.replace('\\', '') if url in str(sources): continue info = source_tools.get_info(url) quality = source_tools.get_quality(url) sources.append({ 'source': 'Direct', 'quality': quality, 'language': 'en', 'url': url, 'info': info, 'direct': False, 'debridonly': False }) return sources except Exception: failure = traceback.format_exc() log_utils.log('---TOONOVA Testing - Exception: \n' + str(failure)) return sources
def getMore(link, hostDict): sources = [] if link == None: return sources elif "vidnode.net" in link: for source in more_vidnode(link, hostDict): sources.append(source) elif "vidlink.org" in link: for source in more_vidlink(link, hostDict): sources.append(source) elif "gomostream.com" in link: for source in more_gomo(link, hostDict): sources.append(source) elif "123moviesplayer.com" in link: for source in more_123moviesplayer(link, hostDict): sources.append(source) else: valid, host = source_tools.checkHost(link, hostDict) if valid: quality = source_tools.get_quality(link) info = source_tools.get_info(link) sources.append({ 'source': host, 'quality': quality, 'language': 'en', 'url': link, 'info': info, 'direct': False, 'debridonly': False }) return sources
def more_vidnode(link, hostDict): sources = [] # By Shellc0de try: headers = { 'Host': 'vidnode.net', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36', 'Upgrade-Insecure-Requests': '1', 'Accept-Language': 'en-US,en;q=0.9' } response = client.request(link, headers=headers, timeout=5) urls = re.findall( '''\{file:\s*['"]([^'"]+).*?label:\s*['"](\d+\s*P)['"]''', response, re.DOTALL | re.I) if urls: for url, qual in urls: host = url.split('//')[1].replace('www.', '') host = host.split('/')[0].lower() # 'CDN' valid, host = source_tools.checkHost(host, hostDict) if valid: quality = source_tools.get_quality(qual, url) info = source_tools.get_info(qual, url) sources.append({ 'source': host, 'quality': quality, 'language': 'en', 'url': url, 'info': info, 'direct': True, 'debridonly': False }) return sources except: return sources
def sources(self, url, hostDict, hostprDict): try: hostDict = hostDict + hostprDict sources = [] if url == None: return sources url = urlparse.urljoin(self.base_link, url) r = client.request(url) r = client.parseDOM(r, 'a', ret='data-video') for u in r: if not u.startswith('http'): u = "https:" + u info = source_tools.get_info(u) quality = source_tools.get_quality(u) valid, host = source_utils.is_host_valid(u, hostDict) if valid: sources.append({ 'source': host, 'quality': quality, 'language': 'en', 'url': u, 'info': info, 'direct': False, 'debridonly': False }) return sources except: return sources
def more_vidlink(link, hostDict): sources = [] # By Shellc0de try: ua = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0' } postID = link.split('/embed/')[1] post_link = 'https://vidlink.org/embed/update_views' payload = {'postID': postID} headers = ua headers['X-Requested-With'] = 'XMLHttpRequest' headers['Referer'] = link ihtml = client.request(post_link, post=payload, headers=headers) linkcode = jsunpack.unpack(ihtml).replace('\\', '') try: extra_link = re.findall(r'var oploadID="(.+?)"', linkcode)[0] oload = 'https://openload.co/embed/' + extra_link sources.append({ 'source': 'openload.co', 'quality': '1080p', 'language': 'en', 'url': oload, 'direct': False, 'debridonly': False }) except Exception: pass links = re.findall(r'var file1="(.+?)"', linkcode)[0] stream_link = links.split('/pl/')[0] headers = { 'Referer': 'https://vidlink.org/', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0' } response = client.request(links, headers=headers) urls = re.findall(r'[A-Z]{10}=\d+x(\d+)\W[A-Z]+=\"\w+\"\s+\/(.+?)\.', response) if urls: for qual, url in urls: url = stream_link + '/' + url + '.m3u8' quality = source_tools.get_quality(qual, url) info = source_tools.get_info(qual, url) sources.append({ 'source': 'GVIDEO', 'quality': quality, 'language': 'en', 'url': url, 'info': info, 'direct': True, 'debridonly': False }) return sources except: return sources
def more_123moviesplayer(link, hostDict): sources = [] # Gomo Clone try: gomo_link = 'https://123moviesplayer.com/decoding_v3.php' User_Agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36' result = client.request(link) tc = re.compile('tc = \'(.+?)\';').findall(result)[0] if (tc): token = re.compile('"_token": "(.+?)",').findall(result)[0] post = {'tokenCode': tc, '_token': token} def tsd(tokenCode): _13x48X = tokenCode _71Wxx199 = _13x48X[4:18][::-1] return _71Wxx199 + "18" + "432782" headers = { 'Host': '123moviesplayer.com', 'Referer': link, 'User-Agent': User_Agent, 'x-token': tsd(tc) } result = client.request(gomo_link, XHR=True, post=post, headers=headers) urls = json.loads(result) for url in urls: if '123moviesplayer.com' in url: sources.append({ 'source': 'CDN', 'quality': 'SD', 'language': 'en', 'url': url, 'direct': True, 'debridonly': False }) else: valid, host = source_tools.checkHost(url, hostDict) if valid: quality = source_tools.get_quality(url) info = source_tools.get_info(url) sources.append({ 'source': host, 'quality': quality, 'language': 'en', 'url': url, 'info': info, 'direct': False, 'debridonly': False }) return sources except: return sources
def sources(self, url, hostDict, hostprDict): try: sources = [] if url == None: return sources page = client.request(url, headers=client.randommobileagent('android'), timeout='3') links = client.parseDOM(page, 'table', attrs={'class': 'movie_version'}) for link in links: try: qual = re.compile('<span class="quality_(.+?)"></span>', re.DOTALL).findall(link)[0] hoster = re.compile( '<span class="version_host">(.+?)</span>', re.DOTALL).findall(link)[0] href = re.compile('<a href="(.+?)" class=', re.DOTALL).findall(link)[0] vlink = self.base_link + href valid, host = source_tools.checkHost(hoster, hostDict) if valid and vlink not in str(sources): quality = source_tools.get_quality(qual) info = source_tools.get_info(qual) sources.append({ 'source': host, 'quality': quality, 'language': 'en', 'url': vlink, 'info': info, 'direct': False, 'debridonly': False }) except: pass return sources except: return sources
def sources(self, url, hostDict, hostprDict): try: sources = [] if url == None: return sources r = getSum.get(url) match = getSum.findSum(r) for url in match: info = source_tools.get_info(url) quality = source_tools.get_quality(url) valid, host = source_utils.is_host_valid(url, hostDict) if valid: sources.append({ 'source': host, 'quality': quality, 'language': 'en', 'url': url, 'info': info, 'direct': False, 'debridonly': False }) return sources except: return sources
def sources(self, url, hostDict, hostprDict): try: hostDict = hostDict + hostprDict sources = [] if url == None: return sources r = self.scraper.get(url).content r = client.parseDOM(r, 'iframe', ret='src') for u in r: info = source_tools.get_info(u) quality = source_tools.get_quality(u) valid, host = source_tools.checkHost(u, hostDict) sources.append({ 'source': host, 'quality': quality, 'language': 'en', 'url': u, 'info': info, 'direct': False, 'debridonly': False }) return sources except: return sources