Allow 3d categories

This commit is contained in:
Ruud
2014-03-22 22:00:26 +01:00
parent 1cabf64993
commit 2ccdc8ffdc
13 changed files with 26 additions and 22 deletions
@@ -244,10 +244,16 @@ class YarrProvider(Provider):
return 0 return 0
def getCatId(self, identifier): def getCatId(self, quality = None):
if not quality: quality = {}
identifier = quality.get('identifier')
want_3d = False
if quality.get('custom'):
want_3d = quality['custom'].get('3d')
for ids, qualities in self.cat_ids: for ids, qualities in self.cat_ids:
if identifier in qualities: if identifier in qualities or (want_3d and '3d' in qualities):
return ids return ids
if self.cat_backup_id: if self.cat_backup_id:
@@ -42,7 +42,7 @@ class Base(NZBProvider, RSS):
q = '%s %s' % (title, movie['info']['year']) q = '%s %s' % (title, movie['info']['year'])
params = tryUrlencode({ params = tryUrlencode({
'search': q, 'search': q,
'catid': ','.join([str(x) for x in self.getCatId(quality['identifier'])]), 'catid': ','.join([str(x) for x in self.getCatId(quality)]),
'user': self.conf('username', default = ''), 'user': self.conf('username', default = ''),
'api': self.conf('api_key', default = ''), 'api': self.conf('api_key', default = ''),
}) })
@@ -36,7 +36,7 @@ class Base(TorrentProvider):
page = 0 page = 0
total_pages = 1 total_pages = 1
cats = self.getCatId(quality['identifier']) cats = self.getCatId(quality)
while page < total_pages: while page < total_pages:
@@ -25,14 +25,14 @@ class Base(TorrentProvider):
cat_backup_id = None cat_backup_id = None
def buildUrl(self, title, media, quality): def buildUrl(self, title, media, quality):
return self._buildUrl(title.replace(':', ''), quality['identifier']) return self._buildUrl(title.replace(':', ''), quality)
def _buildUrl(self, query, quality_identifier): def _buildUrl(self, query, quality):
cat_ids = self.getCatId(quality_identifier) cat_ids = self.getCatId(quality)
if not cat_ids: if not cat_ids:
log.warning('Unable to find category ids for identifier "%s"', quality_identifier) log.warning('Unable to find category ids for identifier "%s"', quality.get('identifier'))
return None return None
return self.urls['search'] % ("&".join(("l%d=" % x) for x in cat_ids), tryUrlencode(query).replace('%', '%%')) return self.urls['search'] % ("&".join(("l%d=" % x) for x in cat_ids), tryUrlencode(query).replace('%', '%%'))
@@ -42,7 +42,7 @@ class Base(TorrentMagnetProvider):
if data: if data:
cat_ids = self.getCatId(quality['identifier']) cat_ids = self.getCatId(quality)
table_order = ['name', 'size', None, 'age', 'seeds', 'leechers'] table_order = ['name', 'size', None, 'age', 'seeds', 'leechers']
try: try:
@@ -39,7 +39,7 @@ class Base(TorrentMagnetProvider):
page = 0 page = 0
total_pages = 1 total_pages = 1
cats = self.getCatId(quality['identifier']) cats = self.getCatId(quality)
base_search_url = self.urls['search'] % self.getDomain() base_search_url = self.urls['search'] % self.getDomain()
@@ -36,7 +36,7 @@ class Base(TorrentProvider):
def _searchOnTitle(self, title, movie, quality, results): def _searchOnTitle(self, title, movie, quality, results):
url = self.urls['search'] % (tryUrlencode('%s %s' % (title.replace(':', ''), movie['info']['year'])), self.getCatId(quality['identifier'])[0]) url = self.urls['search'] % (tryUrlencode('%s %s' % (title.replace(':', ''), movie['info']['year'])), self.getCatId(quality)[0])
data = self.getHTMLData(url) data = self.getHTMLData(url)
if data: if data:
@@ -11,8 +11,8 @@ autoload = 'Bitsoup'
class Bitsoup(MovieProvider, Base): class Bitsoup(MovieProvider, Base):
cat_ids = [ cat_ids = [
([41], ['720p', '1080p']),
([17], ['3d']), ([17], ['3d']),
([41], ['720p', '1080p']),
([20], ['dvdr']), ([20], ['dvdr']),
([19], ['brrip', 'dvdrip']), ([19], ['brrip', 'dvdrip']),
] ]
@@ -24,6 +24,6 @@ class Bitsoup(MovieProvider, Base):
fireEvent('library.query', media, include_year = False, single = True), fireEvent('library.query', media, include_year = False, single = True),
media['info']['year'] media['info']['year']
), ),
'cat': self.getCatId(quality['identifier'])[0], 'cat': self.getCatId(quality)[0],
}) })
return query return query
@@ -10,8 +10,8 @@ autoload = 'IPTorrents'
class IPTorrents(MovieProvider, Base): class IPTorrents(MovieProvider, Base):
cat_ids = [ cat_ids = [
([48], ['720p', '1080p', 'bd50']),
([87], ['3d']), ([87], ['3d']),
([48], ['720p', '1080p', 'bd50']),
([72], ['cam', 'ts', 'tc', 'r5', 'scr']), ([72], ['cam', 'ts', 'tc', 'r5', 'scr']),
([7], ['dvdrip', 'brrip']), ([7], ['dvdrip', 'brrip']),
([6], ['dvdr']), ([6], ['dvdr']),
@@ -20,4 +20,4 @@ class IPTorrents(MovieProvider, Base):
def buildUrl(self, title, media, quality): def buildUrl(self, title, media, quality):
query = '%s %s' % (title.replace(':', ''), media['info']['year']) query = '%s %s' % (title.replace(':', ''), media['info']['year'])
return self._buildUrl(query, quality['identifier']) return self._buildUrl(query, quality)
@@ -18,10 +18,8 @@ class SceneAccess(MovieProvider, Base):
] ]
def buildUrl(self, media, quality): def buildUrl(self, media, quality):
url = self.urls['search'] % ( cat_id = self.getCatId(quality)[0]
self.getCatId(quality['identifier'])[0], url = self.urls['search'] % (cat_id, cat_id)
self.getCatId(quality['identifier'])[0]
)
arguments = tryUrlencode({ arguments = tryUrlencode({
'search': fireEvent('library.query', media, single = True), 'search': fireEvent('library.query', media, single = True),
@@ -12,8 +12,8 @@ autoload = 'ThePirateBay'
class ThePirateBay(MovieProvider, Base): class ThePirateBay(MovieProvider, Base):
cat_ids = [ cat_ids = [
([207], ['720p', '1080p']),
([209], ['3d']), ([209], ['3d']),
([207], ['720p', '1080p']),
([201], ['cam', 'ts', 'dvdrip', 'tc', 'r5', 'scr']), ([201], ['cam', 'ts', 'dvdrip', 'tc', 'r5', 'scr']),
([201, 207], ['brrip']), ([201, 207], ['brrip']),
([202], ['dvdr']) ([202], ['dvdr'])
@@ -24,5 +24,5 @@ class TorrentLeech(MovieProvider, Base):
def buildUrl(self, media, quality): def buildUrl(self, media, quality):
return ( return (
tryUrlencode(fireEvent('library.query', media, single = True)), tryUrlencode(fireEvent('library.query', media, single = True)),
self.getCatId(quality['identifier'])[0] self.getCatId(quality)[0]
) )
@@ -31,6 +31,6 @@ class TorrentShack(MovieProvider, Base):
def buildUrl(self, media, quality): def buildUrl(self, media, quality):
query = (tryUrlencode(fireEvent('library.query', media, single = True)), query = (tryUrlencode(fireEvent('library.query', media, single = True)),
self.getCatId(quality['identifier'])[0], self.getCatId(quality)[0],
self.getSceneOnly()) self.getSceneOnly())
return query return query