本文整理汇总了Python中resources.lib.modules.directstream.google函数的典型用法代码示例。如果您正苦于以下问题:Python google函数的具体用法?Python google怎么用?Python google使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了google函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: sources
def sources(self, url, hostDict, hostprDict):
sources = []
try:
if not url:
return sources
r = client.request(urlparse.urljoin(self.base_link, url))
r = dom_parser.parse_dom(r, 'article')
r = dom_parser.parse_dom(r, 'div', attrs={'class': 'entry-content'})
links = re.findall('''(?:link|file)["']?\s*:\s*["'](.+?)["']''', ''.join([i.content for i in r]))
links += [l.attrs['src'] for i in r for l in dom_parser.parse_dom(i, 'iframe', req='src')]
links += [l.attrs['src'] for i in r for l in dom_parser.parse_dom(i, 'source', req='src')]
for i in links:
try:
valid, hoster = source_utils.is_host_valid(i, hostDict)
if not valid: continue
urls = []
if 'google' in i: host = 'gvideo'; direct = True; urls = directstream.google(i);
if 'google' in i and not urls and directstream.googletag(i): host = 'gvideo'; direct = True; urls = [{'quality': directstream.googletag(i)[0]['quality'], 'url': i}]
elif 'ok.ru' in i: host = 'vk'; direct = True; urls = directstream.odnoklassniki(i)
elif 'vk.com' in i: host = 'vk'; direct = True; urls = directstream.vk(i)
else: host = hoster; direct = False; urls = [{'quality': 'SD', 'url': i}]
for x in urls: sources.append({'source': host, 'quality': x['quality'], 'language': 'ko', 'url': x['url'], 'direct': direct, 'debridonly': False})
except:
pass
return sources
except:
return sources
示例2: sources
def sources(self, url, hostDict, hostprDict):
try:
sources = []
if url == None: return sources
if (self.user == '' or self.password == ''): raise Exception()
login = urlparse.urljoin(self.base_link, '/login')
post = {'username': self.user, 'password': self.password, 'action': 'login'}
post = urllib.urlencode(post)
cookie = client.request(login, post=post, XHR=True, output='cookie')
url = urlparse.urljoin(self.base_link, url)
result = client.request(url, cookie=cookie)
url = re.findall("embeds\[\d+\]\s*=\s*'([^']+)", result)[0]
url = client.parseDOM(url, 'iframe', ret='src')[0]
url = url.replace('https://', 'http://')
links = []
try:
dec = re.findall('mplanet\*(.+)', url)[0]
dec = dec.rsplit('&')[0]
dec = self._gkdecrypt(base64.b64decode('MllVcmlZQmhTM2swYU9BY0lmTzQ='), dec)
dec = directstream.google(dec)
links += [(i['url'], i['quality'], 'gvideo') for i in dec]
except:
pass
result = client.request(url)
try:
url = re.findall('src\s*=\s*(?:\'|\")(http.+?)(?:\'|\")', result)
for i in url:
try: links.append({'source': 'gvideo', 'quality': directstream.googletag(i)[0]['quality'], 'url': i})
except: pass
except:
pass
try:
url = client.parseDOM(result, 'source', ret='src')
url += re.findall('src\s*:\s*\'(.*?)\'', result)
url = [i for i in url if '://' in i]
links.append({'source': 'cdn', 'quality': 'HD', 'url': url[0]})
except:
pass
for i in links: sources.append({'source': i['source'], 'quality': i['quality'], 'language': 'en', 'url': i['url'], 'direct': True, 'debridonly': False})
return sources
except:
return sources
示例3: check_directstreams
def check_directstreams(url, hoster='', quality='SD'):
urls = []
host = hoster
if 'google' in url or any(x in url for x in ['youtube.', 'docid=']):
urls = directstream.google(url)
if not urls:
tag = directstream.googletag(url)
if tag: urls = [{'quality': tag[0]['quality'], 'url': url}]
if urls: host = 'gvideo'
elif 'ok.ru' in url:
urls = directstream.odnoklassniki(url)
if urls: host = 'vk'
elif 'vk.com' in url:
urls = directstream.vk(url)
if urls: host = 'vk'
elif any(x in url for x in ['akamaized', 'blogspot', 'ocloud.stream']):
urls = [{'url': url}]
if urls: host = 'CDN'
direct = True if urls else False
if not urls: urls = [{'quality': quality, 'url': url}]
return urls, host, direct
示例4: sources
def sources(self, url, hostDict, hostprDict):
try:
sources = []
if url == None: return sources
url = urlparse.urljoin(self.base_link, url)
result = client.source(url)
links = []
try:
try: url = re.compile('proxy\.link=([^"&]+)').findall(result)[0]
except: url = client.source(re.compile('proxy\.list=([^"&]+)').findall(result)[0])
url = url.split('*', 1)[-1].rsplit('<')[0]
dec = self._gkdecrypt(base64.b64decode('aUJocnZjOGdGZENaQWh3V2huUm0='), url)
if not 'http' in dec: dec = self._gkdecrypt(base64.b64decode('QjZVTUMxUms3VFJBVU56V3hraHI='), url)
url = directstream.google(dec)
links += [(i['url'], i['quality']) for i in url]
except:
pass
try:
url = 'http://miradetodo.com.ar/gkphp/plugins/gkpluginsphp.php'
post = client.parseDOM(result, 'div', attrs = {'class': 'player.+?'})[0]
post = post.replace('iframe', 'IFRAME')
post = client.parseDOM(post, 'IFRAME', ret='.+?')[0]
post = urlparse.parse_qs(urlparse.urlparse(post).query)
result = ''
try: result += client.source(url, post=urllib.urlencode({'link': post['id'][0]}))
except: pass
try: result += client.source(url, post=urllib.urlencode({'link': post['id1'][0]}))
except: pass
try: result += client.source(url, post=urllib.urlencode({'link': post['id2'][0]}))
except: pass
result = re.compile('"?link"?\s*:\s*"([^"]+)"\s*,\s*"?label"?\s*:\s*"(\d+)p?"').findall(result)
result = [(i[0].replace('\\/', '/'), i[1]) for i in result]
links += [(i[0], '1080p') for i in result if int(i[1]) >= 1080]
links += [(i[0], 'HD') for i in result if 720 <= int(i[1]) < 1080]
links += [(i[0], 'SD') for i in result if 480 <= int(i[1]) < 720]
if not 'SD' in [i[1] for i in links]: links += [(i[0], 'SD') for i in result if 360 <= int(i[1]) < 480]
except:
pass
for i in links: sources.append({'source': 'gvideo', 'quality': i[1], 'provider': 'MiraDeTodo', 'url': i[0], 'direct': True, 'debridonly': False})
return sources
except:
return sources
示例5: sources
def sources(self, url, hostDict, hostprDict):
try:
sources = []
if url == None: return sources
url = urlparse.urljoin(self.base_link, url)
content = re.compile('(.+?)\?episode=\d*$').findall(url)
content = 'movie' if len(content) == 0 else 'episode'
try: url, episode = re.compile('(.+?)\?episode=(\d*)$').findall(url)[0]
except: pass
result = client.source(url)
url = zip(client.parseDOM(result, 'a', ret='href', attrs = {'target': 'player_iframe'}), client.parseDOM(result, 'a', attrs = {'target': 'player_iframe'}))
url = [(i[0], re.compile('(\d+)').findall(i[1])) for i in url]
url = [(i[0], i[1][-1]) for i in url if len(i[1]) > 0]
if content == 'episode':
url = [i for i in url if i[1] == '%01d' % int(episode)]
links = [client.replaceHTMLCodes(i[0]) for i in url]
for u in links:
try:
headers = {'X-Requested-With': 'XMLHttpRequest', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0', 'Referer': u}
post = urlparse.parse_qs(urlparse.urlparse(u).query)['link'][0]
post = urllib.urlencode({'link': post})
url = 'http://player.pubfilm.com/smplayer/plugins/gkphp/plugins/gkpluginsphp.php'
url = client.source(url, post=post, headers=headers)
url = json.loads(url)
if 'gklist' in url:
url = client.source(u)
url = re.findall('sources\s*:\s*\[(.+?)\]', url)[0]
url = re.findall('"file"\s*:\s*"(.+?)"', url)
url = [i.split()[0].replace('\\/', '/') for i in url]
else:
url = url['link']
url = directstream.google(url)
url = [i['url'] for i in url]
for i in url:
try: sources.append({'source': 'gvideo', 'quality': directstream.googletag(i)[0]['quality'], 'provider': 'Pubfilm', 'url': i, 'direct': True, 'debridonly': False})
except: pass
except:
pass
return sources
except:
return sources
示例6: sources
def sources(self, url, hostDict, hostprDict):
sources = []
try:
if not url:
return sources
url = urlparse.urljoin(self.base_link, url)
r = client.request(url)
r = dom_parser.parse_dom(r, 'div', attrs={'id': 'mediaplayer'})
r = [i.attrs['src'] for i in dom_parser.parse_dom(r, 'iframe', req='src')]
for i in r:
try:
if 'vidnow.' in i:
i = client.request(i, referer=url)
gdata = [(match[1], match[0]) for match in re.findall('''["']?label\s*["']?\s*[:=]\s*["']?([^"',]+)["']?(?:[^}\]]+)["']?\s*file\s*["']?\s*[:=,]?\s*["']([^"']+)''', i, re.DOTALL)]
gdata += [(match[0], match[1]) for match in re.findall('''["']?\s*file\s*["']?\s*[:=,]?\s*["']([^"']+)(?:[^}>\]]+)["']?\s*label\s*["']?\s*[:=]\s*["']?([^"',]+)''', i, re.DOTALL)]
gdata = [(x[0].replace('\/', '/'), source_utils.label_to_quality(x[1])) for x in gdata]
for u, q in gdata:
try:
tag = directstream.googletag(u)
if tag:
sources.append({'source': 'gvideo', 'quality': tag[0].get('quality', 'SD'), 'language': 'de', 'url': u, 'direct': True, 'debridonly': False})
else:
sources.append({'source': 'CDN', 'quality': q, 'language': 'de', 'url': u, 'direct': True,'debridonly': False})
except:
pass
i = dom_parser.parse_dom(i, 'div', attrs={'id': 'myElement'})
i = dom_parser.parse_dom(i, 'iframe', req='src')[0].attrs['src']
valid, host = source_utils.is_host_valid(i, hostDict)
if not valid: continue
urls = []
if 'google' in i: host = 'gvideo'; direct = True; urls = directstream.google(i);
if 'google' in i and not urls and directstream.googletag(i): host = 'gvideo'; direct = True; urls = [{'quality': directstream.googletag(i)[0]['quality'], 'url': i}]
elif 'ok.ru' in i: host = 'vk'; direct = True; urls = directstream.odnoklassniki(i)
elif 'vk.com' in i: host = 'vk'; direct = True; urls = directstream.vk(i)
else: direct = False; urls = [{'quality': 'SD', 'url': i}]
for x in urls: sources.append({'source': host, 'quality': x['quality'], 'language': 'ko', 'url': x['url'], 'direct': direct, 'debridonly': False})
except:
pass
return sources
except:
return sources
示例7: sources
def sources(self, url, hostDict, hostprDict):
sources = []
try:
if not url:
return sources
url = urlparse.urljoin(self.base_link, url)
r = client.request(url)
rels = dom_parser.parse_dom(r, 'nav', attrs={'class': 'player'})
rels = dom_parser.parse_dom(rels, 'ul', attrs={'class': 'idTabs'})
rels = dom_parser.parse_dom(rels, 'li')
rels = [(dom_parser.parse_dom(i, 'a', attrs={'class': 'options'}, req='href'), dom_parser.parse_dom(i, 'img', req='src')) for i in rels]
rels = [(i[0][0].attrs['href'][1:], re.findall('\/flags\/(\w+)\.png$', i[1][0].attrs['src'])) for i in rels if i[0] and i[1]]
rels = [i[0] for i in rels if len(i[1]) > 0 and i[1][0].lower() == 'de']
r = [dom_parser.parse_dom(r, 'div', attrs={'id': i}) for i in rels]
r = [(re.findall('link"?\s*:\s*"(.+?)"', ''.join([x.content for x in i])), dom_parser.parse_dom(i, 'iframe', attrs={'class': 'metaframe'}, req='src')) for i in r]
r = [i[0][0] if i[0] else i[1][0].attrs['src'] for i in r if i[0] or i[1]]
for i in r:
try:
i = re.sub('\[.+?\]|\[/.+?\]', '', i)
i = client.replaceHTMLCodes(i)
if not i.startswith('http'): i = self.__decode_hash(i)
valid, host = source_utils.is_host_valid(i, hostDict)
if not valid: continue
if 'google' in i: host = 'gvideo'; direct = True; urls = directstream.google(i)
elif 'ok.ru' in i: host = 'vk'; direct = True; urls = directstream.odnoklassniki(i)
elif 'vk.com' in i: host = 'vk'; direct = True; urls = directstream.vk(i)
else: direct = False; urls = [{'quality': 'SD', 'url': i}]
for x in urls: sources.append({'source': host, 'quality': x['quality'], 'language': 'de', 'url': x['url'], 'direct': direct, 'debridonly': False})
except:
pass
return sources
except:
return sources
示例8: sources
def sources(self, url, hostDict, hostprDict):
try:
sources = []
if url == None: return sources
url = urlparse.urljoin(self.base_link, url)
result = cloudflare.source(url)
links = client.parseDOM(result, 'div', attrs = {'class': 'server_line.+?'})
for link in links:
try:
host = client.parseDOM(link, 'p', attrs = {'class': 'server_servername'})[0]
host = host.strip().lower().split(' ')[-1]
url = client.parseDOM(link, 'a', ret='href')[0]
url = client.replaceHTMLCodes(url)
url = urlparse.urljoin(self.base_link, url)
url = url.encode('utf-8')
if 'google' in host:
url = cloudflare.source(url)
url = base64.b64decode(re.compile('decode\("(.+?)"').findall(url)[0])
url = re.compile('proxy\.link=([^"&]+)').findall(url)[0]
url = url.split('*', 1)[-1]
url = self._gkdecrypt(base64.b64decode('Q05WTmhPSjlXM1BmeFd0UEtiOGg='), url)
url = directstream.google(url)
for i in url: sources.append({'source': 'gvideo', 'quality': i['quality'], 'provider': 'Tunemovie', 'url': i['url'], 'direct': True, 'debridonly': False})
elif 'openload' in host:
sources.append({'source': 'openload.co', 'quality': 'HD', 'provider': 'Tunemovie', 'url': url, 'direct': False, 'debridonly': False})
#elif 'videomega' in host:
#sources.append({'source': 'videomega.tv', 'quality': 'HD', 'provider': 'Tunemovie', 'url': url, 'direct': False, 'debridonly': False})
except:
pass
return sources
except:
return sources
示例9: resolve
def resolve(self,url):
try:
if 'google' in url:
ch = []
from resources.lib.modules import directstream
res = directstream.google(url)
for x in res:
ch += [x['quality'].replace('HD','720p').replace('SD','480p')]
index = control.dialog.select('Select quality:',ch)
if index >-1:
return res[index]['url']
elif 'my.pcloud' in url:
from resources.lib.resolvers import pcloud
return pcloud.resolve(url)
else:
import urlresolver
return urlresolver.resolve(url)
except:
return ''
示例10: sources
def sources(self, url, hostDict, hostprDict):
try:
sources = []
if url == None: return sources
url = urlparse.urljoin(self.base_link, url)
result = cloudflare.source(url)
url = client.parseDOM(result, 'embed', ret='src')[0]
url = client.replaceHTMLCodes(url)
url = 'https://docs.google.com/file/d/%s/preview' % urlparse.parse_qs(urlparse.urlparse(url).query)['docid'][0]
url = directstream.google(url)
for i in url: sources.append({'source': 'gvideo', 'quality': i['quality'], 'provider': 'Xmovies', 'url': i['url'], 'direct': True, 'debridonly': False})
return sources
except:
return sources
示例11: sources
def sources(self, url, hostDict, hostprDict):
sources = []
try:
if not url:
return sources
url = urlparse.urljoin(self.base_link, url)
r = client.request(url)
rels = dom_parser.parse_dom(r, 'nav', attrs={'class': 'player'})
rels = dom_parser.parse_dom(rels, 'ul', attrs={'class': 'idTabs'})
rels = dom_parser.parse_dom(rels, 'li')
rels = dom_parser.parse_dom(rels, 'a', attrs={'class': 'options'}, req='href')
rels = [i.attrs['href'][1:] for i in rels]
r = [dom_parser.parse_dom(r, 'div', attrs={'id': i}) for i in rels]
links = re.findall('''(?:link|file)["']?\s*:\s*["'](.+?)["']''', ''.join([i[0].content for i in r]))
links += [l.attrs['src'] for i in r for l in dom_parser.parse_dom(i, 'iframe', attrs={'class': 'metaframe'}, req='src')]
links += [l.attrs['src'] for i in r for l in dom_parser.parse_dom(i, 'source', req='src')]
for i in set(links):
try:
i = re.sub('\[.+?\]|\[/.+?\]', '', i)
i = client.replaceHTMLCodes(i)
if 'videoapi.io' in i:
i = client.request(i, referer=url)
match = re.findall('videoApiPlayer\((.*?)\);', i)
if match:
i = client.request('https://videoapi.io/api/getlink/actionEmbed', post=json.loads(match[0]), XHR=True)
i = json.loads(i).get('sources', [])
i = [x.get('file', '').replace('\/', '/') for x in i]
for x in i:
gtag = directstream.googletag(x)
sources.append({'source': 'gvideo', 'quality': gtag[0]['quality'] if gtag else 'SD', 'language': 'ko', 'url': x, 'direct': True, 'debridonly': False})
else:
try:
valid, host = source_utils.is_host_valid(i, hostDict)
if not valid: continue
urls = []
if 'google' in i: host = 'gvideo'; direct = True; urls = directstream.google(i);
if 'google' in i and not urls and directstream.googletag(i): host = 'gvideo'; direct = True; urls = [{'quality': directstream.googletag(i)[0]['quality'], 'url': i}]
elif 'ok.ru' in i: host = 'vk'; direct = True; urls = directstream.odnoklassniki(i)
elif 'vk.com' in i: host = 'vk'; direct = True; urls = directstream.vk(i)
else: direct = False; urls = [{'quality': 'SD', 'url': i}]
for x in urls: sources.append({'source': host, 'quality': x['quality'], 'language': 'ko', 'url': x['url'], 'direct': direct, 'debridonly': False})
except:
pass
except:
pass
return sources
except:
return sources
示例12: sources
def sources(self, url, hostDict, hostprDict):
sources = []
try:
if not url:
return sources
url = urlparse.urljoin(self.base_link, url)
r = client.request(url)
rels = dom_parser.parse_dom(r, 'nav', attrs={'class': 'player'})
rels = dom_parser.parse_dom(rels, 'ul', attrs={'class': 'idTabs'})
rels = dom_parser.parse_dom(rels, 'li')
rels = [(dom_parser.parse_dom(i, 'a', attrs={'class': 'options'}, req='href'), dom_parser.parse_dom(i, 'img', req='src')) for i in rels]
rels = [(i[0][0].attrs['href'][1:], re.findall('\/flags\/(\w+)\.png$', i[1][0].attrs['src'])) for i in rels if i[0] and i[1]]
rels = [i[0] for i in rels if len(i[1]) > 0 and i[1][0].lower() == 'de']
r = [dom_parser.parse_dom(r, 'div', attrs={'id': i}) for i in rels]
links = re.findall('''(?:link|file)["']?\s*:\s*["'](.+?)["']''', ''.join([i[0].content for i in r]))
links += [l.attrs['src'] for i in r for l in dom_parser.parse_dom(i, 'iframe', attrs={'class': 'metaframe'}, req='src')]
links += [l.attrs['src'] for i in r for l in dom_parser.parse_dom(i, 'source', req='src')]
for i in links:
try:
i = re.sub('\[.+?\]|\[/.+?\]', '', i)
i = client.replaceHTMLCodes(i)
if self.domains[0] in i:
i = client.request(i, referer=url)
for x in re.findall('''\(["']?(.*)["']?\)''', i):
try: i += jsunpack.unpack(base64.decodestring(re.sub('"\s*\+\s*"', '', x)))
except: pass
s = re.compile('(eval\(function.*?)</script>', re.DOTALL).findall(i)
for x in s:
try: i += jsunpack.unpack(x)
except: pass
i = [(match[0], match[1]) for match in re.findall('''['"]?file['"]?\s*:\s*['"]([^'"]+)['"][^}]*['"]?label['"]?\s*:\s*['"]([^'"]*)''', i, re.DOTALL)]
i = [(x[0].replace('\/', '/'), source_utils.label_to_quality(x[1])) for x in i if '/no-video.mp4' not in x[0]]
for url, quality in i:
sources.append({'source': 'gvideo', 'quality': quality, 'language': 'de', 'url': url, 'direct': True, 'debridonly': False})
else:
try:
valid, host = source_utils.is_host_valid(i, hostDict)
if not valid: continue
urls = []
if 'google' in i: host = 'gvideo'; direct = True; urls = directstream.google(i);
if 'google' in i and not urls and directstream.googletag(i): host = 'gvideo'; direct = True; urls = [{'quality': directstream.googletag(i)[0]['quality'], 'url': i}]
elif 'ok.ru' in i: host = 'vk'; direct = True; urls = directstream.odnoklassniki(i)
elif 'vk.com' in i: host = 'vk'; direct = True; urls = directstream.vk(i)
else: direct = False; urls = [{'quality': 'SD', 'url': i}]
for x in urls: sources.append({'source': host, 'quality': x['quality'], 'language': 'de', 'url': x['url'], 'direct': direct, 'debridonly': False})
except:
pass
except:
pass
return sources
except:
return sources
示例13: sources
def sources(self, url, hostDict, hostprDict):
try:
sources = []
if url == None: return sources
data = urlparse.parse_qs(url)
data = dict([(i, data[i][0]) if data[i] else (i, '') for i in data])
title = (data['title'].translate(None, '\/:*?"\'<>|!,')).replace(' ', '-').replace('--', '-').lower()
try:
is_movie = not (int(data['episode']) > 0)
except:
is_movie = True
if is_movie:
url = urlparse.urljoin(self.base_link, self.watch_link % title)
else:
url = urlparse.urljoin(self.base_link, self.watch_series_link % (title, data['season'], data['episode']))
r = client.request(url, output='geturl')
if r is None: raise Exception()
r = client.request(url)
r = re.sub(r'[^\x00-\x7F]+',' ', r)
result = r
y = re.findall('Date\s*:\s*.+?>.+?(\d{4})', r)
y = y[0] if len(y) > 0 else None
if is_movie:
if not (data['imdb'] in r or data['year'] == y): raise Exception()
q = client.parseDOM(r, 'title')
q = q[0] if len(q) > 0 else None
quality = '1080p' if ' 1080' in q else 'HD'
r = client.parseDOM(r, 'div', attrs = {'id': '5throw'})[0]
r = client.parseDOM(r, 'a', ret='href', attrs = {'rel': 'nofollow'})
links = []
for url in r:
try:
if 'yadi.sk' in url:
url = directstream.yandex(url)
elif 'mail.ru' in url:
url = directstream.cldmailru(url)
else:
raise Exception()
if url == None: raise Exception()
links += [{'source': 'cdn', 'url': url, 'quality': quality, 'direct': False}]
except:
pass
try:
r = client.parseDOM(result, 'iframe', ret='src')
if is_movie:
r = [i for i in r if 'pasmov' in i][0]
else:
r = [i for i in r if 'pasep' in i][0]
for i in range(0, 4):
try:
if not r.startswith('http'):
r = urlparse.urljoin(self.base_link, r)
r = client.request(r)
r = re.sub(r'[^\x00-\x7F]+',' ', r)
r = client.parseDOM(r, 'iframe', ret='src')[0]
if 'google' in r: break
except:
break
if not 'google' in r: raise Exception()
r = directstream.google(r)
for i in r:
try:
links += [{'source': 'gvideo', 'url': i['url'], 'quality': i['quality'], 'direct': True}]
except:
pass
except:
pass
for i in links:
sources.append({'source': i['source'], 'quality': i['quality'], 'language': 'en', 'url': i['url'], 'direct': i['direct'], 'debridonly': False})
return sources
except:
return sources
示例14: sources
def sources(self, url, hostDict, hostprDict):
sources = []
try:
if url == None:
return sources
url = urlparse.urljoin(self.base_link, url)
cookie = self.__get_premium_cookie()
r = client.request(url, mobile=True, cookie=cookie)
query = urlparse.urljoin(self.base_link, self.part_link)
id = re.compile('var\s*video_id\s*=\s*"(\d+)"').findall(r)[0]
p = dom_parser.parse_dom(r, 'a', attrs={'class': 'changePart', 'data-part': re.compile('\d+p')}, req='data-part')
for i in p:
i = i.attrs['data-part']
p = urllib.urlencode({'video_id': id, 'part_name': i, 'page': '0'})
p = client.request(query, cookie=cookie, mobile=True, XHR=True, post=p, referer=url)
p = json.loads(p)
p = p.get('part_count', 0)
for part_count in range(0, p):
try:
r = urllib.urlencode({'video_id': id, 'part_name': i, 'page': part_count})
r = client.request(query, cookie=cookie, mobile=True, XHR=True, post=r, referer=url)
r = json.loads(r)
r = r.get('part', {})
s = r.get('source', '')
url = r.get('code', '')
if s == 'url' and 'http' not in url:
url = self.__decode_hash(url)
elif s == 'other':
url = dom_parser.parse_dom(url, 'iframe', req='src')
if len(url) < 1: continue
url = url[0].attrs['src']
if '/old/seframer.php' in url: url = self.__get_old_url(url)
valid, host = source_utils.is_host_valid(url, hostDict)
if not valid: continue
if i in ['720p', 'HD']: quali = 'HD'
elif i in ['1080p', '1440p']: quali = i
elif i in ['2160p']: quali = '4K'
else: quali = 'SD'
if 'google' in url: host = 'gvideo'; direct = True; urls = directstream.google(url)
elif 'ok.ru' in url: host = 'vk'; direct = True; urls = directstream.odnoklassniki(url)
elif 'vk.com' in url: host = 'vk'; direct = True; urls = directstream.vk(url)
else: direct = False; urls = [{'quality': quali, 'url': url}]
for i in urls: sources.append({'source': host, 'quality': i['quality'], 'language': 'de', 'url': i['url'], 'direct': direct, 'debridonly': False})
except:
pass
return sources
except:
return sources
示例15: process
def process(self, url, direct=True):
try:
if not any(i in url for i in ['.jpg', '.png', '.gif']): raise Exception()
ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower()
if not ext in ['jpg', 'png', 'gif']: raise Exception()
try:
i = os.path.join(control.dataPath,'img')
control.deleteFile(i)
f = control.openFile(i, 'w')
f.write(client.request(url))
f.close()
control.execute('ShowPicture("%s")' % i)
return False
except:
return
except:
pass
try:
r, x = re.findall('(.+?)\|regex=(.+?)$', url)[0]
x = regex.fetch(x)
r += urllib.unquote_plus(x)
if not '</regex>' in r: raise Exception()
u = regex.resolve(r)
if not u == None: url = u
except:
pass
try:
if not url.startswith('rtmp'): raise Exception()
if len(re.compile('\s*timeout=(\d*)').findall(url)) == 0: url += ' timeout=10'
return url
except:
pass
try:
if not any(i in url for i in ['.m3u8', '.f4m', '.ts']): raise Exception()
ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower()
if not ext in ['m3u8', 'f4m', 'ts']: raise Exception()
return url
except:
pass
try:
preset = re.findall('<preset>(.+?)</preset>', url)[0]
if not 'search' in preset: raise Exception()
title, year, imdb = re.findall('<title>(.+?)</title>', url)[0], re.findall('<year>(.+?)</year>', url)[0], re.findall('<imdb>(.+?)</imdb>', url)[0]
try: tvdb, tvshowtitle, premiered, season, episode = re.findall('<tvdb>(.+?)</tvdb>', url)[0], re.findall('<tvshowtitle>(.+?)</tvshowtitle>', url)[0], re.findall('<premiered>(.+?)</premiered>', url)[0], re.findall('<season>(.+?)</season>', url)[0], re.findall('<episode>(.+?)</episode>', url)[0]
except: tvdb = tvshowtitle = premiered = season = episode = None
direct = False
quality = 'HD' if not preset == 'searchsd' else 'SD'
from resources.sources import sources
u = sources().getSources(title, year, imdb, tvdb, season, episode, tvshowtitle, premiered, quality)
if not u == None: return u
except:
pass
try:
from resources.sources import sources
u = sources().getURISource(url)
if not u == False: direct = False
if u == None or u == False: raise Exception()
return u
except:
pass
try:
if not '.google.com' in url: raise Exception()
from resources.lib.modules import directstream
u = directstream.google(url)[0]['url']
return u
except:
pass
try:
if not 'filmon.com/' in url: raise Exception()
from resources.lib.modules import filmon
u = filmon.resolve(url)
return u
except:
pass
try:
if not 'uptostream/' in url: raise Exception()
from resources.lib.modules import filmon
u = url.replace('uptostream','uptobox')
return u
except:
pass
#.........这里部分代码省略.........