Private GIT

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

Merge pull request #727 from SickRage/providers

Fix some small problems in hd4free provider such as size parsing
parents 6c8ae19b 345d3844
Branches
Tags
No related merge requests found
...@@ -30,12 +30,16 @@ class HD4FreeProvider(TorrentProvider): # pylint: disable=too-many-instance-att ...@@ -30,12 +30,16 @@ class HD4FreeProvider(TorrentProvider): # pylint: disable=too-many-instance-att
TorrentProvider.__init__(self, "HD4Free") TorrentProvider.__init__(self, "HD4Free")
self.url = 'https://hd4free.xyz' self.url = 'https://hd4free.xyz'
self.ratio = 0 self.urls = {'search': self.url + '/searchapi.php'}
self.cache = HD4FreeCache(self)
self.minseed, self.minleech = 2 * [None] self.freeleech = None
self.username = None self.username = None
self.api_key = None self.api_key = None
self.freeleech = None self.minseed = None
self.minleech = None
self.ratio = 0
self.cache = HD4FreeCache(self)
def _check_auth(self): def _check_auth(self):
if self.username and self.api_key: if self.username and self.api_key:
...@@ -55,21 +59,25 @@ class HD4FreeProvider(TorrentProvider): # pylint: disable=too-many-instance-att ...@@ -55,21 +59,25 @@ class HD4FreeProvider(TorrentProvider): # pylint: disable=too-many-instance-att
'apikey': self.api_key 'apikey': self.api_key
} }
for mode in search_strings: # Mode = RSS, Season, Episode for mode in search_strings:
items = [] items = []
logger.log(u"Search Mode: %s" % mode, logger.DEBUG) logger.log(u"Search Mode: %s" % mode, logger.DEBUG)
for search_string in search_strings[mode]: for search_string in search_strings[mode]:
if mode != 'RSS': if self.freeleech:
search_params['search'] = search_string.encode('utf-8') search_params['fl'] = 'true'
else:
search_params['fl'] = 'true' if self.freeleech else 'false' search_params.pop('fl', '')
if mode != 'RSS': if mode != 'RSS':
logger.log(u"Search string: " + search_string.strip(), logger.DEBUG) logger.log(u"Search string: " + search_string.strip(), logger.DEBUG)
search_params['search'] = search_string.encode('utf-8')
else:
search_params.pop('search', '')
search_url = self.urls['search'] + "?" + urlencode(search_params)
logger.log(u"Search URL: %s" % search_url, logger.DEBUG)
searchURL = self.url + "/searchapi.php?" + urlencode(search_params) jdata = self.get_url(search_url, json=True)
logger.log(u"Search URL: %s" % searchURL, logger.DEBUG)
jdata = self.get_url(searchURL, json=True)
if not jdata: if not jdata:
logger.log(u"No data returned from provider", logger.DEBUG) logger.log(u"No data returned from provider", logger.DEBUG)
continue continue
...@@ -78,32 +86,33 @@ class HD4FreeProvider(TorrentProvider): # pylint: disable=too-many-instance-att ...@@ -78,32 +86,33 @@ class HD4FreeProvider(TorrentProvider): # pylint: disable=too-many-instance-att
if jdata['0']['total_results'] == 0: if jdata['0']['total_results'] == 0:
logger.log(u"Provider has no results for this search", logger.DEBUG) logger.log(u"Provider has no results for this search", logger.DEBUG)
continue continue
except (ValueError, KeyError): except StandardError:
pass continue
for i in jdata: for i in jdata:
seeders = jdata[i]["seeders"] try:
leechers = jdata[i]["leechers"]
title = jdata[i]["release_name"] title = jdata[i]["release_name"]
torrent_size = jdata[i]["size"]
download_url = jdata[i]["download_url"] download_url = jdata[i]["download_url"]
size = convert_size(torrent_size) or -1
if not all([title, download_url]): if not all([title, download_url]):
continue continue
# Filter unseeded torrent seeders = jdata[i]["seeders"]
leechers = jdata[i]["leechers"]
if seeders < self.minseed or leechers < self.minleech: if seeders < self.minseed or leechers < self.minleech:
if mode != 'RSS': if mode != 'RSS':
logger.log(u"Discarding torrent because it doesn't meet the minimum seeders or leechers: {0} (S:{1} L:{2})".format(title, seeders, leechers), logger.DEBUG) logger.log(u"Discarding torrent because it doesn't meet the minimum seeders or leechers: {0} (S:{1} L:{2})".format(title, seeders, leechers), logger.DEBUG)
continue continue
torrent_size = str(jdata[i]["size"]) + ' MB'
size = convert_size(torrent_size) or -1
item = title, download_url, size, seeders, leechers
if mode != 'RSS': if mode != 'RSS':
logger.log(u"Found result: %s " % title, logger.DEBUG) logger.log(u"Found result: %s " % title, logger.DEBUG)
item = title, download_url, size, seeders, leechers
items.append(item) items.append(item)
except StandardError:
continue
# For each search mode sort all the items by seeders if available # For each search mode sort all the items by seeders if available
items.sort(key=lambda tup: tup[3], reverse=True) items.sort(key=lambda tup: tup[3], reverse=True)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment