def resolve(url): test = '|User-Agent=Mozilla/5.0 (compatible; CloudFlare-AlwaysOnline/1.0; +https://www.cloudflare.com/always-online) AppleWebKit/534.34' try: result = cloudflare.request(url) uri = re.findall("decodeURIComponent\(atob\('(.+?)'", result)[0] while not ('http') in uri: uri = base64.b64decode(uri) if not ('http') in uri: uri = re.findall("'(.+?)'", uri)[0] else: pass murl = re.findall('"src":"(.+?)"', uri)[0] except: return None try: result = cloudflare.request(murl) items = client.parseDOM(result, 'video', attrs={'id': 'player'}) url = client.parseDOM(items, 'source', ret='src')[0] if ('http') in url: return url + test if url[0] != '/': url = 'http://www.iptvlinks.tk/' + url + test else: url = 'http://www.iptvlinks.tk' + url + test return url except: return None
def resolve(self, url): try: try: quality = urlparse.parse_qs(urlparse.urlparse(url).query)['quality'][0] except: quality = '1080P' url = urlparse.urljoin(self.base_link, url) url = url.rsplit('?', 1)[0] result = cloudflare.request(url) url = client.parseDOM(result, 'div', attrs = {'class': 'player'})[0] url = client.parseDOM(url, 'iframe', ret='src')[0] result = cloudflare.request(url) url = client.parseDOM(result, 'iframe', ret='src') if len(url) > 0: return url[0] count = len(re.findall('window\.atob', result)) result = re.compile("window\.atob\('([^']+)").findall(result)[0] for i in xrange(count): result = base64.decodestring(result) result = re.compile('(\d*p)="([^"]+)"').findall(result) url = [i for i in result if i[0].upper() == quality] if len(url) > 0: url = url[0][1] else: url = result[0][1] return url except: return
def resolve(url): try: result = cloudflare.request(url) post = {} f = client.parseDOM(result, 'Form', attrs={'action': ''}) k = client.parseDOM(f, 'input', ret='name', attrs={'type': 'hidden'}) for i in k: post.update({ i: client.parseDOM(f, 'input', ret='value', attrs={'name': i})[0] }) post.update({'method_free': 'Watch Free!'}) post = urllib.urlencode(post) result = cloudflare.request(url, post=post) result = result.replace('\\/', '/').replace('\n', '').replace('\'', '"').replace(' ', '') swfUrl = re.compile('\.embedSWF\("(.+?)"').findall(result)[0] swfUrl = urlparse.urljoin(url, swfUrl) streamer = re.compile('flashvars=.+?"file":"(.+?)"').findall(result)[0] playpath = re.compile('flashvars=.+?p2pkey:"(.+?)"').findall(result)[0] url = '%s playpath=%s conn=S:%s pageUrl=%s swfUrl=%s swfVfy=true timeout=20' % ( streamer, playpath, playpath, url, swfUrl) return url except: return
def resolve(url): test = '|User-Agent=Mozilla/5.0 (compatible; CloudFlare-AlwaysOnline/1.0; +https://www.cloudflare.com/always-online) AppleWebKit/534.34' try: result = cloudflare.request(url) uri = re.findall("decodeURIComponent\(atob\('(.+?)'",result)[0] while not ('http') in uri: uri = base64.b64decode(uri) if not ('http') in uri: uri = re.findall("'(.+?)'",uri)[0] else: pass murl = re.findall('"src":"(.+?)"',uri)[0] except: return None try: result = cloudflare.request(murl) items = client.parseDOM(result, 'video', attrs={'id': 'player'}) url = client.parseDOM(items, 'source', ret='src')[0] if ('http') in url: return url+test if url[0]!='/': url='http://www.iptvlinks.tk/'+url+test else: url='http://www.iptvlinks.tk'+url+test return url except: return None
def resolve(url): try: result = cloudflare.request(url) post = {} f = client.parseDOM(result, 'Form', attrs = {'action': '' }) k = client.parseDOM(f, 'input', ret='name', attrs = {'type': 'hidden'}) for i in k: post.update({i: client.parseDOM(f, 'input', ret='value', attrs = {'name': i})[0]}) post.update({'method_free': 'Watch Free!'}) post = urllib.urlencode(post) result = cloudflare.request(url, post=post) result = result.replace('\\/', '/').replace('\n', '').replace('\'', '"').replace(' ', '') swfUrl = re.compile('\.embedSWF\("(.+?)"').findall(result)[0] swfUrl = urlparse.urljoin(url, swfUrl) streamer = re.compile('flashvars=.+?"file":"(.+?)"').findall(result)[0] playpath = re.compile('flashvars=.+?p2pkey:"(.+?)"').findall(result)[0] url = '%s playpath=%s conn=S:%s pageUrl=%s swfUrl=%s swfVfy=true timeout=20' % (streamer, playpath, playpath, url, swfUrl) return url except: return
def resolve(self, url): try: try: quality = urlparse.parse_qs( urlparse.urlparse(url).query)['quality'][0] except: quality = '1080P' quality = re.sub('[^0-9]', '', quality) url = urlparse.urljoin(self.base_link, url) url = url.rsplit('?', 1)[0] result = cloudflare.request(url) url = client.parseDOM(result, 'div', attrs={'class': 'player'})[0] url = client.parseDOM(url, 'iframe', ret='src')[0] result = cloudflare.request(url) replace = re.findall("\.replace\('(.*?)'.+?'(.*?)'\)", result) for i in replace: try: result = result.replace(i[0], i[1]) except: pass count = len(re.findall('window\.atob', result)) result = re.compile("window\.atob[\([]+'([^']+)").findall( result)[0] for i in xrange(count): try: result = base64.decodestring(result) except: pass url = client.parseDOM(result, 'iframe', ret='src') if len(url) > 0: return url[0] link = [] link += re.compile( '''<source[^>]+src=["']([^'"]+)[^>]+res=['"]([^'"]+)''' ).findall(result) link += re.compile('''\?url=(.+?)["'].+?["'](.+?)["']''').findall( result) url = [i for i in link if i[1] == quality] if len(url) > 0: url = url[0][0] else: url = link[0][0] url = url.split()[0] return url except: return
def CCpart(url, image, fanart): try: url = urlparse.urljoin('http://kisscartoon.me', url) result = cloudflare.request(url) items = client.parseDOM(result, 'table', attrs={'class': 'listing'}) items = client.parseDOM(items, 'td') items = zip(client.parseDOM(items, 'a', ret='href'), client.parseDOM(items, 'a')) if len(items) == 1: return CCstream(items[0][0]) except: return for item in items[::-1]: try: name = item[1] name = name.replace('\n', '') name = client.replaceHTMLCodes(name) name = name.encode('utf-8') url = item[0] url = client.replaceHTMLCodes(url) url = url.encode('utf-8') addDirectoryItem(name,'CCstream',image,image,fanart,url) except: pass episodeCategory()
def CartoonCrazy(image, fanart): addDirectoryItem('[B]SEARCH[/B]', 'CCsearch', '0', mediaPath+'CCsearch.png', fanart, '') try: url = 'http://kisscartoon.me/CartoonList/' result = cloudflare.request(url) items = client.parseDOM(result, 'div', attrs={'id': 'container'}) items = client.parseDOM(items, 'div', attrs={'id': 'rightside'}) items = client.parseDOM(items, 'div', attrs={'class': 'barContent'})[1] items = client.parseDOM(items, 'a', ret='href') except: return for item in items: try: name = '[B]'+ item[7:] +'[/B]' name = client.replaceHTMLCodes(name) name = name.encode('utf-8') url = item url = client.replaceHTMLCodes(url) url = url.encode('utf-8') addDirectoryItem(name, 'CCcat', image, image, fanart, url) except: pass endDirectory()
def CCpart(url, image, fanart): try: url = urlparse.urljoin('http://kisscartoon.me', url) result = cloudflare.request(url) items = client.parseDOM(result, 'table', attrs={'class': 'listing'}) items = client.parseDOM(items, 'td') items = zip(client.parseDOM(items, 'a', ret='href'), client.parseDOM(items, 'a')) if len(items) == 1: return CCstream(items[0][0]) except: return for item in items[::-1]: try: name = item[1] name = name.replace('\n', '') name = client.replaceHTMLCodes(name) name = name.encode('utf-8') url = item[0] url = client.replaceHTMLCodes(url) url = url.encode('utf-8') addDirectoryItem(name, 'CCstream', image, image, fanart, url) except: pass episodeCategory()
def CCstream(url): try: url = urlparse.urljoin('http://kisscartoon.me', url) result = cloudflare.request(url) url = [] items = client.parseDOM(result, 'select', attrs={'id': 'selectQuality'}) items = client.parseDOM(items, 'option', ret='value') for i in items: try: url.append({ 'q': directstream.googletag(base64.b64decode(i))[0]['quality'], 'u': base64.b64decode(i) }) except: pass items = sorted(url, key=lambda k: k['q']) player().run(items[0]['u']) except: return
def CartoonCrazy(image, fanart): try: url = 'http://kisscartoon.me/CartoonList/' result = cloudflare.request(url) items = client.parseDOM(result, 'div', attrs={'id': 'container'}) items = client.parseDOM(items, 'div', attrs={'id': 'rightside'}) items = client.parseDOM(items, 'div', attrs={'class': 'barContent'})[1] items = client.parseDOM(items, 'a', ret='href') except: return for item in items: try: name = item[7:].upper() name = client.replaceHTMLCodes(name) name = name.encode('utf-8') url = item url = client.replaceHTMLCodes(url) url = url.encode('utf-8') addDirectoryItem(name, 'CCcat', cartoonArt % (random.randint(1, 10)), image, fanart, url) except: pass endDirectory()
def VAgenres(image, fanart): try: url = 'http://kissanime.to/AnimeList/' result = cloudflare.request(url) items = client.parseDOM(result, 'div', attrs={'id': 'container'}) items = client.parseDOM(items, 'div', attrs={'id': 'rightside'}) items = client.parseDOM(items, 'div', attrs={'class': 'barContent'})[1] items = client.parseDOM(items, 'a', ret='href') except: return for item in items: try: name = '[B]' + item[7:] + '[/B]' name = client.replaceHTMLCodes(name) name = name.encode('utf-8') url = item url = client.replaceHTMLCodes(url) url = url.encode('utf-8') addDirectoryItem(name, 'VAcat', image, image, fanart, url) except: pass endDirectory()
def resolve(url): try: result = cloudflare.request(url) items = client.parseDOM(result, 'video', attrs={'id': 'live_player'}) url = client.parseDOM(items, 'source', ret='src')[0] if ('http') in url: return url+'|User-Agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36' except: return None
def resolve(self, url): try: try: quality = urlparse.parse_qs(urlparse.urlparse(url).query)['quality'][0] except: quality = '1080P' quality = re.sub('[^0-9]', '', quality) url = urlparse.urljoin(self.base_link, url) url = url.rsplit('?', 1)[0] result = cloudflare.request(url) url = client.parseDOM(result, 'div', attrs = {'class': 'player'})[0] url = client.parseDOM(url, 'iframe', ret='src')[0] result = cloudflare.request(url) replace = re.findall("\.replace\('(.*?)'.+?'(.*?)'\)", result) for i in replace: try: result = result.replace(i[0], i[1]) except: pass count = len(re.findall('window\.atob', result)) result = re.compile("window\.atob[\([]+'([^']+)").findall(result)[0] for i in xrange(count): try: result = base64.decodestring(result) except: pass url = client.parseDOM(result, 'iframe', ret='src') if len(url) > 0: return url[0] link = [] link += re.compile('''<source[^>]+src=["']([^'"]+)[^>]+res=['"]([^'"]+)''').findall(result) link += re.compile('''\?url=(.+?)["'].+?["'](.+?)["']''').findall(result) url = [i for i in link if i[1] == quality] if len(url) > 0: url = url[0][0] else: url = link[0][0] url = url.split()[0] return url except: return
def VAcat(url, image, fanart): try: url = urlparse.urljoin('http://kissanime.to/', url) result = cloudflare.request(url) result = re.sub('<tr\s+.+?>', '<tr>', result) items = client.parseDOM(result, 'tr') except: return for item in items: try: name = client.parseDOM(item, 'a')[0] name = re.sub('\n|\W{3,}', '', name) name = client.replaceHTMLCodes(name) name = name.encode('utf-8') info = client.parseDOM(item, 'p')[0] info = client.replaceHTMLCodes(info) info = re.sub('\W{2,}', '', info) info = info.encode('utf-8') url = client.parseDOM(item, 'a', ret='href')[0] url = client.replaceHTMLCodes(url) url = url.encode('utf-8') thumb = client.parseDOM(item, 'img', ret='src')[0] thumb = client.replaceHTMLCodes(thumb) thumb = thumb.encode('utf-8') cookie = cloudflare.justcookie(thumb) cookie = cookie.split(';ASP')[0] image = thumb + cookie addDirectoryItem('[B]' + name + '[/B]', 'VApart', image, image, fanart, url) except: pass try: next = client.parseDOM(result, 'ul', attrs={'class': 'pager'})[0] next = zip(client.parseDOM(next, 'a', ret='href'), client.parseDOM(next, 'a')) next = [i[0] for i in next if 'Next' in i[1]][0] addDirectoryItem('[I]NEXT[/I]', 'VAcat', image, image, fanart, next) except: pass movieCategory()
def resolve(self, url): try: if not urlparse.urlparse(url).netloc in self.base_link: url = client.request(url, output='geturl') if 'requiressl=yes' in url: url = url.replace('http://', 'https://') else: url = url.replace('https://', 'http://') else: result = cloudflare.request(url) url = client.parseDOM(result, 'iframe', ret='src')[0] return url except: return
def VCcat(url, image, fanart): try: url = urlparse.urljoin('http://kisscartoon.me', url) result = cloudflare.request(url) result = re.sub('<tr\s+.+?>', '<tr>', result) items = client.parseDOM(result, 'tr') except: return for item in items: try: name = client.parseDOM(item, 'a')[0] name = name.replace('\n', '') name = '[B]' + name + '[/B]' name = client.replaceHTMLCodes(name) name = name.encode('utf-8') info = client.parseDOM(item, 'p')[0] info = client.replaceHTMLCodes(info) info = re.sub('\W{2,}', '', info) info = info.encode('utf-8') url = client.parseDOM(item, 'a', ret='href')[0] url = client.replaceHTMLCodes(url) url = url.encode('utf-8') thumb = client.parseDOM(item, 'img', ret='src')[0] #thumb = thumb.replace('kisscartoon.me','cdn-c.whatbest.net') thumb = client.replaceHTMLCodes(thumb) thumb = thumb.encode('utf-8') image = str(thumb) + cloudflare.justcookie(thumb) addDirectoryItem(name, 'VCpart', image, image, fanart, url) except: pass try: next = client.parseDOM(result, 'ul', attrs={'class': 'pager'})[0] next = zip(client.parseDOM(next, 'a', ret='href'), client.parseDOM(next, 'a')) next = [i[0] for i in next if 'Next' in i[1]][0] addDirectoryItem('[I]NEXT[/I]', 'VCcat', image, image, fanart, next) except: pass movieCategory()
def resolve(url): try: result = cloudflare.request(url) items = client.parseDOM(result, 'video', attrs={'id': 'player'}) items = client.parseDOM(items, 'source', ret='src')[1] if ('http') in items: return items if items[0]!='/': url='http://www.iptvlinks.tk/'+items else: url='http://www.iptvlinks.tk'+items return url except: return None
def resolve(self, url): try: if not urlparse.urlparse(url).netloc in self.base_link: url = client.request(url, output='geturl') if 'requiressl=yes' in url: url = url.replace('http://', 'https://') else: url = url.replace('https://', 'http://') else: result = cloudflare.request(url) url = client.parseDOM(result, 'iframe', ret='src')[0] return url except: return
def VAalpha(image, fanart): try: url = 'http://kissanime.to/AnimeList/' result = cloudflare.request(url) items = client.parseDOM(result, 'div', attrs={'class': 'alphabet'}) title = client.parseDOM(items, 'a') addy = client.parseDOM(items, 'a', ret='href') list = zip(title, addy) for item in list: url = 'AnimeList/' + item[1] if item[0] == "All": url = item[1] url = url.encode('utf-8') addDirectoryItem('[B]' + item[0] + '[/B]', 'VAcat', image, image, fanart, url) endDirectory() except: pass
def CCcat(url, image, fanart): try: url = urlparse.urljoin('http://kisscartoon.me', url) result = cloudflare.request(url) result = re.sub('<tr\s+.+?>', '<tr>', result) items = client.parseDOM(result, 'tr') except: return for item in items: try: name = client.parseDOM(item, 'a')[0] name = name.replace('\n', '') name = '[B]'+ name +'[/B]' name = client.replaceHTMLCodes(name) name = name.encode('utf-8') url = client.parseDOM(item, 'a', ret='href')[0] url = client.replaceHTMLCodes(url) url = url.encode('utf-8') thumb = client.parseDOM(item, 'img', ret='src')[0] thumb = thumb.replace('kisscartoon.me','cdn-c.whatbest.net') thumb = client.replaceHTMLCodes(thumb) thumb = thumb.encode('utf-8') addDirectoryItem(name, 'CCpart', thumb, image, fanart, url) except: pass try: next = client.parseDOM(result, 'ul', attrs={'class': 'pager'})[0] next = zip(client.parseDOM(next, 'a', ret='href'), client.parseDOM(next, 'a')) next = [i[0] for i in next if 'Next' in i[1]][0] addDirectoryItem('[I]NEXT[/I]', 'CCcat', image, image, fanart, next) except: pass movieCategory()
def VCstream(url): try: url = urlparse.urljoin('http://kisscartoon.me', url) result = cloudflare.request(str(url) + '&s=openload') items = client.parseDOM(result, 'select', attrs={'id': 'selectQuality'}) items = client.parseDOM(items, 'option', ret='value') if not items: try: url = re.findall('"(https://openload\.co/.+?.mp4")', str(result))[0] except: url = re.findall('"(https://2.bp.blogspot.com/.+?)"', str(result))[0] player().run(resolved(url)) except: return
def CCstream(url): try: control.idle() url = urlparse.urljoin('http://kisscartoon.me', url) result = cloudflare.request(url) items = client.parseDOM(result,'select', attrs={'id':'selectQuality'}) items = client.parseDOM(items, 'option', ret='value') url = [] for item in items: try: u = base64.b64decode(item) u = u.encode('utf-8') if u[-3:] == 'm37': q = '1080P' elif u[-3:] == 'm22': q = '720P' elif u[-3:] == 'm18': q = '360P' else: q = 'UNKNOWN' url.append({'q': q, 'u': u}) except: pass if len(url) > 1: q = [i['q'] for i in url] u = [i['u'] for i in url] select = control.selectDialog(q) if select == -1: return url = u[select] else: url = url[0]['u'] player().run(url) except: return
def VAstream(url): try: url = urlparse.urljoin('http://kissanime.to', url) result = cloudflare.request(url) items = client.parseDOM(result, 'select', attrs={'id': 'selectQuality'}) items = client.parseDOM(items, 'option', ret='value') if not items: url = re.findall('divContentVideo.+?iframe.+?src="(.+?)"', str(result))[0] player().run(resolved(url)) try: url = base64.b64decode(items[0]) url = url.encode('utf-8') except: pass if len(url) > 1: player().run(url) except: return
def sources(self, url, hostDict, hostprDict): try: sources = [] if url == None: return sources if not str(url).startswith('http'): if (self.user == '' or self.password == ''): raise Exception() data = urlparse.parse_qs(url) data = dict([(i, data[i][0]) if data[i] else (i, '') for i in data]) title = data['tvshowtitle'] if 'tvshowtitle' in data else data['title'] year = data['year'] query = urlparse.urljoin(self.base_link, self.search_link) post = urllib.urlencode({'search': title}) title = cleantitle.get(title) r = cloudflare.source(query, post=post) r = client.parseDOM(r, 'a', ret='href') if 'tvshowtitle' in data: r = [(i, re.findall('watch-tvshow-(.+?)-\d+\.html', i)) for i in r] else: r = [(i, re.findall('watch-movie-(.+?)-\d+\.html', i)) for i in r] r = [(i[0], i[1][0]) for i in r if len(i[1]) > 0] r = [i for i in r if title == cleantitle.get(i[1])] r = [i[0] for i in r][0] r = urlparse.urljoin(self.base_link, r) cookie, agent, url = cloudflare.request(r, output='extended') if 'season' in data and 'episode' in data: r = client.parseDOM(url, 'a', ret='href') r = [i for i in r if '-s%02de%02d-' % (int(data['season']), int(data['episode'])) in i.lower() and 'episode-' in i.lower()][0] r = urlparse.urljoin(self.base_link, r) cookie, agent, url = cloudflare.request(r, output='extended') else: r = urlparse.urljoin(self.base_link, url) cookie, agent, url = cloudflare.request(r, output='extended') quality = 'HD' if '-movie-' in url else 'SD' func = re.findall('''["']sources['"]\s*:\s*\[(.*?)\]''', url)[0] func = re.findall('''['"]*file['"]*\s*:\s*([^\(]+)''', func)[0] u = re.findall('function\s+%s[^{]+{\s*([^}]+)' % func, url)[0] u = re.findall('\[([^\]]+)[^+]+\+\s*([^.]+).*?getElementById\("([^"]+)', u)[0] a = re.findall('var\s+%s\s*=\s*\[([^\]]+)' % u[1], url)[0] b = client.parseDOM(url, 'span', {'id': u[2]})[0] url = u[0] + a + b url = url.replace('"', '').replace(',', '').replace('\/', '/') url += '|' + urllib.urlencode({'Cookie': str(cookie), 'User-Agent': agent, 'Referer': r}) sources.append({'source': 'cdn', 'quality': quality, 'provider': 'Streamlord', 'url': url, 'direct': True, 'debridonly': False, 'autoplay': False}) return sources except: return sources
def sources(self, url, hostDict, hostprDict): try: sources = [] if url == None: return sources r = urlparse.urljoin(self.base_link, url) cookie, agent, result = cloudflare.request(r, output='extended') f = client.parseDOM(result, 'div', attrs = {'class': 'movieplay'}) f = client.parseDOM(f, 'iframe', ret='src') f = [i for i in f if 'miradetodo' in i] links = [] dupes = [] for u in f: try: id = urlparse.parse_qs(urlparse.urlparse(u).query)['id'][0] if id in dupes: raise Exception() dupes.append(id) try: url = base64.b64decode(id) if 'google' in url: url = directstream.google(url) else: raise Exception() for i in url: links.append({'source': 'gvideo', 'quality': i['quality'], 'url': i['url']}) continue except: pass result = cloudflare.source(u, headers={'Referer': r}) try: headers = {'X-Requested-With': 'XMLHttpRequest', 'Referer': u} post = re.findall('{link\s*:\s*"([^"]+)', result)[0] post = urllib.urlencode({'link': post}) url = urlparse.urljoin(self.base_link, '/stream/plugins/gkpluginsphp.php') url = cloudflare.source(url, post=post, headers=headers) url = json.loads(url)['link'] url = [i['link'] for i in url if 'link' in i] for i in url: try: links.append({'source': 'gvideo', 'quality': directstream.googletag(i)[0]['quality'], 'url': i}) except: pass continue except: pass try: url = re.findall('AmazonPlayer.*?file\s*:\s*"([^"]+)', result, re.DOTALL)[0] class NoRedirection(urllib2.HTTPErrorProcessor): def http_response(self, request, response): return response o = urllib2.build_opener(NoRedirection) o.addheaders = [('User-Agent', agent)] r = o.open(url) url = r.headers['Location'] r.close() links.append({'source': 'cdn', 'quality': 'HD', 'url': url}) except: pass except: pass for i in links: sources.append({'source': i['source'], 'quality': i['quality'], 'provider': 'MiraDeTodo', 'url': i['url'], 'direct': True, 'debridonly': False}) return sources except: return sources
def sources(self, url, hostDict, hostprDict): try: sources = [] if url == None: return sources r = urlparse.urljoin(self.base_link, url) cookie, agent, result = cloudflare.request(r, output='extended') f = client.parseDOM(result, 'div', attrs={'class': 'movieplay'}) f = [ re.findall('(?:\"|\')(http.+?miradetodo\..+?)(?:\"|\')', i) for i in f ] f = [i[0] for i in f if len(i) > 0] links = [] dupes = [] for u in f: try: id = urlparse.parse_qs(urlparse.urlparse(u).query)['id'][0] if id in dupes: raise Exception() dupes.append(id) try: if 'acd.php' in u: raise Exception() headers = { 'X-Requested-With': 'XMLHttpRequest', 'Referer': u } post = urllib.urlencode({'link': id}) url = urlparse.urljoin( self.base_link, '/stream/plugins/gkpluginsphp.php') url = cloudflare.source(url, post=post, headers=headers) url = json.loads(url)['link'] if type(url) is list: url = [{ 'url': i['link'], 'quality': '1080p' } for i in url if '1080' in i['label']] + [{ 'url': i['link'], 'quality': 'HD' } for i in url if '720' in i['label']] else: url = [{'url': url, 'quality': 'HD'}] for i in url: try: links.append({ 'source': 'gvideo', 'quality': i['quality'], 'url': i['url'] }) except: pass continue except: pass try: result = cloudflare.source(u, headers={'Referer': r}) url = re.findall('AmazonPlayer.*?file\s*:\s*"([^"]+)', result, re.DOTALL)[0] class NoRedirection(urllib2.HTTPErrorProcessor): def http_response(self, request, response): return response o = urllib2.build_opener(NoRedirection) o.addheaders = [('User-Agent', agent)] r = o.open(url) url = r.headers['Location'] r.close() links.append({ 'source': 'cdn', 'quality': 'HD', 'url': url }) except: pass except: pass for i in links: sources.append({ 'source': i['source'], 'quality': i['quality'], 'provider': 'MiraDeTodo', 'url': i['url'], 'direct': True, 'debridonly': False }) return sources except: return sources
def sources(self, url, hostDict, hostprDict): try: sources = [] if url == None: return sources if not str(url).startswith('http'): data = urlparse.parse_qs(url) data = dict([(i, data[i][0]) if data[i] else (i, '') for i in data]) title = data['tvshowtitle'] if 'tvshowtitle' in data else data['title'] year = data['year'] if (self.user == '' or self.password == ''): raise Exception() query = urlparse.urljoin(self.base_link, '/login.html') post = urllib.urlencode({'username': self.user, 'password': self.password, 'submit': 'Login'}) try: r, headers, content, cookie = client.source(query, post=post, output='extended') headers = {'Cookie': cookie, 'User-Agent': headers['User-Agent']} except: cookie, agent, url = cloudflare.request(query, post=post, output='extended') headers = {'Cookie': cookie, 'User-Agent': agent} query = urlparse.urljoin(self.base_link, self.search_link) post = urllib.urlencode({'search': title}) r = cloudflare.source(query, post=post, headers=headers) if 'tvshowtitle' in data: r = re.findall('(watch-tvshow-.+?-\d+\.html)', r) r = [(i, re.findall('watch-tvshow-(.+?)-\d+\.html', i)) for i in r] else: r = re.findall('(watch-movie-.+?-\d+\.html)', r) r = [(i, re.findall('watch-movie-(.+?)-\d+\.html', i)) for i in r] r = [(i[0], i[1][0]) for i in r if len(i[1]) > 0] r = [i for i in r if cleantitle.get(title) == cleantitle.get(i[1])] r = [i[0] for i in r][0] r = urlparse.urljoin(self.base_link, r) url = cloudflare.source(r, headers=headers) if 'season' in data and 'episode' in data: r = re.findall('(episode-.+?-.+?\d+.+?\d+-\d+.html)', url) r = [i for i in r if '-s%02de%02d-' % (int(data['season']), int(data['episode'])) in i.lower()][0] r = urlparse.urljoin(self.base_link, r) url = cloudflare.source(r, headers=headers) else: r = urlparse.urljoin(self.base_link, url) cookie, agent, url = cloudflare.request(r, output='extended') headers = {'Cookie': cookie, 'User-Agent': agent} quality = 'HD' if '-movie-' in url else 'SD' func = re.findall('''["']sources['"]\s*:\s*\[(.*?)\]''', url)[0] func = re.findall('''['"]*file['"]*\s*:\s*([^\(]+)''', func)[0] u = re.findall('function\s+%s[^{]+{\s*([^}]+)' % func, url)[0] u = re.findall('\[([^\]]+)[^+]+\+\s*([^.]+).*?getElementById\("([^"]+)', u)[0] a = re.findall('var\s+%s\s*=\s*\[([^\]]+)' % u[1], url)[0] b = client.parseDOM(url, 'span', {'id': u[2]})[0] url = u[0] + a + b url = url.replace('"', '').replace(',', '').replace('\/', '/') url += '|' + urllib.urlencode(headers) sources.append({'source': 'cdn', 'quality': quality, 'provider': 'Streamlord', 'url': url, 'direct': True, 'debridonly': False, 'autoplay': False}) return sources except: return sources
def sources(self, url, hostDict, hostprDict): try: sources = [] if url == None: return sources if not str(url).startswith('http'): data = urlparse.parse_qs(url) data = dict([(i, data[i][0]) if data[i] else (i, '') for i in data]) title = data['tvshowtitle'] if 'tvshowtitle' in data else data['title'] year = data['year'] query = urlparse.urljoin(self.base_link, self.search_link) post = urllib.urlencode({'search': title}) title = cleantitle.get(title) r = cloudflare.source(query, post=post) r = client.parseDOM(r, 'div', attrs = {'class': 'item movie'}) r = [client.parseDOM(i, 'a', ret='href') for i in r] r = sum(r, []) if 'tvshowtitle' in data: r = [(i, re.findall('watch-tvshow-(.+?)-\d+\.html', i)) for i in r] else: r = [(i, re.findall('watch-movie-(.+?)-\d+\.html', i)) for i in r] r = [(i[0], i[1][0]) for i in r if len(i[1]) > 0] r = [i for i in r if title == cleantitle.get(i[1])] r = [i[0] for i in r][0] r = urlparse.urljoin(self.base_link, r) cookie, agent, url = cloudflare.request(r, output='extended') atr = [client.parseDOM(i, 'li') for i in client.parseDOM(url, 'td')] atr = [re.findall('(\d{4})', i[1])[0] for i in atr if len(i) > 1 and i[0] == 'Released'] atr = [i for i in atr if i == year][0] if 'season' in data and 'episode' in data: r = re.findall('href="(episode[^"]*-[Ss]%02d[Ee]%02d-[^"]+)' % (int(data['season']), int(data['episode'])), url)[0] r = urlparse.urljoin(self.base_link, r) cookie, agent, url = cloudflare.request(r, output='extended') else: r = urlparse.urljoin(self.base_link, url) cookie, agent, url = cloudflare.request(r, output='extended') quality = 'HD' if '-movie-' in url else 'SD' url = re.findall('''["']sources['"]\s*:\s*\[(.*?)\]''', url)[0] url = re.findall('''['"]*file['"]*\s*:\s*['"]*([^'"]+)''', url)[0] url += '|' + urllib.urlencode({'Cookie': str(cookie), 'User-Agent': agent, 'Referer': r}) sources.append({'source': 'cdn', 'quality': quality, 'provider': 'Streamlord', 'url': url, 'direct': True, 'debridonly': False, 'autoplay': False}) return sources except: return sources
def sources(self, url, hostDict, hostprDict): try: sources = [] if url == None: return sources if not str(url).startswith('http'): data = urlparse.parse_qs(url) data = dict([(i, data[i][0]) if data[i] else (i, '') for i in data]) title = data['tvshowtitle'] if 'tvshowtitle' in data else data[ 'title'] year = data['year'] query = urlparse.urljoin(self.base_link, self.search_link) post = urllib.urlencode({'search': title}) title = cleantitle.get(title) r = cloudflare.source(query, post=post) r = client.parseDOM(r, 'div', attrs={'class': 'item movie'}) r = [client.parseDOM(i, 'a', ret='href') for i in r] r = sum(r, []) if 'tvshowtitle' in data: r = [(i, re.findall('watch-tvshow-(.+?)-\d+\.html', i)) for i in r] else: r = [(i, re.findall('watch-movie-(.+?)-\d+\.html', i)) for i in r] r = [(i[0], i[1][0]) for i in r if len(i[1]) > 0] r = [i for i in r if title == cleantitle.get(i[1])] r = [i[0] for i in r][0] r = urlparse.urljoin(self.base_link, r) cookie, agent, url = cloudflare.request(r, output='extended') atr = [ client.parseDOM(i, 'li') for i in client.parseDOM(url, 'td') ] atr = [ re.findall('(\d{4})', i[1])[0] for i in atr if len(i) > 1 and i[0] == 'Released' ] atr = [i for i in atr if i == year][0] if 'season' in data and 'episode' in data: r = re.findall( 'href="(episode[^"]*-[Ss]%02d[Ee]%02d-[^"]+)' % (int(data['season']), int(data['episode'])), url)[0] r = urlparse.urljoin(self.base_link, r) cookie, agent, url = cloudflare.request(r, output='extended') else: r = urlparse.urljoin(self.base_link, url) cookie, agent, url = cloudflare.request(r, output='extended') quality = 'HD' if '-movie-' in url else 'SD' url = re.findall('''["']sources['"]\s*:\s*\[(.*?)\]''', url)[0] url = re.findall('''['"]*file['"]*\s*:\s*['"]*([^'"]+)''', url)[0] url += '|' + urllib.urlencode({ 'Cookie': str(cookie), 'User-Agent': agent, 'Referer': r }) sources.append({ 'source': 'cdn', 'quality': quality, 'provider': 'Streamlord', 'url': url, 'direct': True, 'debridonly': False, 'autoplay': False }) return sources except: return sources
a = requests.get(url+'/schedule/') ans = a.text page = re.findall('iframe src="(.+?)"',ans)[0] game_page = requests.get(url+page) a =game_page.text b = a.split('<hr>') sports = re.compile('<a href="(.+?)" target="(.+?)">(.+?)</a>').findall(b[0]) for url, blank, name in sports: name = name url = url.replace('wiz1.net/','www.wiz1.net/watch') url = build_url({'mode': 'wiz1', 'name':name, 'icon':icon, 'url':url}) addDirItem(name,icon,fanart,url) burl = 'http://www.ibrod.tv/index.html' req = cloudflare.request(burl) heading = client.parseDOM(req, 'a', attrs={'title':'Watch UK TV Online'})[0] slist = req.split(str(heading))[1].split('a class')[0] title = re.findall('title="(.+?)"',str(slist)) turl = re.findall('href="(.+?)"',str(slist)) joint = zip(title,turl) for title,turl in joint: title = title.replace('Watch ','').replace('Online','').upper() turl = 'http://www.ibrod.tv/'+str(turl) url = build_url({'mode': 'UKSPORT', 'name':title, 'icon':icon, 'url':turl}) addDirItem(title,icon,fanart,url) channels = re.compile('(\d+?:\d+? )<font color=".+?"><b>(.+?)</b></font>(.+?)<a href="(.+?)" target=".+?">(.+?)<').findall(a) for time, sport, detail, url, chan in channels: times = time.split(':') if times[0][0]=='0':