Private GIT

Skip to content
Snippets Groups Projects
Commit abeae9d9 authored by Luca's avatar Luca
Browse files

Updating nzbx provider

parent 903f8c84
No related branches found
No related tags found
No related merge requests found
...@@ -18,7 +18,6 @@ ...@@ -18,7 +18,6 @@
import urllib import urllib
import generic import generic
from datetime import datetime
import json import json
import sickbeard import sickbeard
...@@ -26,9 +25,9 @@ from sickbeard import tvcache ...@@ -26,9 +25,9 @@ from sickbeard import tvcache
from sickbeard import logger from sickbeard import logger
from sickbeard import classes from sickbeard import classes
from sickbeard import show_name_helpers from sickbeard import show_name_helpers
from datetime import datetime
from lib.unidecode import unidecode from lib.unidecode import unidecode
class NzbXProvider(generic.NZBProvider): class NzbXProvider(generic.NZBProvider):
def __init__(self): def __init__(self):
...@@ -51,15 +50,15 @@ class NzbXProvider(generic.NZBProvider): ...@@ -51,15 +50,15 @@ class NzbXProvider(generic.NZBProvider):
url = self.url + 'nzb?' + str(item['guid']) + '*|*' + urllib.quote_plus(title) url = self.url + 'nzb?' + str(item['guid']) + '*|*' + urllib.quote_plus(title)
return (title, url) return (title, url)
def _doSearch(self, search, show=None): def _doSearch(self, search, show=None, age=0):
params = {'age': sickbeard.USENET_RETENTION, params = {'age': sickbeard.USENET_RETENTION,
'completion': sickbeard.NZBX_COMPLETION, 'completion': sickbeard.NZBX_COMPLETION,
'cat': 'tv-hd|tv-sd', 'cat': 'tv-hd|tv-sd',
'limit': 250, 'limit': 250,
'q': search} 'q': search}
if not params['age']: if age or not params['age']:
params['age'] = 500 params['age'] = age
if not params['completion']: if not params['completion']:
params['completion'] = 100 params['completion'] = 100
...@@ -71,7 +70,7 @@ class NzbXProvider(generic.NZBProvider): ...@@ -71,7 +70,7 @@ class NzbXProvider(generic.NZBProvider):
try: try:
items = json.loads(data) items = json.loads(data)
except ValueError: except ValueError:
logger.log(u"Error trying to decode " + self.provider.name + " RSS feed", logger.ERROR) logger.log(u"Error trying to decode nzbX json data", logger.ERROR)
return[] return[]
results = [] results = []
...@@ -79,32 +78,15 @@ class NzbXProvider(generic.NZBProvider): ...@@ -79,32 +78,15 @@ class NzbXProvider(generic.NZBProvider):
if item['name'] and item['guid']: if item['name'] and item['guid']:
results.append(item) results.append(item)
else: else:
logger.log(u"Partial result from " + self.provider.name, logger.DEBUG) logger.log(u"Partial result from nzbx", logger.DEBUG)
return results return results
def findPropers(self, date=None): def findPropers(self, date=None):
params = {'completion': 100,
'cat': 'tv-hd|tv-sd',
'age': 4,
'q': '.proper.|.repack.'}
url = self.url + 'api/sickbeard?' + urllib.urlencode(params)
logger.log(u"nzbX proper search url: " + url, logger.DEBUG)
data = self.getURL(url)
try:
items = json.loads(data)
except ValueError:
logger.log(u"Error trying to decode " + self.provider.name + " RSS feed", logger.ERROR)
return[]
results = [] results = []
for item in items: for item in self._doSearch('.proper.|.repack.', age=4):
if item['name'] and item['guid'] and item['postdate']: if item['postdate']:
name, url = self._get_title_and_url(item) name, url = self._get_title_and_url(item)
results.append(classes.Proper(name, url, datetime.fromtimestamp(item['postdate']))) results.append(classes.Proper(name, url, datetime.fromtimestamp(item['postdate'])))
else:
logger.log(u"Partial result from " + self.provider.name, logger.DEBUG)
return results return results
...@@ -114,19 +96,6 @@ class NzbXCache(tvcache.TVCache): ...@@ -114,19 +96,6 @@ class NzbXCache(tvcache.TVCache):
tvcache.TVCache.__init__(self, provider) tvcache.TVCache.__init__(self, provider)
self.minTime = 20 self.minTime = 20
def _getRSSData(self):
params = {'q': '',
'completion': sickbeard.NZBX_COMPLETION,
'cat': 'tv-hd|tv-sd',
'limit': 250}
if not params['completion']:
params['completion'] = 100
url = self.provider.url + 'api/sickbeard?' + urllib.urlencode(params)
logger.log(u"nzbX cache update URL: " + url, logger.DEBUG)
return self.provider.getURL(url)
def _parseItem(self, item): def _parseItem(self, item):
title, url = self.provider._get_title_and_url(item) title, url = self.provider._get_title_and_url(item)
logger.log(u"Adding item from RSS to cache: " + title, logger.DEBUG) logger.log(u"Adding item from RSS to cache: " + title, logger.DEBUG)
...@@ -136,27 +105,16 @@ class NzbXCache(tvcache.TVCache): ...@@ -136,27 +105,16 @@ class NzbXCache(tvcache.TVCache):
if not self.shouldUpdate(): if not self.shouldUpdate():
return return
data = self._getRSSData() items = self.provider._doSearch('')
# as long as the http request worked we count this as an update if not items:
if data:
self.setLastUpdate()
else:
return return
self.setLastUpdate()
# now that we've loaded the current RSS feed lets delete the old cache # now that we've got the latest releases lets delete the old cache
logger.log(u"Clearing " + self.provider.name + " cache and updating with new information") logger.log(u"Clearing nzbX cache and updating with new information")
self._clearCache() self._clearCache()
try:
items = json.loads(data)
except ValueError:
logger.log(u"Error trying to decode " + self.provider.name + " RSS feed", logger.ERROR)
return
for item in items: for item in items:
if item['name'] and item['guid']:
self._parseItem(item) self._parseItem(item)
else:
logger.log(u"Partial result from " + self.provider.name, logger.DEBUG)
provider = NzbXProvider() provider = NzbXProvider()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment