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