From 2ccdc8ffdc402060a8987dc3dea3d0ba83138ed7 Mon Sep 17 00:00:00 2001 From: Ruud Date: Sat, 22 Mar 2014 22:00:26 +0100 Subject: [PATCH] Allow 3d categories --- couchpotato/core/media/_base/providers/base.py | 10 ++++++++-- .../core/media/_base/providers/nzb/omgwtfnzbs.py | 2 +- .../media/_base/providers/torrent/ilovetorrents.py | 2 +- .../core/media/_base/providers/torrent/iptorrents.py | 8 ++++---- .../media/_base/providers/torrent/kickasstorrents.py | 2 +- .../core/media/_base/providers/torrent/thepiratebay.py | 2 +- .../core/media/_base/providers/torrent/torrentbytes.py | 2 +- .../core/media/movie/providers/torrent/bitsoup.py | 4 ++-- .../core/media/movie/providers/torrent/iptorrents.py | 4 ++-- .../core/media/movie/providers/torrent/sceneaccess.py | 6 ++---- .../core/media/movie/providers/torrent/thepiratebay.py | 2 +- .../core/media/movie/providers/torrent/torrentleech.py | 2 +- .../core/media/movie/providers/torrent/torrentshack.py | 2 +- 13 files changed, 26 insertions(+), 22 deletions(-) diff --git a/couchpotato/core/media/_base/providers/base.py b/couchpotato/core/media/_base/providers/base.py index 13f0f6e0..4476bc49 100644 --- a/couchpotato/core/media/_base/providers/base.py +++ b/couchpotato/core/media/_base/providers/base.py @@ -244,10 +244,16 @@ class YarrProvider(Provider): 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: - if identifier in qualities: + if identifier in qualities or (want_3d and '3d' in qualities): return ids if self.cat_backup_id: diff --git a/couchpotato/core/media/_base/providers/nzb/omgwtfnzbs.py b/couchpotato/core/media/_base/providers/nzb/omgwtfnzbs.py index ab9efbda..fe0338a5 100644 --- a/couchpotato/core/media/_base/providers/nzb/omgwtfnzbs.py +++ b/couchpotato/core/media/_base/providers/nzb/omgwtfnzbs.py @@ -42,7 +42,7 @@ class Base(NZBProvider, RSS): q = '%s %s' % (title, movie['info']['year']) params = tryUrlencode({ '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 = ''), 'api': self.conf('api_key', default = ''), }) diff --git a/couchpotato/core/media/_base/providers/torrent/ilovetorrents.py b/couchpotato/core/media/_base/providers/torrent/ilovetorrents.py index d9db53b5..9a9cd63a 100644 --- a/couchpotato/core/media/_base/providers/torrent/ilovetorrents.py +++ b/couchpotato/core/media/_base/providers/torrent/ilovetorrents.py @@ -36,7 +36,7 @@ class Base(TorrentProvider): page = 0 total_pages = 1 - cats = self.getCatId(quality['identifier']) + cats = self.getCatId(quality) while page < total_pages: diff --git a/couchpotato/core/media/_base/providers/torrent/iptorrents.py b/couchpotato/core/media/_base/providers/torrent/iptorrents.py index 4b9bd79c..d36ba799 100644 --- a/couchpotato/core/media/_base/providers/torrent/iptorrents.py +++ b/couchpotato/core/media/_base/providers/torrent/iptorrents.py @@ -25,14 +25,14 @@ class Base(TorrentProvider): cat_backup_id = None 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: - 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 self.urls['search'] % ("&".join(("l%d=" % x) for x in cat_ids), tryUrlencode(query).replace('%', '%%')) diff --git a/couchpotato/core/media/_base/providers/torrent/kickasstorrents.py b/couchpotato/core/media/_base/providers/torrent/kickasstorrents.py index b347ccbe..1cfb5700 100644 --- a/couchpotato/core/media/_base/providers/torrent/kickasstorrents.py +++ b/couchpotato/core/media/_base/providers/torrent/kickasstorrents.py @@ -42,7 +42,7 @@ class Base(TorrentMagnetProvider): if data: - cat_ids = self.getCatId(quality['identifier']) + cat_ids = self.getCatId(quality) table_order = ['name', 'size', None, 'age', 'seeds', 'leechers'] try: diff --git a/couchpotato/core/media/_base/providers/torrent/thepiratebay.py b/couchpotato/core/media/_base/providers/torrent/thepiratebay.py index 4d819619..26eeb6e1 100644 --- a/couchpotato/core/media/_base/providers/torrent/thepiratebay.py +++ b/couchpotato/core/media/_base/providers/torrent/thepiratebay.py @@ -39,7 +39,7 @@ class Base(TorrentMagnetProvider): page = 0 total_pages = 1 - cats = self.getCatId(quality['identifier']) + cats = self.getCatId(quality) base_search_url = self.urls['search'] % self.getDomain() diff --git a/couchpotato/core/media/_base/providers/torrent/torrentbytes.py b/couchpotato/core/media/_base/providers/torrent/torrentbytes.py index afb66eb3..c01a6d7f 100644 --- a/couchpotato/core/media/_base/providers/torrent/torrentbytes.py +++ b/couchpotato/core/media/_base/providers/torrent/torrentbytes.py @@ -36,7 +36,7 @@ class Base(TorrentProvider): 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) if data: diff --git a/couchpotato/core/media/movie/providers/torrent/bitsoup.py b/couchpotato/core/media/movie/providers/torrent/bitsoup.py index bdc6cd4e..c351ab9f 100644 --- a/couchpotato/core/media/movie/providers/torrent/bitsoup.py +++ b/couchpotato/core/media/movie/providers/torrent/bitsoup.py @@ -11,8 +11,8 @@ autoload = 'Bitsoup' class Bitsoup(MovieProvider, Base): cat_ids = [ - ([41], ['720p', '1080p']), ([17], ['3d']), + ([41], ['720p', '1080p']), ([20], ['dvdr']), ([19], ['brrip', 'dvdrip']), ] @@ -24,6 +24,6 @@ class Bitsoup(MovieProvider, Base): fireEvent('library.query', media, include_year = False, single = True), media['info']['year'] ), - 'cat': self.getCatId(quality['identifier'])[0], + 'cat': self.getCatId(quality)[0], }) return query diff --git a/couchpotato/core/media/movie/providers/torrent/iptorrents.py b/couchpotato/core/media/movie/providers/torrent/iptorrents.py index 34105133..f06aadfc 100644 --- a/couchpotato/core/media/movie/providers/torrent/iptorrents.py +++ b/couchpotato/core/media/movie/providers/torrent/iptorrents.py @@ -10,8 +10,8 @@ autoload = 'IPTorrents' class IPTorrents(MovieProvider, Base): cat_ids = [ - ([48], ['720p', '1080p', 'bd50']), ([87], ['3d']), + ([48], ['720p', '1080p', 'bd50']), ([72], ['cam', 'ts', 'tc', 'r5', 'scr']), ([7], ['dvdrip', 'brrip']), ([6], ['dvdr']), @@ -20,4 +20,4 @@ class IPTorrents(MovieProvider, Base): def buildUrl(self, title, media, quality): query = '%s %s' % (title.replace(':', ''), media['info']['year']) - return self._buildUrl(query, quality['identifier']) + return self._buildUrl(query, quality) diff --git a/couchpotato/core/media/movie/providers/torrent/sceneaccess.py b/couchpotato/core/media/movie/providers/torrent/sceneaccess.py index 2a778391..dee4b32c 100644 --- a/couchpotato/core/media/movie/providers/torrent/sceneaccess.py +++ b/couchpotato/core/media/movie/providers/torrent/sceneaccess.py @@ -18,10 +18,8 @@ class SceneAccess(MovieProvider, Base): ] def buildUrl(self, media, quality): - url = self.urls['search'] % ( - self.getCatId(quality['identifier'])[0], - self.getCatId(quality['identifier'])[0] - ) + cat_id = self.getCatId(quality)[0] + url = self.urls['search'] % (cat_id, cat_id) arguments = tryUrlencode({ 'search': fireEvent('library.query', media, single = True), diff --git a/couchpotato/core/media/movie/providers/torrent/thepiratebay.py b/couchpotato/core/media/movie/providers/torrent/thepiratebay.py index 9233fe73..4990a579 100644 --- a/couchpotato/core/media/movie/providers/torrent/thepiratebay.py +++ b/couchpotato/core/media/movie/providers/torrent/thepiratebay.py @@ -12,8 +12,8 @@ autoload = 'ThePirateBay' class ThePirateBay(MovieProvider, Base): cat_ids = [ - ([207], ['720p', '1080p']), ([209], ['3d']), + ([207], ['720p', '1080p']), ([201], ['cam', 'ts', 'dvdrip', 'tc', 'r5', 'scr']), ([201, 207], ['brrip']), ([202], ['dvdr']) diff --git a/couchpotato/core/media/movie/providers/torrent/torrentleech.py b/couchpotato/core/media/movie/providers/torrent/torrentleech.py index 07ace2b9..9ab1580e 100644 --- a/couchpotato/core/media/movie/providers/torrent/torrentleech.py +++ b/couchpotato/core/media/movie/providers/torrent/torrentleech.py @@ -24,5 +24,5 @@ class TorrentLeech(MovieProvider, Base): def buildUrl(self, media, quality): return ( tryUrlencode(fireEvent('library.query', media, single = True)), - self.getCatId(quality['identifier'])[0] + self.getCatId(quality)[0] ) diff --git a/couchpotato/core/media/movie/providers/torrent/torrentshack.py b/couchpotato/core/media/movie/providers/torrent/torrentshack.py index 24ac863a..85e420dd 100644 --- a/couchpotato/core/media/movie/providers/torrent/torrentshack.py +++ b/couchpotato/core/media/movie/providers/torrent/torrentshack.py @@ -31,6 +31,6 @@ class TorrentShack(MovieProvider, Base): def buildUrl(self, media, quality): query = (tryUrlencode(fireEvent('library.query', media, single = True)), - self.getCatId(quality['identifier'])[0], + self.getCatId(quality)[0], self.getSceneOnly()) return query