本文整理汇总了Python中resources.lib.modules.source_utils.get_release_quality函数的典型用法代码示例。如果您正苦于以下问题:Python get_release_quality函数的具体用法?Python get_release_quality怎么用?Python get_release_quality使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_release_quality函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: sources
def sources(self, url, hostDict, hostprDict):
try:
sources = []
r = client.request(url)
try:
data = client.parseDOM(r, 'div', attrs={'class': 'playex'})
data = [client.parseDOM(i, 'iframe', ret='src') for i in data if i]
try:
for url in data[0]:
quality, info = source_utils.get_release_quality(url, None)
valid, host = source_utils.is_host_valid(url,hostDict)
if not valid: continue
host = host.encode('utf-8')
sources.append({
'source': host,
'quality': quality,
'language': 'en',
'url': url.replace('\/', '/'),
'direct': False,
'debridonly': False
})
except:
pass
except:
pass
return sources
except Exception:
return
示例2: sources
def sources(self, url, hostDict, hostprDict):
sources = []
try:
if not url:
return sources
query = urlparse.urljoin(self.base_link, url)
r = client.request(query)
quality = dom_parser.parse_dom(r, 'span', attrs={'id': 'release_text'})[0].content.split(' ')[0]
quality, info = source_utils.get_release_quality(quality)
r = dom_parser.parse_dom(r, 'ul', attrs={'class': 'currentStreamLinks'})
r = [(dom_parser.parse_dom(i, 'p', attrs={'class': 'hostName'}), dom_parser.parse_dom(i, 'a', attrs={'class': 'stream-src'}, req='data-id')) for i in r]
r = [(re.sub(' hd$', '', i[0][0].content.lower()), [x.attrs['data-id'] for x in i[1]]) for i in r if i[0] and i[1]]
for hoster, id in r:
valid, hoster = source_utils.is_host_valid(hoster, hostDict)
if not valid: continue
sources.append({'source': hoster, 'quality': quality, 'language': 'de', 'info': ' | '.join(info + ['' if len(id) == 1 else 'multi-part']), 'url': id, 'direct': False, 'debridonly': False, 'checkquality': True})
return sources
except:
return sources
示例3: sources
def sources(self, url, hostDict, hostprDict):
sources = []
try:
if not url:
return sources
query = urlparse.urljoin(self.base_link, url)
r = client.request(query)
r = dom_parser.parse_dom(r, 'div', attrs={'id': 'tab-plot_german'})
r = dom_parser.parse_dom(r, 'tbody')
r = dom_parser.parse_dom(r, 'tr')
for i in r:
if re.search('(?<=">)(\n.*?)(?=<\/a>)', i[1]).group().strip():
hoster = re.search('(?<=">)(\n.*?)(?=<\/a>)', i[1]).group().strip()
link = re.search('(?<=href=\")(.*?)(?=\")', i[1]).group()
rel = re.search('(?<=oddCell qualityCell">)(\n.*?)(?=<\/td>)', i[1]).group().strip()
quality, info = source_utils.get_release_quality(rel)
if not quality:
quality = 'SD'
valid, hoster = source_utils.is_host_valid(hoster, hostDict)
if not valid: continue
sources.append({'source': hoster, 'quality': quality, 'language': 'de', 'url': link, 'direct': False, 'debridonly': False})
return sources
except:
return sources
示例4: sources
def sources(self, url, hostDict, hostprDict):
try:
sources = []
if url == None: return sources
html = client.request(url)
try:
iframe = client.parseDOM(html, 'iframe', attrs = {'class': 'embed-responsive-item'}, ret='src')[0]
host = iframe.split('//')[1].replace('www.','')
host = host.split('/')[0].split('.')[0].title()
sources.append({'source':host,'quality':'SD','language': 'en','url':iframe,'direct':False,'debridonly':False})
except:
flashvar = client.parseDOM(html, 'param', attrs = {'name': 'flashvars'}, ret='value')[0]
link = flashvar.split('file=')[1]
host = link.split('//')[1].replace('www.','')
host = host.split('/')[0].split('.')[0].title()
sources.append({'source':host,'quality':'SD','language': 'en','url':link,'direct':False,'debridonly':False})
containers = client.parseDOM(html, 'div', attrs={'class':'dwn-box'})
for list in containers:
link = client.parseDOM(list, 'a', attrs={'rel':'nofollow'}, ret='href')[0]
redirect = client.request(link, output='geturl')
quality,info = source_utils.get_release_quality(redirect)
sources.append({'source':'DirectLink','quality':quality,'language': 'en','url':redirect,'info':info,'direct':True,'debridonly':False})
return sources
except:
failure = traceback.format_exc()
log_utils.log('CoolTV - Exception: \n' + str(failure))
return
示例5: sources
def sources(self, url, hostDict, hostprDict):
try:
sources = []
if url == None: return sources
r = client.request(url)
r = dom_parser2.parse_dom(r, 'div', {'class': 'll-item'})
r = [(dom_parser2.parse_dom(i, 'a', req='href'), \
dom_parser2.parse_dom(i, 'div', {'class': 'notes'})) \
for i in r if i]
r = [(i[0][0].attrs['href'], i[0][0].content, i[1][0].content if i[1] else 'None') for i in r]
for i in r:
try:
url = i[0]
url = client.replaceHTMLCodes(url)
url = url.encode('utf-8')
valid, host = source_utils.is_host_valid(i[1], hostDict)
if not valid: continue
host = client.replaceHTMLCodes(host)
host = host.encode('utf-8')
info = []
quality, info = source_utils.get_release_quality(i[2], i[2])
info = ' | '.join(info)
sources.append({'source': host, 'quality': quality, 'language': 'en', 'url': url, 'info': info, 'direct': False, 'debridonly': False})
except:
pass
return sources
except:
return sources
示例6: _get_sources
def _get_sources(self, item):
try:
links = dom_parser2.parse_dom(item, 'a', req='href')
links = [i.attrs['href'] for i in links]
info = []
try:
size = re.findall('((?:\d+\.\d+|\d+\,\d+|\d+)\s*(?:GiB|MiB|GB|MB))', item)[0]
div = 1 if size.endswith('GB') else 1024
size = float(re.sub('[^0-9|/.|/,]', '', size)) / div
size = '%.2f GB' % size
info.append(size)
except Exception:
pass
info = ' | '.join(info)
for url in links:
if 'youtube' in url: continue
if any(x in url for x in ['.rar.', '.zip.', '.iso.']) or any(
url.endswith(x) for x in ['.rar', '.zip', '.iso']): raise Exception()
valid, host = source_utils.is_host_valid(url, self.hostDict)
if not valid: continue
host = client.replaceHTMLCodes(host)
host = host.encode('utf-8')
quality, info2 = source_utils.get_release_quality(url, url)
if url in str(self._sources): continue
self._sources.append(
{'source': host, 'quality': quality, 'language': 'en', 'url': url, 'info': info, 'direct': False,
'debridonly': True})
except Exception:
pass
示例7: _get_items
def _get_items(self, r):
try:
size = re.search(r'<size>([\d]+)</size>', r).groups()[0]
seeders = re.search(r'<seeders>([\d]+)</seeders>', r).groups()[0]
_hash = re.search(r'<info_hash>([a-zA-Z0-9]+)</info_hash>', r).groups()[0]
name = re.search(r'<title>(.+?)</title>', r).groups()[0]
url = 'magnet:?xt=urn:btih:%s&dn=%s' % (_hash.upper(), urllib.quote_plus(name))
t = name.split(self.hdlr)[0]
try:
y = re.findall(r'[\.|\(|\[|\s|\_|\-](S\d+E\d+|S\d+)[\.|\)|\]|\s|\_|\-]', name, re.I)[-1].upper()
except BaseException:
y = re.findall(r'[\.|\(|\[|\s\_|\-](\d{4})[\.|\)|\]|\s\_|\-]', name, re.I)[-1].upper()
try:
div = 1000 ** 3
size = float(size) / div
size = '%.2f GB' % size
except BaseException:
size = '0'
quality, info = source_utils.get_release_quality(name, name)
info.append(size)
info = ' | '.join(info)
if not seeders == '0':
if cleantitle.get(re.sub('(|)', '', t)) == cleantitle.get(self.title):
if y == self.hdlr:
self._sources.append({'source': 'torrent', 'quality': quality, 'language': 'en', 'url': url, 'info': info, 'direct': False, 'debridonly': True})
except BaseException:
pass
示例8: sources
def sources(self, url, hostDict, hostprDict):
try:
sources = []
if url is None: return sources
data = urlparse.parse_qs(url)
data = dict([(i, data[i][0]) if data[i] else (i, '') for i in data])
try:
if 'tvshowtitle' in data:
epi = 'EP%d' % int(data['episode'])
links = self.searchShow(data['tvshowtitle'], data['season'])
url = [i[1] for i in links if epi.lower() == i[0].lower()]
else:
url = self.searchMovie(data['title'], data['year'])
try:
url = client.parseDOM(url, 'iframe', ret='src', attrs={'id':'advanced_iframe'})
except:
url = re.findall('''<h4>server\d+</h4>.+?src=['"]([^'"]+)''', url, re.I|re.DOTALL)
except:
pass
for u in url:
if 'entervideo' in u:
r = client.request(u)
url = client.parseDOM(r, 'source', ret='src')[0]
quality, info = source_utils.get_release_quality(url, url)
sources.append({'source': 'CDN', 'quality': quality, 'language': 'en', 'url': url,
'direct': True, 'debridonly': False})
elif 'vidnode' in u:
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'}
r = client.request(u, headers=headers)
links = re.findall('''\{file:\s*['"]([^'"]+).*?label:\s*['"](\d+\s*P)['"]''', r, re.DOTALL|re.I)
for u, qual in links:
quality, info = source_utils.get_release_quality(qual, u)
url = u
sources.append({'source': 'CDN', 'quality': quality, 'language': 'en', 'url': url,
'direct': True, 'debridonly': False})
return sources
except:
return sources
示例9: sources
def sources(self, url, hostDict, hostprDict):
sources = []
try:
if not url:
return sources
r = client.request(urlparse.urljoin(self.base_link, url))
links = dom_parser.parse_dom(r, 'table')
links = [i.content for i in links if dom_parser.parse_dom(i, 'span', attrs={'class': re.compile('linkSearch(-a)?')})]
links = re.compile('(<a.+?/a>)', re.DOTALL).findall(''.join(links))
links = [dom_parser.parse_dom(i, 'a', req='href') for i in links if re.findall('(.+?)\s*\(\d+\)\s*<', i)]
links = [i[0].attrs['href'] for i in links if i]
url = re.sub('/streams-\d+', '', url)
for link in links:
if '/englisch/' in link: continue
control.sleep(3000)
if link != url: r = client.request(urlparse.urljoin(self.base_link, link))
quality = 'SD'
info = []
detail = dom_parser.parse_dom(r, 'th', attrs={'class': 'thlink'})
detail = [dom_parser.parse_dom(i, 'a', req='href') for i in detail]
detail = [(i[0].attrs['href'], i[0].content.replace('▶', '').strip()) for i in detail if i]
if detail:
quality, info = source_utils.get_release_quality(detail[0][1])
r = client.request(urlparse.urljoin(self.base_link, detail[0][0]))
r = dom_parser.parse_dom(r, 'table')
r = [dom_parser.parse_dom(i, 'a', req=['href', 'title']) for i in r if not dom_parser.parse_dom(i, 'table')]
r = [(l.attrs['href'], l.attrs['title']) for i in r for l in i if l.attrs['title']]
info = ' | '.join(info)
for stream_link, hoster in r:
valid, hoster = source_utils.is_host_valid(hoster, hostDict)
if not valid: continue
direct = False
if hoster.lower() == 'gvideo':
direct = True
sources.append({'source': hoster, 'quality': quality, 'language': 'de', 'url': stream_link, 'info': info, 'direct': direct, 'debridonly': False, 'checkquality': True})
return sources
except:
return sources
示例10: _get_sources
def _get_sources(self, item):
try:
name = item[0]
url = item[1]
quality, info = source_utils.get_release_quality(url, name)
info.append(item[2])
info = ' | '.join(info)
self._sources.append(
{'source': 'torrent', 'quality': quality, 'language': 'en', 'url': url, 'info': info, 'direct': False,
'debridonly': True})
except BaseException:
pass
示例11: _get_sources
def _get_sources(self, item):
try:
name = item[0]
quality, info = source_utils.get_release_quality(name, name)
info.append(item[2])
info = ' | '.join(info)
data = client.request(item[1])
url = re.search('''href=["'](magnet:\?[^"']+)''', data).groups()[0]
self._sources.append(
{'source': 'torrent', 'quality': quality, 'language': 'en', 'url': url, 'info': info, 'direct': False,
'debridonly': True})
except BaseException:
pass
示例12: sources
def sources(self, url, hostDict, hostprDict):
try:
sources = []
if url == None: return sources
html = client.request(url)
links = re.compile('<form id="linkplayer.+?href="(.+?)"',re.DOTALL).findall(html)
for link in links:
quality,info = source_utils.get_release_quality(link, url)
host = link.split('//')[1].replace('www.','')
host = host.split('/')[0].split('.')[0].title()
sources.append({'source': host, 'quality': quality, 'language': 'en', 'url': link, 'info': info, 'direct': False, 'debridonly': False})
return sources
except:
failure = traceback.format_exc()
log_utils.log('Timewatch - Sources - Exception: \n' + str(failure))
return sources
示例13: sources
def sources(self, url, hostDict, hostprDict):
sources = []
try:
if url is None:
return sources
if debrid.status() is False:
raise Exception()
data = urlparse.parse_qs(url)
data = dict([(i, data[i][0]) if data[i] else (i, '') for i in data])
self.title = data['tvshowtitle'] if 'tvshowtitle' in data else data['title']
self.hdlr = 'S%02dE%02d' % (int(data['season']), int(data['episode'])) if 'tvshowtitle' in data else data['year']
query = '%s S%02dE%02d' % (
data['tvshowtitle'], int(data['season']), int(data['episode'])) if 'tvshowtitle' in data else '%s %s' % (
data['title'], data['year'])
query = re.sub('(\\\|/| -|:|;|\*|\?|"|\'|<|>|\|)', ' ', query)
if 'tvshowtitle' in data:
url = self.tvsearch.format(urllib.quote_plus(query))
url = urlparse.urljoin(self.base_link, url)
else:
url = self.moviesearch.format(urllib.quote_plus(query))
url = urlparse.urljoin(self.base_link, url)
items = self._get_items(url)
hostDict = hostDict + hostprDict
for item in items:
try:
name = item[0]
quality, info = source_utils.get_release_quality(name, name)
info.append(item[2])
info = ' | '.join(info)
url = item[1]
url = url.split('&tr')[0]
sources.append({'source': 'Torrent', 'quality': quality, 'language': 'en', 'url': url, 'info': info,
'direct': False, 'debridonly': True})
except BaseException:
pass
return sources
except BaseException:
return sources
示例14: sources
def sources(self, url, hostDict, hostprDict):
try:
sources = []
if url == None: return sources
if debrid.status() is False: 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']
hdlr = 'S%02dE%02d' % (int(data['season']), int(data['episode'])) if 'tvshowtitle' in data else data['year']
query = '%s S%02dE%02d' % (data['tvshowtitle'], int(data['season']), int(data['episode'])) if 'tvshowtitle' in data else '%s %s' % (data['title'], data['year'])
query = re.sub('(\\\|/| -|:|;|\*|\?|"|\'|<|>|\|)', ' ', query)
url = self.search_link % urllib.quote_plus(query)
url = urlparse.urljoin(self.base_link, url)
html = client.request(url)
url_list = re.compile('<h2><a href="([^"]+)"',re.DOTALL).findall(html)
hostDict = hostprDict + hostDict
for url in url_list:
if cleantitle.get(title) in cleantitle.get(url):
html = client.request(url)
links = re.compile('href="([^"]+)" rel="nofollow"',re.DOTALL).findall(html)
for vid_url in links:
if 'ouo.io' in vid_url:
continue
if 'sh.st' in vid_url:
continue
if 'linx' in vid_url:
log_utils.log('2DDL - sources - linx: ' + str(vid_url))
continue
if '.rar' not in vid_url:
if '.srt' not in vid_url:
'SD',info = source_utils.get_release_quality(url, vid_url)
host = vid_url.split('//')[1].replace('www.','')
host = host.split('/')[0].lower()
sources.append({'source': host, 'quality': 'SD', 'language': 'en', 'url': vid_url, 'info': info, 'direct': False, 'debridonly': False})
return sources
except Exception, argument:
return sources
示例15: sources
def sources(self, url, hostDict, hostprDict):
sources = []
try:
if len(url['episode']) == 1:
url['episode'] = "0" + url['episode']
if len(url['season']) == 1:
url['season'] = "0" + url['season']
s = requests.Session()
url = url['tvshowtitle'] + "+S" + url['season'] + "e" + url['episode']
url = (self.base_link + self.meta_search_link % (self.api_key, url.replace(' ', '+')))
print("info - " + url)
p = s.get(url)
p = json.loads(p.text)
files = p['files']
for i in files:
if not int(i['files_num_video_player']) > 1:
name = i['name']
id = i['id']
url_dl = ''
for x in accepted_extensions:
if 'url_dl' in i:
if i['url_dl'].endswith(x):
url_dl = i['url_dl']
quality = source_utils.get_release_quality(name , url_dl)
print('info - ' + str(quality) + " link " + url_dl + " name " + name)
sources.append({'source': host, 'quality': quality[0], 'language': "en", 'url': url_dl, 'info': quality[1],
'direct': True, 'debridonly': False})
else:
continue
else:
continue
if url_dl == '':
continue
else:
continue
for i in sources:
print("info - sources - " + str(i))
return sources
except:
print("Unexpected error in Furk Script: source", sys.exc_info()[0])
exc_type, exc_obj, exc_tb = sys.exc_info()
print(exc_type, exc_tb.tb_lineno)
pass