You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.2 KiB
38 lines
1.2 KiB
from couchpotato.core.helpers.encoding import tryUrlencode
|
|
from couchpotato.core.helpers.variable import tryInt
|
|
from couchpotato.core.logger import CPLog
|
|
from couchpotato.core.providers.nzb.base import NZBProvider
|
|
from couchpotato.environment import Env
|
|
|
|
log = CPLog(__name__)
|
|
|
|
|
|
class Nzbx(NZBProvider):
|
|
|
|
urls = {
|
|
'search': 'https://nzbx.co/api/search?%s',
|
|
'details': 'https://nzbx.co/api/details?guid=%s',
|
|
}
|
|
|
|
http_time_between_calls = 1 # Seconds
|
|
|
|
def _search(self, movie, quality, results):
|
|
|
|
# Get nbzs
|
|
arguments = tryUrlencode({
|
|
'q': movie['library']['identifier'].replace('tt', ''),
|
|
'sf': quality.get('size_min'),
|
|
})
|
|
nzbs = self.getJsonData(self.urls['search'] % arguments, headers = {'User-Agent': Env.getIdentifier()})
|
|
|
|
for nzb in nzbs:
|
|
|
|
results.append({
|
|
'id': nzb['guid'],
|
|
'url': nzb['nzb'],
|
|
'detail_url': self.urls['details'] % nzb['guid'],
|
|
'name': nzb['name'],
|
|
'age': self.calculateAge(int(nzb['postdate'])),
|
|
'size': tryInt(nzb['size']) / 1024 / 1024,
|
|
'score': 5 if nzb['votes']['upvotes'] > nzb['votes']['downvotes'] else 0
|
|
})
|
|
|