Private GIT

Skip to content
Snippets Groups Projects
Commit bec735b2 authored by miigotu's avatar miigotu
Browse files

Fix issues with ettv and improve error handling

parent 6e160cde
Branches
Tags
No related merge requests found
......@@ -59,11 +59,8 @@ class ExtraTorrentProvider(TorrentProvider):
if mode != 'RSS':
logger.log(u"Search string: %s " % search_string, logger.DEBUG)
try:
self.search_params.update({'type': ('search', 'rss')[mode == 'RSS'], 'search': search_string})
url = self.urls['rss'] if not self.custom_url else self.urls['rss'].replace(self.urls['index'], self.custom_url)
data = self.get_url(url, params=self.search_params)
if not data:
logger.log(u"No data returned from provider", logger.DEBUG)
......@@ -75,13 +72,16 @@ class ExtraTorrentProvider(TorrentProvider):
with BS4Parser(data, 'html5lib') as parser:
for item in parser.findAll('item'):
title = re.sub(r'^<!\[CDATA\[|\]\]>$', '', item.find('title').text)
# info_hash = item.get('info_hash', '')
size = try_int(item.find('size').text, -1) if item.find('size') else -1
seeders = try_int(item.find('seeders').text, 1) if item.find('seeders') else 1
leechers = try_int(item.find('leechers').text) if item.find('leechers') else 0
enclosure = item.find('enclosure')
download_url = enclosure['url'] if enclosure else self._magnet_from_details(item.find('link').text)
try:
title = re.sub(r'^<!\[CDATA\[|\]\]>$', '', item.find('title').get_text(strip=True))
# info_hash = item.find('info_hash').
size = try_int(item.find('size').get_text(strip=True), -1) if item.find('size') else -1
seeders = try_int(item.find('seeders').get_text(strip=True)) if item.find('seeders') else 0
leechers = try_int(item.find('leechers').get_text(strip=True)) if item.find('leechers') else 0
enclosure = item.find('enclosure') # Backlog doesnt have enclosure
download_url = enclosure['url'] if enclosure else item.find('link').next.strip()
download_url = re.sub(r'(.*)/torrent/(.*).html', r'\1/download/\2.torrent', download_url)
if not all([title, download_url]):
continue
......@@ -108,17 +108,6 @@ class ExtraTorrentProvider(TorrentProvider):
return results
def _magnet_from_details(self, link):
details = self.get_url(link)
if not details:
return ''
match = re.search(r'href="(magnet.*?)"', details)
if not match:
return ''
return match.group(1)
def seed_ratio(self):
return self.ratio
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment