Allow 3d categories
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user