Private GIT

Skip to content
Snippets Groups Projects
Commit be7ac53f authored by Dustyn Gibson's avatar Dustyn Gibson
Browse files

Clean up some issues with newpct

parent 456a1146
No related branches found
No related tags found
No related merge requests found
# coding=utf-8 # coding=utf-8
# Author: CristianBB # Author: CristianBB
# Greetings to Mr. Pine-apple # Greetings to Mr. Pine-apple
# #
...@@ -22,7 +21,7 @@ ...@@ -22,7 +21,7 @@
import traceback import traceback
import re import re
import urllib from six.moves import urllib
from sickbeard import helpers from sickbeard import helpers
from sickbeard import logger from sickbeard import logger
...@@ -39,8 +38,10 @@ class newpctProvider(generic.TorrentProvider): ...@@ -39,8 +38,10 @@ class newpctProvider(generic.TorrentProvider):
self.supportsBacklog = True self.supportsBacklog = True
self.onlyspasearch = None self.onlyspasearch = None
self.cache = newpctCache(self) self.cache = newpctCache(self)
self.minseed = None
self.minleech = None # Unsupported
# self.minseed = None
# self.minleech = None
self.urls = { self.urls = {
'base_url': 'http://www.newpct.com', 'base_url': 'http://www.newpct.com',
...@@ -81,9 +82,8 @@ class newpctProvider(generic.TorrentProvider): ...@@ -81,9 +82,8 @@ class newpctProvider(generic.TorrentProvider):
results = [] results = []
items = {'Season': [], 'Episode': [], 'RSS': []} items = {'Season': [], 'Episode': [], 'RSS': []}
lang_info = '' if not epObj or not epObj.show else epObj.show.lang
# Only search if user conditions are true # Only search if user conditions are true
lang_info = '' if not epObj or not epObj.show else epObj.show.lang
if self.onlyspasearch and lang_info != 'es': if self.onlyspasearch and lang_info != 'es':
logger.log(u"Show info is not spanish, skipping provider search", logger.DEBUG) logger.log(u"Show info is not spanish, skipping provider search", logger.DEBUG)
return results return results
...@@ -97,7 +97,7 @@ class newpctProvider(generic.TorrentProvider): ...@@ -97,7 +97,7 @@ class newpctProvider(generic.TorrentProvider):
self.search_params.update({'q': search_string.strip()}) self.search_params.update({'q': search_string.strip()})
logger.log(u"Search URL: %s" % self.urls['search'] + '?' + urllib.urlencode(self.search_params), logger.DEBUG) logger.log(u"Search URL: %s" % self.urls['search'] + '?' + urllib.parse.urlencode(self.search_params), logger.DEBUG)
data = self.getURL(self.urls['search'], post_data=self.search_params, timeout=30) data = self.getURL(self.urls['search'], post_data=self.search_params, timeout=30)
if not data: if not data:
continue continue
...@@ -106,25 +106,25 @@ class newpctProvider(generic.TorrentProvider): ...@@ -106,25 +106,25 @@ class newpctProvider(generic.TorrentProvider):
with BS4Parser(data, features=["html5lib", "permissive"]) as html: with BS4Parser(data, features=["html5lib", "permissive"]) as html:
torrent_tbody = html.find('tbody') torrent_tbody = html.find('tbody')
if len(torrent_tbody) < 1: if not len(torrent_tbody):
logger.log(u"Data returned from provider does not contain any torrents", logger.DEBUG) logger.log(u"Data returned from provider does not contain any torrents", logger.DEBUG)
continue continue
torrent_table = torrent_tbody.findAll('tr') torrent_table = torrent_tbody.findAll('tr')
#last item isn't a result if not len(torrent_table):
torrent_table.pop() logger.log(u"Torrent table does not have any rows", logger.DEBUG)
continue
for row in torrent_table: for row in torrent_table[:-1]:
try: try:
torrent_size = row.findAll('td')[2] torrent_size = row.findAll('td')[2]
torrent_row = row.findAll('a')[0] torrent_row = row.findAll('a')[0]
download_url = torrent_row.get('href') download_url = torrent_row.get('href', '')
size = self._convertSize(torrent_size.text) size = self._convertSize(torrent_size.text)
title_raw = torrent_row.get('title') title = self._processTitle(torrent_row.get('title', ''))
title = self._processTitle(title_raw)
# FIXME # FIXME: Provider does not provide seeders/leechers
seeders = 1 seeders = 1
leechers = 0 leechers = 0
...@@ -134,11 +134,11 @@ class newpctProvider(generic.TorrentProvider): ...@@ -134,11 +134,11 @@ class newpctProvider(generic.TorrentProvider):
if not all([title, download_url]): if not all([title, download_url]):
continue continue
# Filter unseeded torrent # Filter unseeded torrent (Unsupported)
if seeders < self.minseed or leechers < self.minleech: # if seeders < self.minseed or leechers < self.minleech:
if mode is not 'RSS': # if mode is not '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
item = title, download_url, size, seeders, leechers item = title, download_url, size, seeders, leechers
if mode is not 'RSS': if mode is not 'RSS':
...@@ -149,8 +149,8 @@ class newpctProvider(generic.TorrentProvider): ...@@ -149,8 +149,8 @@ class newpctProvider(generic.TorrentProvider):
except Exception: except Exception:
logger.log(u"Failed parsing provider. Traceback: %s" % traceback.format_exc(), logger.WARNING) logger.log(u"Failed parsing provider. Traceback: %s" % traceback.format_exc(), logger.WARNING)
# For each search mode sort all the items by seeders if available # For each search mode sort all the items by seeders if available (Unsupported)
items[mode].sort(key=lambda tup: tup[3], reverse=True) # items[mode].sort(key=lambda tup: tup[3], reverse=True)
results += items[mode] results += items[mode]
...@@ -205,7 +205,8 @@ class newpctProvider(generic.TorrentProvider): ...@@ -205,7 +205,8 @@ class newpctProvider(generic.TorrentProvider):
return int(size) return int(size)
def _processTitle(self, title): @staticmethod
def _processTitle(title):
# Remove "Mas informacion sobre " literal from title # Remove "Mas informacion sobre " literal from title
title = title[22:] title = title[22:]
...@@ -227,7 +228,7 @@ class newpctProvider(generic.TorrentProvider): ...@@ -227,7 +228,7 @@ class newpctProvider(generic.TorrentProvider):
title = title.replace('[BluRay MicroHD]', '[1080p BlueRay x264]') title = title.replace('[BluRay MicroHD]', '[1080p BlueRay x264]')
title = title.replace('[MicroHD 1080p]', '[1080p BlueRay x264]') title = title.replace('[MicroHD 1080p]', '[1080p BlueRay x264]')
return title return title.strip()
class newpctCache(tvcache.TVCache): class newpctCache(tvcache.TVCache):
...@@ -235,8 +236,11 @@ class newpctCache(tvcache.TVCache): ...@@ -235,8 +236,11 @@ class newpctCache(tvcache.TVCache):
tvcache.TVCache.__init__(self, provider_obj) tvcache.TVCache.__init__(self, provider_obj)
self.minTime = 30 # set this 0 to suppress log line, since we aren't updating it anyways
self.minTime = 0
def _getRSSData(self):
return {'entries': []}
provider = newpctProvider() provider = newpctProvider()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment