From fc3cf086751245486536f9c7443c3c24e10a368d Mon Sep 17 00:00:00 2001 From: Dean Gardiner Date: Wed, 18 Dec 2013 20:37:42 +1300 Subject: [PATCH 1/5] Moved 'searcher.get_search_title' to 'library.title', include_identifier is enabled by default now and title condensing can be enabled by the 'condense' parameter now. --- couchpotato/core/media/_base/searcher/main.py | 2 +- .../core/media/movie/library/movie/main.py | 16 +++++ couchpotato/core/media/movie/searcher/main.py | 13 +---- .../core/media/show/library/episode/main.py | 33 +++++++++++ .../core/media/show/library/season/main.py | 34 +++++++++++ .../core/media/show/library/show/main.py | 27 +++++++++ couchpotato/core/media/show/searcher/main.py | 58 +------------------ couchpotato/core/providers/base.py | 2 +- .../core/providers/nzb/binsearch/main.py | 4 +- .../core/providers/nzb/newznab/main.py | 4 +- .../core/providers/nzb/nzbclub/main.py | 6 +- .../core/providers/nzb/nzbindex/main.py | 6 +- .../core/providers/torrent/bithdtv/main.py | 9 +-- .../core/providers/torrent/publichd/main.py | 6 +- .../providers/torrent/sceneaccess/main.py | 6 +- .../providers/torrent/thepiratebay/main.py | 12 ++-- .../core/providers/torrent/torrentday/main.py | 6 +- .../providers/torrent/torrentleech/main.py | 12 ++-- .../providers/torrent/torrentpotato/main.py | 4 +- .../providers/torrent/torrentshack/main.py | 9 +-- 20 files changed, 153 insertions(+), 116 deletions(-) diff --git a/couchpotato/core/media/_base/searcher/main.py b/couchpotato/core/media/_base/searcher/main.py index 0f76bf88..81d248b1 100644 --- a/couchpotato/core/media/_base/searcher/main.py +++ b/couchpotato/core/media/_base/searcher/main.py @@ -171,7 +171,7 @@ class Searcher(SearcherBase): return False def correctWords(self, rel_name, media): - media_title = fireEvent('searcher.get_search_title', media['library'], single = True) + media_title = fireEvent('library.title', media['library'], include_identifier = False, single = True) media_words = re.split('\W+', simplifyString(media_title)) rel_name = simplifyString(rel_name) diff --git a/couchpotato/core/media/movie/library/movie/main.py b/couchpotato/core/media/movie/library/movie/main.py index 49187544..91532ada 100644 --- a/couchpotato/core/media/movie/library/movie/main.py +++ b/couchpotato/core/media/movie/library/movie/main.py @@ -16,10 +16,26 @@ class MovieLibraryPlugin(LibraryBase): default_dict = {'titles': {}, 'files':{}} def __init__(self): + addEvent('library.title', self.title) addEvent('library.add.movie', self.add) addEvent('library.update.movie', self.update) addEvent('library.update.movie.release_date', self.updateReleaseDate) + def title(self, library, first = True, condense = False, include_identifier = True): + if library.get('type') != 'movie': + return + + titles = [title['title'] for title in library['titles']] + + # Add year identifier to titles + if include_identifier: + titles = [title + (' %s' % str(library['year'])) for title in titles] + + if first: + return titles[0] if titles else None + + return titles + def add(self, attrs = {}, update_after = True): # movies don't yet contain these, so lets make sure to set defaults type = attrs.get('type', 'movie') diff --git a/couchpotato/core/media/movie/searcher/main.py b/couchpotato/core/media/movie/searcher/main.py index c0eb6e03..ff56de07 100644 --- a/couchpotato/core/media/movie/searcher/main.py +++ b/couchpotato/core/media/movie/searcher/main.py @@ -30,7 +30,6 @@ class MovieSearcher(SearcherBase, MovieTypeBase): addEvent('movie.searcher.try_next_release', self.tryNextRelease) addEvent('movie.searcher.could_be_released', self.couldBeReleased) addEvent('searcher.correct_release', self.correctRelease) - addEvent('searcher.get_search_title', self.getSearchTitle) addApiView('movie.searcher.try_next', self.tryNextReleaseView, docs = { 'desc': 'Marks the snatched results as ignored and try the next best release', @@ -210,7 +209,7 @@ class MovieSearcher(SearcherBase, MovieTypeBase): if media.get('type') != 'movie': return - media_title = fireEvent('searcher.get_search_title', media['library'], single = True) + media_title = fireEvent('library.title', media['library'], include_identifier = False, single = True) imdb_results = kwargs.get('imdb_results', False) retention = Env.setting('retention', section = 'nzb') @@ -343,15 +342,5 @@ class MovieSearcher(SearcherBase, MovieTypeBase): log.error('Failed searching for next release: %s', traceback.format_exc()) return False - def getSearchTitle(self, library, include_identifier = False): - if library['type'] == 'movie': - title = getTitle(library) - - # Use year as identifier - if include_identifier: - title += ' %s' % str(library['year']) - - return title - class SearchSetupError(Exception): pass diff --git a/couchpotato/core/media/show/library/episode/main.py b/couchpotato/core/media/show/library/episode/main.py index 09cacd9d..746f830a 100644 --- a/couchpotato/core/media/show/library/episode/main.py +++ b/couchpotato/core/media/show/library/episode/main.py @@ -17,11 +17,44 @@ class EpisodeLibraryPlugin(LibraryBase): default_dict = {'titles': {}, 'files':{}} def __init__(self): + addEvent('library.title', self.title) addEvent('library.identifier', self.identifier) addEvent('library.add.episode', self.add) addEvent('library.update.episode', self.update) addEvent('library.update.episode_release_date', self.updateReleaseDate) + def title(self, library, first=True, condense=False, include_identifier=True): + if library is list or library.get('type') != 'episode': + return + + # Get the titles of the season + if not library.get('related_libraries', {}).get('season', []): + log.warning('Invalid library, unable to determine title.') + return + + titles = fireEvent( + 'library.title', + library['related_libraries']['season'][0], + first=False, + include_identifier=include_identifier, + condense=condense, + + single=True + ) + + identifier = fireEvent('library.identifier', library, single = True) + + # Add episode identifier to titles + if include_identifier and identifier.get('episode'): + titles = [title + ('E%02d' % identifier['episode']) for title in titles] + + + if first: + return titles[0] if titles else None + + return titles + + def identifier(self, library): if library.get('type') != 'episode': return diff --git a/couchpotato/core/media/show/library/season/main.py b/couchpotato/core/media/show/library/season/main.py index 11cf2771..2f618770 100644 --- a/couchpotato/core/media/show/library/season/main.py +++ b/couchpotato/core/media/show/library/season/main.py @@ -17,11 +17,45 @@ class SeasonLibraryPlugin(LibraryBase): default_dict = {'titles': {}, 'files':{}} def __init__(self): + addEvent('library.title', self.title) addEvent('library.identifier', self.identifier) addEvent('library.add.season', self.add) addEvent('library.update.season', self.update) addEvent('library.update.season_release_date', self.updateReleaseDate) + def title(self, library, first=True, condense=False, include_identifier=True): + if library is list or library.get('type') != 'season': + return + + # Get the titles of the show + if not library.get('related_libraries', {}).get('show', []): + log.warning('Invalid library, unable to determine title.') + return + + titles = fireEvent('library.title', library['related_libraries']['show'][0], first=False, condense=condense, single=True) + + # Add season map_names if they exist + if 'map_names' in library['info']: + season_names = library['info']['map_names'].get(str(library['season_number']), {}) + + # Add titles from all locations + # TODO only add name maps from a specific location + for location, names in season_names.items(): + titles += [name for name in names if name and name not in titles] + + + identifier = fireEvent('library.identifier', library, single = True) + + # Add season identifier to titles + if include_identifier and identifier.get('season') is not None: + titles = [title + (' S%02d' % identifier['season']) for title in titles] + + + if first: + return titles[0] if titles else None + + return titles + def identifier(self, library): if library.get('type') != 'season': return diff --git a/couchpotato/core/media/show/library/show/main.py b/couchpotato/core/media/show/library/show/main.py index 944ab96a..db7f81f8 100644 --- a/couchpotato/core/media/show/library/show/main.py +++ b/couchpotato/core/media/show/library/show/main.py @@ -4,6 +4,8 @@ from couchpotato.core.helpers.encoding import toUnicode, simplifyString from couchpotato.core.logger import CPLog from couchpotato.core.settings.model import ShowLibrary, LibraryTitle, File from couchpotato.core.media._base.library import LibraryBase +from qcond.helpers import simplify +from qcond import QueryCondenser from string import ascii_letters import time import traceback @@ -16,10 +18,35 @@ class ShowLibraryPlugin(LibraryBase): default_dict = {'titles': {}, 'files':{}} def __init__(self): + self.query_condenser = QueryCondenser() + + addEvent('library.title', self.title) addEvent('library.add.show', self.add) addEvent('library.update.show', self.update) addEvent('library.update.show_release_date', self.updateReleaseDate) + def title(self, library, first=True, condense=False, include_identifier=None): + if library is list or library.get('type') != 'show': + return + + titles = [title['title'] for title in library['titles']] + + if condense: + # Use QueryCondenser to build a list of optimal search titles + condensed_titles = self.query_condenser.distinct(titles) + + if condensed_titles: + # Use condensed titles if we got a valid result + titles = condensed_titles + else: + # Fallback to simplifying titles + titles = [simplify(title) for title in titles] + + if first: + return titles[0] if titles else None + + return titles + def add(self, attrs = {}, update_after = True): type = attrs.get('type', 'show') primary_provider = attrs.get('primary_provider', 'thetvdb') diff --git a/couchpotato/core/media/show/searcher/main.py b/couchpotato/core/media/show/searcher/main.py index f56a0f9f..ab861614 100644 --- a/couchpotato/core/media/show/searcher/main.py +++ b/couchpotato/core/media/show/searcher/main.py @@ -26,7 +26,6 @@ class ShowSearcher(Plugin): for type in toIterable(self.type): addEvent('%s.searcher.single' % type, self.single) - addEvent('searcher.get_search_title', self.getSearchTitle) addEvent('searcher.correct_release', self.correctRelease) def single(self, media, search_protocols = None, manual = False): @@ -61,7 +60,7 @@ class ShowSearcher(Plugin): found_releases = [] too_early_to_search = [] - default_title = self.getSearchTitle(media['library']) + default_title = fireEvent('library.title', media['library'], single=True) if not default_title: log.error('No proper info found for episode, removing it from library to cause it from having more issues.') #fireEvent('episode.delete', episode['id'], single = True) @@ -145,61 +144,6 @@ class ShowSearcher(Plugin): return ret - def getSearchTitle(self, library, include_identifier = False): - if library['type'] not in ['show', 'season', 'episode']: - return - - show, season, episode = self.getLibraries(library) - - if not show: - return None - - titles = [] - - # Add season map_names if they exist - if season is not None and 'map_names' in show['info']: - season_names = show['info']['map_names'].get(str(season['season_number']), {}) - - # Add titles from all locations - # TODO only add name maps from a specific location - for location, names in season_names.items(): - titles += [name for name in names if name not in titles] - - # Add show titles - titles += [title['title'] for title in show['titles'] if title['title'] not in titles] - - # Use QueryCondenser to build a list of optimal search titles - condensed_titles = self.query_condenser.distinct(titles) - - title = None - - # TODO try other titles if searching doesn't return results - - if len(condensed_titles): - # Return the first condensed title if one exists - title = condensed_titles[0] - elif len(titles): - # Fallback to first raw title - title = simplify(titles[0]) - else: - return None - - # Return show title if we aren't including the identifier - if not include_identifier: - return title - - # Add the identifier to search title - identifier = fireEvent('library.identifier', library, single = True) - - # TODO this needs to support other identifier formats - if identifier['season']: - title += ' S%02d' % identifier['season'] - - if identifier.get('episode'): - title += 'E%02d' % identifier['episode'] - - return title - def correctRelease(self, release = None, media = None, quality = None, **kwargs): if media.get('type') not in ['season', 'episode']: return diff --git a/couchpotato/core/providers/base.py b/couchpotato/core/providers/base.py index 6ef59380..1d7015ba 100644 --- a/couchpotato/core/providers/base.py +++ b/couchpotato/core/providers/base.py @@ -207,7 +207,7 @@ class YarrProvider(Provider): self._search(media, quality, results) # Search possible titles else: - media_title = fireEvent('searcher.get_search_title', media['library'], include_identifier = True, single = True) + media_title = fireEvent('library.title', media['library'], condense = True, single = True) for title in possibleTitles(media_title): self._searchOnTitle(title, media, quality, results) diff --git a/couchpotato/core/providers/nzb/binsearch/main.py b/couchpotato/core/providers/nzb/binsearch/main.py index bc5662c2..819c589a 100644 --- a/couchpotato/core/providers/nzb/binsearch/main.py +++ b/couchpotato/core/providers/nzb/binsearch/main.py @@ -117,7 +117,7 @@ class Season(SeasonProvider, Base): def buildUrl(self, media, quality): query = tryUrlencode({ - 'q': fireEvent('searcher.get_search_title', media['library'], include_identifier = True, single = True), + 'q': fireEvent('library.title', media['library'], condense = True, single = True), 'm': 'n', 'max': 400, 'adv_age': Env.setting('retention', 'nzb'), @@ -133,7 +133,7 @@ class Episode(EpisodeProvider, Base): def buildUrl(self, media, quality): query = tryUrlencode({ - 'q': fireEvent('searcher.get_search_title', media['library'], include_identifier = True, single = True), + 'q': fireEvent('library.title', media['library'], condense = True, single = True), 'm': 'n', 'max': 400, 'adv_age': Env.setting('retention', 'nzb'), diff --git a/couchpotato/core/providers/nzb/newznab/main.py b/couchpotato/core/providers/nzb/newznab/main.py index c1febd44..bc75c36b 100644 --- a/couchpotato/core/providers/nzb/newznab/main.py +++ b/couchpotato/core/providers/nzb/newznab/main.py @@ -200,7 +200,7 @@ class Movie(MovieProvider, Base): class Season(SeasonProvider, Base): def buildUrl(self, media, api_key): - search_title = fireEvent('searcher.get_search_title', media['library'], single = True) + search_title = fireEvent('library.title', media['library'], condense = True, include_identifier = False, single = True) identifier = fireEvent('library.identifier', media['library'], single = True) query = tryUrlencode({ @@ -215,7 +215,7 @@ class Season(SeasonProvider, Base): class Episode(EpisodeProvider, Base): def buildUrl(self, media, api_key): - search_title = fireEvent('searcher.get_search_title', media['library'], single = True) + search_title = fireEvent('library.title', media['library'], condense = True, include_identifier = False, single = True) identifier = fireEvent('library.identifier', media['library'], single = True) query = tryUrlencode({ diff --git a/couchpotato/core/providers/nzb/nzbclub/main.py b/couchpotato/core/providers/nzb/nzbclub/main.py index 2de94df0..cd0340d4 100644 --- a/couchpotato/core/providers/nzb/nzbclub/main.py +++ b/couchpotato/core/providers/nzb/nzbclub/main.py @@ -80,7 +80,7 @@ class Movie(MovieProvider, Base): def buildUrl(self, media): query = tryUrlencode({ - 'q': '"%s %s"' % (fireEvent('searcher.get_search_title', media['library'], include_identifier = True, + 'q': '"%s %s"' % (fireEvent('library.title', media['library'], condense = True, single = True), media['library']['year']), 'ig': 1, 'rpp': 200, @@ -94,7 +94,7 @@ class Season(SeasonProvider, Base): def buildUrl(self, media): query = tryUrlencode({ - 'q': fireEvent('searcher.get_search_title', media['library'], include_identifier = True, single = True), + 'q': fireEvent('library.title', media['library'], condense = True, single = True), 'ig': 1, 'rpp': 200, 'st': 5, @@ -107,7 +107,7 @@ class Episode(EpisodeProvider, Base): def buildUrl(self, media): query = tryUrlencode({ - 'q': fireEvent('searcher.get_search_title', media['library'], include_identifier = True, single = True), + 'q': fireEvent('library.title', media['library'], condense = True, single = True), 'ig': 1, 'rpp': 200, 'st': 5, diff --git a/couchpotato/core/providers/nzb/nzbindex/main.py b/couchpotato/core/providers/nzb/nzbindex/main.py index 73435420..7e96a274 100644 --- a/couchpotato/core/providers/nzb/nzbindex/main.py +++ b/couchpotato/core/providers/nzb/nzbindex/main.py @@ -104,7 +104,7 @@ class Base(NZBProvider, RSS): class Movie(MovieProvider, Base): def buildUrl(self, media, quality): - title = fireEvent('searcher.get_search_title', media['library'], single = True) + title = fireEvent('library.title', media['library'], condense = True, include_identifier = False, single = True) year = media['library']['year'] query = tryUrlencode({ @@ -124,7 +124,7 @@ class Season(SeasonProvider, Base): def buildUrl(self, media, quality): query = tryUrlencode({ - 'q': fireEvent('searcher.get_search_title', media['library'], include_identifier = True, single = True), + 'q': fireEvent('library.title', media['library'], condense = True, single = True), 'age': Env.setting('retention', 'nzb'), 'sort': 'agedesc', 'minsize': quality.get('size_min'), @@ -140,7 +140,7 @@ class Episode(EpisodeProvider, Base): def buildUrl(self, media, quality): query = tryUrlencode({ - 'q': fireEvent('searcher.get_search_title', media['library'], include_identifier = True, single = True), + 'q': fireEvent('library.title', media['library'], condense = True, single = True), 'age': Env.setting('retention', 'nzb'), 'sort': 'agedesc', 'minsize': quality.get('size_min'), diff --git a/couchpotato/core/providers/torrent/bithdtv/main.py b/couchpotato/core/providers/torrent/bithdtv/main.py index 85ec5e3a..4b271761 100644 --- a/couchpotato/core/providers/torrent/bithdtv/main.py +++ b/couchpotato/core/providers/torrent/bithdtv/main.py @@ -95,8 +95,7 @@ class Movie(MovieProvider, Base): def buildUrl(self, media): query = tryUrlencode({ - 'search': fireEvent('searcher.get_search_title', media['library'], - include_identifier = True, single = True), + 'search': fireEvent('library.title', media['library'], condense = True, single = True), 'cat': 7 # Movie cat }) return query @@ -105,8 +104,7 @@ class Season(SeasonProvider, Base): def buildUrl(self, media): query = tryUrlencode({ - 'search': fireEvent('searcher.get_search_title', media['library'], - include_identifier = True, single = True), + 'search': fireEvent('library.title', media['library'], condense = True, single = True), 'cat': 12 # Season cat }) return query @@ -115,8 +113,7 @@ class Episode(EpisodeProvider, Base): def buildUrl(self, media): query = tryUrlencode({ - 'search': fireEvent('searcher.get_search_title', media['library'], - include_identifier = True, single = True), + 'search': fireEvent('library.title', media['library'], condense = True, single = True), 'cat': 10 # Episode cat }) return query \ No newline at end of file diff --git a/couchpotato/core/providers/torrent/publichd/main.py b/couchpotato/core/providers/torrent/publichd/main.py index b5d9e96f..f033693a 100644 --- a/couchpotato/core/providers/torrent/publichd/main.py +++ b/couchpotato/core/providers/torrent/publichd/main.py @@ -99,14 +99,14 @@ class Base(TorrentMagnetProvider): class Movie(MovieProvider, Base): def buildUrl(self, media): - return fireEvent('searcher.get_search_title', media['library'], include_identifier = True, single = True) + return fireEvent('library.title', media['library'], condense = True, single = True) class Season(SeasonProvider, Base): def buildUrl(self, media): - return fireEvent('searcher.get_search_title', media['library'], include_identifier = True, single = True) + return fireEvent('library.title', media['library'], condense = True, single = True) class Episode(EpisodeProvider, Base): def buildUrl(self, media): - return fireEvent('searcher.get_search_title', media['library'], include_identifier = True, single = True) \ No newline at end of file + return fireEvent('library.title', media['library'], condense = True, single = True) \ No newline at end of file diff --git a/couchpotato/core/providers/torrent/sceneaccess/main.py b/couchpotato/core/providers/torrent/sceneaccess/main.py index e2261e53..135f88cf 100644 --- a/couchpotato/core/providers/torrent/sceneaccess/main.py +++ b/couchpotato/core/providers/torrent/sceneaccess/main.py @@ -104,7 +104,7 @@ class Movie(MovieProvider, Base): ) arguments = tryUrlencode({ - 'search': fireEvent('searcher.get_search_title', media['library'], include_identifier = True, single = True), + 'search': fireEvent('library.title', media['library'], condense = True, single = True), 'method': 2, }) query = "%s&%s" % (url, arguments) @@ -124,7 +124,7 @@ class Season(SeasonProvider, Base): ) arguments = tryUrlencode({ - 'search': fireEvent('searcher.get_search_title', media['library'], include_identifier = True, single = True), + 'search': fireEvent('library.title', media['library'], condense = True, single = True), 'method': 2, }) query = "%s&%s" % (url, arguments) @@ -145,7 +145,7 @@ class Episode(EpisodeProvider, Base): ) arguments = tryUrlencode({ - 'search': fireEvent('searcher.get_search_title', media['library'], include_identifier = True, single = True), + 'search': fireEvent('library.title', media['library'], condense = True, single = True), 'method': 2, }) query = "%s&%s" % (url, arguments) diff --git a/couchpotato/core/providers/torrent/thepiratebay/main.py b/couchpotato/core/providers/torrent/thepiratebay/main.py index 8282470f..c3576475 100644 --- a/couchpotato/core/providers/torrent/thepiratebay/main.py +++ b/couchpotato/core/providers/torrent/thepiratebay/main.py @@ -130,8 +130,8 @@ class Movie(MovieProvider, Base): ] def buildUrl(self, media, page, cats): - return tryUrlencode('"%s"' % fireEvent('searcher.get_search_title', media['library'], - include_identifier = True, single = True)), page, ','.join(str(x) for x in cats) + return tryUrlencode('"%s"' % fireEvent('library.title', media['library'], + condense = True, single = True)), page, ','.join(str(x) for x in cats) class Season(SeasonProvider, Base): @@ -141,8 +141,8 @@ class Season(SeasonProvider, Base): ] def buildUrl(self, media, page, cats): - return tryUrlencode('"%s"' % fireEvent('searcher.get_search_title', media['library'], - include_identifier = True, single = True)), page, ','.join(str(x) for x in cats) + return tryUrlencode('"%s"' % fireEvent('library.title', media['library'], + condense = True, single = True)), page, ','.join(str(x) for x in cats) class Episode(EpisodeProvider, Base): @@ -152,5 +152,5 @@ class Episode(EpisodeProvider, Base): ] def buildUrl(self, media, page, cats): - return tryUrlencode('"%s"' % fireEvent('searcher.get_search_title', media['library'], - include_identifier = True, single = True)), page, ','.join(str(x) for x in cats) + return tryUrlencode('"%s"' % fireEvent('library.title', media['library'], + condense = True, single = True)), page, ','.join(str(x) for x in cats) diff --git a/couchpotato/core/providers/torrent/torrentday/main.py b/couchpotato/core/providers/torrent/torrentday/main.py index 36c2bd12..5c1c46b9 100644 --- a/couchpotato/core/providers/torrent/torrentday/main.py +++ b/couchpotato/core/providers/torrent/torrentday/main.py @@ -76,7 +76,7 @@ class Movie(MovieProvider, Base): ([5], ['bd50']), ] def buildUrl(self, media): - return fireEvent('searcher.get_search_title', media['library'], include_identifier = True, single = True) + return fireEvent('library.title', media['library'], condense = True, single = True) class Season(SeasonProvider, Base): @@ -84,7 +84,7 @@ class Season(SeasonProvider, Base): ([14], ['hdtv_sd', 'hdtv_720p', 'webdl_720p', 'webdl_1080p']), ] def buildUrl(self, media): - return fireEvent('searcher.get_search_title', media['library'], include_identifier = True, single = True) + return fireEvent('library.title', media['library'], condense = True, single = True) class Episode(EpisodeProvider, Base): cat_ids = [ @@ -92,5 +92,5 @@ class Episode(EpisodeProvider, Base): ([2], [24], [26], ['hdtv_sd']) ] def buildUrl(self, media): - return fireEvent('searcher.get_search_title', media['library'], include_identifier = True, single = True) + return fireEvent('library.title', media['library'], condense = True, single = True) diff --git a/couchpotato/core/providers/torrent/torrentleech/main.py b/couchpotato/core/providers/torrent/torrentleech/main.py index 612a8e90..35d64f22 100644 --- a/couchpotato/core/providers/torrent/torrentleech/main.py +++ b/couchpotato/core/providers/torrent/torrentleech/main.py @@ -90,8 +90,8 @@ class Movie(MovieProvider, Base): ] def buildUrl(self, media, quality): - return (tryUrlencode('%s' % fireEvent('searcher.get_search_title', - media['library'], include_identifier = True, single = True)), self.getCatId(quality['identifier'])[0]) + return (tryUrlencode('%s' % fireEvent('library.title', media['library'], condense = True, + single = True)), self.getCatId(quality['identifier'])[0]) class Season(SeasonProvider, Base): @@ -100,8 +100,8 @@ class Season(SeasonProvider, Base): ] def buildUrl(self, media, quality): - return (tryUrlencode('%s' % fireEvent('searcher.get_search_title', - media['library'], include_identifier = True, single = True)), self.getCatId(quality['identifier'])[0]) + return (tryUrlencode('%s' % fireEvent('library.title', media['library'], condense = True, + single = True)), self.getCatId(quality['identifier'])[0]) class Episode(EpisodeProvider, Base): @@ -111,5 +111,5 @@ class Episode(EpisodeProvider, Base): ] def buildUrl(self, media, quality): - return (tryUrlencode('%s' % fireEvent('searcher.get_search_title', - media['library'], include_identifier = True, single = True)), self.getCatId(quality['identifier'])[0]) + return (tryUrlencode('%s' % fireEvent('library.title', media['library'], condense = True, + single = True)), self.getCatId(quality['identifier'])[0]) diff --git a/couchpotato/core/providers/torrent/torrentpotato/main.py b/couchpotato/core/providers/torrent/torrentpotato/main.py index cf4bfb8b..4f95e9f7 100644 --- a/couchpotato/core/providers/torrent/torrentpotato/main.py +++ b/couchpotato/core/providers/torrent/torrentpotato/main.py @@ -144,7 +144,7 @@ class Season(SeasonProvider, Base): arguments = tryUrlencode({ 'user': host['name'], 'passkey': host['pass_key'], - 'search': fireEvent('searcher.get_search_title', media['library'], include_identifier = True, single = True) + 'search': fireEvent('library.title', media['library'], condense = True, single = True) }) return '%s?%s' % (host['host'], arguments) @@ -154,6 +154,6 @@ class Episode(EpisodeProvider, Base): arguments = tryUrlencode({ 'user': host['name'], 'passkey': host['pass_key'], - 'search': fireEvent('searcher.get_search_title', media['library'], include_identifier = True, single = True) + 'search': fireEvent('library.title', media['library'], condense = True, single = True) }) return '%s?%s' % (host['host'], arguments) diff --git a/couchpotato/core/providers/torrent/torrentshack/main.py b/couchpotato/core/providers/torrent/torrentshack/main.py index 8c2b09b5..ce291409 100644 --- a/couchpotato/core/providers/torrent/torrentshack/main.py +++ b/couchpotato/core/providers/torrent/torrentshack/main.py @@ -97,8 +97,7 @@ class Movie(MovieProvider, Base): cat_backup_id = 400 def buildUrl(self, media, quality): - query = (tryUrlencode('%s' % fireEvent('searcher.get_search_title', - media['library'], include_identifier = True, single = True)), + query = (tryUrlencode('%s' % fireEvent('library.title', media['library'], condense = True, single = True)), self.getCatId(quality['identifier'])[0], self.getSceneOnly()) return query @@ -116,8 +115,7 @@ class Season(SeasonProvider, Base): cat_backup_id = 980 def buildUrl(self, media, quality): - query = (tryUrlencode('%s' % fireEvent('searcher.get_search_title', - media['library'], include_identifier = True, single = True)), + query = (tryUrlencode('%s' % fireEvent('library.title', media['library'], condense = True, single = True)), self.getCatId(quality['identifier'])[0], self.getSceneOnly()) return query @@ -134,8 +132,7 @@ class Episode(EpisodeProvider, Base): cat_backup_id = 620 def buildUrl(self, media, quality): - query = (tryUrlencode('%s' % fireEvent('searcher.get_search_title', - media['library'], include_identifier = True, single = True)), + query = (tryUrlencode('%s' % fireEvent('library.title', media['library'], condense = True, single = True)), self.getCatId(quality['identifier'])[0], self.getSceneOnly()) return query From b3c2945d9bfb38cf70560c6b7f9e39b113580574 Mon Sep 17 00:00:00 2001 From: Dean Gardiner Date: Wed, 18 Dec 2013 20:38:14 +1300 Subject: [PATCH 2/5] 'related_libraries' and 'root_library' references are now added to child libraries. --- couchpotato/core/settings/model.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/couchpotato/core/settings/model.py b/couchpotato/core/settings/model.py index db9b5400..21f8be49 100644 --- a/couchpotato/core/settings/model.py +++ b/couchpotato/core/settings/model.py @@ -184,6 +184,15 @@ class Library(Entity): root_library = related_libraries.get(root_key) orig_dict['root_library'] = root_library[0] if root_library else None + # Add references to children + for key, libraries in related_libraries.items(): + for library in libraries: + # Add related_libraries + library['related_libraries'] = orig_dict['related_libraries'] + + # Add root_library + library['root_library'] = orig_dict['root_library'] + return orig_dict From e83a3cf263cbde4eca1a195e28b6cf2afa455aaf Mon Sep 17 00:00:00 2001 From: Dean Gardiner Date: Sat, 11 Jan 2014 15:55:20 +1300 Subject: [PATCH 3/5] Renamed movie library.title 'include_identifier' to 'include_year', show library.title defaults to 'condense' enabled now. --- couchpotato/core/media/_base/searcher/main.py | 8 ++++++- .../core/media/movie/library/movie/main.py | 4 ++-- couchpotato/core/media/movie/searcher/main.py | 8 ++++++- .../core/media/show/library/episode/main.py | 2 +- .../core/media/show/library/season/main.py | 11 ++++++++-- .../core/media/show/library/show/main.py | 2 +- couchpotato/core/media/show/searcher/main.py | 2 +- couchpotato/core/providers/base.py | 2 +- .../core/providers/nzb/binsearch/main.py | 6 +++--- .../core/providers/nzb/newznab/main.py | 4 ++-- .../core/providers/nzb/nzbclub/main.py | 7 +++---- .../core/providers/nzb/nzbindex/main.py | 6 +++--- .../core/providers/torrent/bithdtv/main.py | 6 +++--- .../core/providers/torrent/bitsoup/main.py | 13 ++++++------ .../core/providers/torrent/publichd/main.py | 6 +++--- .../providers/torrent/sceneaccess/main.py | 6 +++--- .../providers/torrent/thepiratebay/main.py | 21 +++++++++++++------ .../core/providers/torrent/torrentday/main.py | 6 +++--- .../providers/torrent/torrentleech/main.py | 18 ++++++++++------ .../providers/torrent/torrentpotato/main.py | 4 ++-- .../providers/torrent/torrentshack/main.py | 6 +++--- 21 files changed, 90 insertions(+), 58 deletions(-) diff --git a/couchpotato/core/media/_base/searcher/main.py b/couchpotato/core/media/_base/searcher/main.py index 81d248b1..70f1ec3a 100644 --- a/couchpotato/core/media/_base/searcher/main.py +++ b/couchpotato/core/media/_base/searcher/main.py @@ -171,7 +171,13 @@ class Searcher(SearcherBase): return False def correctWords(self, rel_name, media): - media_title = fireEvent('library.title', media['library'], include_identifier = False, single = True) + media_title = fireEvent( + 'library.title', media['library'], + condense = False, + include_year = False, + include_identifier = False, + single = True + ) media_words = re.split('\W+', simplifyString(media_title)) rel_name = simplifyString(rel_name) diff --git a/couchpotato/core/media/movie/library/movie/main.py b/couchpotato/core/media/movie/library/movie/main.py index 91532ada..dde81f5c 100644 --- a/couchpotato/core/media/movie/library/movie/main.py +++ b/couchpotato/core/media/movie/library/movie/main.py @@ -21,14 +21,14 @@ class MovieLibraryPlugin(LibraryBase): addEvent('library.update.movie', self.update) addEvent('library.update.movie.release_date', self.updateReleaseDate) - def title(self, library, first = True, condense = False, include_identifier = True): + def title(self, library, first = True, include_year = True, **kwargs): if library.get('type') != 'movie': return titles = [title['title'] for title in library['titles']] # Add year identifier to titles - if include_identifier: + if include_year: titles = [title + (' %s' % str(library['year'])) for title in titles] if first: diff --git a/couchpotato/core/media/movie/searcher/main.py b/couchpotato/core/media/movie/searcher/main.py index ff56de07..3288218f 100644 --- a/couchpotato/core/media/movie/searcher/main.py +++ b/couchpotato/core/media/movie/searcher/main.py @@ -209,7 +209,13 @@ class MovieSearcher(SearcherBase, MovieTypeBase): if media.get('type') != 'movie': return - media_title = fireEvent('library.title', media['library'], include_identifier = False, single = True) + media_title = fireEvent( + 'library.title', media['library'], + condense = False, + include_year = False, + include_identifier = False, + single = True + ) imdb_results = kwargs.get('imdb_results', False) retention = Env.setting('retention', section = 'nzb') diff --git a/couchpotato/core/media/show/library/episode/main.py b/couchpotato/core/media/show/library/episode/main.py index 746f830a..fb0a083b 100644 --- a/couchpotato/core/media/show/library/episode/main.py +++ b/couchpotato/core/media/show/library/episode/main.py @@ -23,7 +23,7 @@ class EpisodeLibraryPlugin(LibraryBase): addEvent('library.update.episode', self.update) addEvent('library.update.episode_release_date', self.updateReleaseDate) - def title(self, library, first=True, condense=False, include_identifier=True): + def title(self, library, first = True, condense = True, include_identifier = True, **kwargs): if library is list or library.get('type') != 'episode': return diff --git a/couchpotato/core/media/show/library/season/main.py b/couchpotato/core/media/show/library/season/main.py index 2f618770..0ceb657c 100644 --- a/couchpotato/core/media/show/library/season/main.py +++ b/couchpotato/core/media/show/library/season/main.py @@ -23,7 +23,7 @@ class SeasonLibraryPlugin(LibraryBase): addEvent('library.update.season', self.update) addEvent('library.update.season_release_date', self.updateReleaseDate) - def title(self, library, first=True, condense=False, include_identifier=True): + def title(self, library, first = True, condense = True, include_identifier = True, **kwargs): if library is list or library.get('type') != 'season': return @@ -32,7 +32,14 @@ class SeasonLibraryPlugin(LibraryBase): log.warning('Invalid library, unable to determine title.') return - titles = fireEvent('library.title', library['related_libraries']['show'][0], first=False, condense=condense, single=True) + titles = fireEvent( + 'library.title', + library['related_libraries']['show'][0], + first=False, + condense=condense, + + single=True + ) # Add season map_names if they exist if 'map_names' in library['info']: diff --git a/couchpotato/core/media/show/library/show/main.py b/couchpotato/core/media/show/library/show/main.py index db7f81f8..9e3aab18 100644 --- a/couchpotato/core/media/show/library/show/main.py +++ b/couchpotato/core/media/show/library/show/main.py @@ -25,7 +25,7 @@ class ShowLibraryPlugin(LibraryBase): addEvent('library.update.show', self.update) addEvent('library.update.show_release_date', self.updateReleaseDate) - def title(self, library, first=True, condense=False, include_identifier=None): + def title(self, library, first = True, condense = True, **kwargs): if library is list or library.get('type') != 'show': return diff --git a/couchpotato/core/media/show/searcher/main.py b/couchpotato/core/media/show/searcher/main.py index ab861614..14e3d1c5 100644 --- a/couchpotato/core/media/show/searcher/main.py +++ b/couchpotato/core/media/show/searcher/main.py @@ -60,7 +60,7 @@ class ShowSearcher(Plugin): found_releases = [] too_early_to_search = [] - default_title = fireEvent('library.title', media['library'], single=True) + default_title = fireEvent('library.title', media['library'], condense = False, single=True) if not default_title: log.error('No proper info found for episode, removing it from library to cause it from having more issues.') #fireEvent('episode.delete', episode['id'], single = True) diff --git a/couchpotato/core/providers/base.py b/couchpotato/core/providers/base.py index 1d7015ba..f530a42d 100644 --- a/couchpotato/core/providers/base.py +++ b/couchpotato/core/providers/base.py @@ -207,7 +207,7 @@ class YarrProvider(Provider): self._search(media, quality, results) # Search possible titles else: - media_title = fireEvent('library.title', media['library'], condense = True, single = True) + media_title = fireEvent('library.title', media['library'], single = True) for title in possibleTitles(media_title): self._searchOnTitle(title, media, quality, results) diff --git a/couchpotato/core/providers/nzb/binsearch/main.py b/couchpotato/core/providers/nzb/binsearch/main.py index 819c589a..237538bb 100644 --- a/couchpotato/core/providers/nzb/binsearch/main.py +++ b/couchpotato/core/providers/nzb/binsearch/main.py @@ -101,7 +101,7 @@ class Movie(MovieProvider, Base): def buildUrl(self, media, quality): query = tryUrlencode({ - 'q': media['library']['identifier'], + 'q': media['library']['identifier'], # TODO should this use library.title? 'm': 'n', 'max': 400, 'adv_age': Env.setting('retention', 'nzb'), @@ -117,7 +117,7 @@ class Season(SeasonProvider, Base): def buildUrl(self, media, quality): query = tryUrlencode({ - 'q': fireEvent('library.title', media['library'], condense = True, single = True), + 'q': fireEvent('library.title', media['library'], single = True), 'm': 'n', 'max': 400, 'adv_age': Env.setting('retention', 'nzb'), @@ -133,7 +133,7 @@ class Episode(EpisodeProvider, Base): def buildUrl(self, media, quality): query = tryUrlencode({ - 'q': fireEvent('library.title', media['library'], condense = True, single = True), + 'q': fireEvent('library.title', media['library'], single = True), 'm': 'n', 'max': 400, 'adv_age': Env.setting('retention', 'nzb'), diff --git a/couchpotato/core/providers/nzb/newznab/main.py b/couchpotato/core/providers/nzb/newznab/main.py index bc75c36b..d8b1aa49 100644 --- a/couchpotato/core/providers/nzb/newznab/main.py +++ b/couchpotato/core/providers/nzb/newznab/main.py @@ -200,7 +200,7 @@ class Movie(MovieProvider, Base): class Season(SeasonProvider, Base): def buildUrl(self, media, api_key): - search_title = fireEvent('library.title', media['library'], condense = True, include_identifier = False, single = True) + search_title = fireEvent('library.title', media['library'], include_identifier = False, single = True) identifier = fireEvent('library.identifier', media['library'], single = True) query = tryUrlencode({ @@ -215,7 +215,7 @@ class Season(SeasonProvider, Base): class Episode(EpisodeProvider, Base): def buildUrl(self, media, api_key): - search_title = fireEvent('library.title', media['library'], condense = True, include_identifier = False, single = True) + search_title = fireEvent('library.title', media['library'], include_identifier = False, single = True) identifier = fireEvent('library.identifier', media['library'], single = True) query = tryUrlencode({ diff --git a/couchpotato/core/providers/nzb/nzbclub/main.py b/couchpotato/core/providers/nzb/nzbclub/main.py index cd0340d4..7a8e9586 100644 --- a/couchpotato/core/providers/nzb/nzbclub/main.py +++ b/couchpotato/core/providers/nzb/nzbclub/main.py @@ -80,8 +80,7 @@ class Movie(MovieProvider, Base): def buildUrl(self, media): query = tryUrlencode({ - 'q': '"%s %s"' % (fireEvent('library.title', media['library'], condense = True, - single = True), media['library']['year']), + 'q': '"%s"' % fireEvent('library.title', media['library'], single = True), 'ig': 1, 'rpp': 200, 'st': 5, @@ -94,7 +93,7 @@ class Season(SeasonProvider, Base): def buildUrl(self, media): query = tryUrlencode({ - 'q': fireEvent('library.title', media['library'], condense = True, single = True), + 'q': fireEvent('library.title', media['library'], single = True), 'ig': 1, 'rpp': 200, 'st': 5, @@ -107,7 +106,7 @@ class Episode(EpisodeProvider, Base): def buildUrl(self, media): query = tryUrlencode({ - 'q': fireEvent('library.title', media['library'], condense = True, single = True), + 'q': fireEvent('library.title', media['library'], single = True), 'ig': 1, 'rpp': 200, 'st': 5, diff --git a/couchpotato/core/providers/nzb/nzbindex/main.py b/couchpotato/core/providers/nzb/nzbindex/main.py index 7e96a274..5c663f8b 100644 --- a/couchpotato/core/providers/nzb/nzbindex/main.py +++ b/couchpotato/core/providers/nzb/nzbindex/main.py @@ -104,7 +104,7 @@ class Base(NZBProvider, RSS): class Movie(MovieProvider, Base): def buildUrl(self, media, quality): - title = fireEvent('library.title', media['library'], condense = True, include_identifier = False, single = True) + title = fireEvent('library.title', media['library'], include_year = False, single = True) year = media['library']['year'] query = tryUrlencode({ @@ -124,7 +124,7 @@ class Season(SeasonProvider, Base): def buildUrl(self, media, quality): query = tryUrlencode({ - 'q': fireEvent('library.title', media['library'], condense = True, single = True), + 'q': fireEvent('library.title', media['library'], single = True), 'age': Env.setting('retention', 'nzb'), 'sort': 'agedesc', 'minsize': quality.get('size_min'), @@ -140,7 +140,7 @@ class Episode(EpisodeProvider, Base): def buildUrl(self, media, quality): query = tryUrlencode({ - 'q': fireEvent('library.title', media['library'], condense = True, single = True), + 'q': fireEvent('library.title', media['library'], single = True), 'age': Env.setting('retention', 'nzb'), 'sort': 'agedesc', 'minsize': quality.get('size_min'), diff --git a/couchpotato/core/providers/torrent/bithdtv/main.py b/couchpotato/core/providers/torrent/bithdtv/main.py index 4b271761..7e90fe2c 100644 --- a/couchpotato/core/providers/torrent/bithdtv/main.py +++ b/couchpotato/core/providers/torrent/bithdtv/main.py @@ -95,7 +95,7 @@ class Movie(MovieProvider, Base): def buildUrl(self, media): query = tryUrlencode({ - 'search': fireEvent('library.title', media['library'], condense = True, single = True), + 'search': fireEvent('library.title', media['library'], single = True), 'cat': 7 # Movie cat }) return query @@ -104,7 +104,7 @@ class Season(SeasonProvider, Base): def buildUrl(self, media): query = tryUrlencode({ - 'search': fireEvent('library.title', media['library'], condense = True, single = True), + 'search': fireEvent('library.title', media['library'], single = True), 'cat': 12 # Season cat }) return query @@ -113,7 +113,7 @@ class Episode(EpisodeProvider, Base): def buildUrl(self, media): query = tryUrlencode({ - 'search': fireEvent('library.title', media['library'], condense = True, single = True), + 'search': fireEvent('library.title', media['library'], single = True), 'cat': 10 # Episode cat }) return query \ No newline at end of file diff --git a/couchpotato/core/providers/torrent/bitsoup/main.py b/couchpotato/core/providers/torrent/bitsoup/main.py index 0b91c7be..cad3e52e 100644 --- a/couchpotato/core/providers/torrent/bitsoup/main.py +++ b/couchpotato/core/providers/torrent/bitsoup/main.py @@ -113,9 +113,10 @@ class Movie(MovieProvider, Base): def buildUrl(self, media, quality): query = tryUrlencode({ - 'search': '"%s" %s' % (fireEvent('searcher.get_search_title', - media['library'], include_identifier = False, single = True), - media['library']['year']), + 'search': '"%s" %s' % ( + fireEvent('library.title', media['library'], include_year = False, single = True), + media['library']['year'] + ), 'cat': self.getCatId(quality['identifier'])[0], }) return query @@ -124,8 +125,7 @@ class Season(SeasonProvider, Base): # For season bundles, bitsoup currently only has one category def buildUrl(self, media, quality): query = tryUrlencode({ - 'search': fireEvent('searcher.get_search_title', media['library'], - include_identifier = True, single = True), + 'search': fireEvent('library.title', media['library'], single = True), 'cat': 45 # TV-Packs Category }) return query @@ -139,8 +139,7 @@ class Episode(EpisodeProvider, Base): def buildUrl(self, media, quality): query = tryUrlencode({ - 'search': fireEvent('searcher.get_search_title', media['library'], - include_identifier = True, single = True), + 'search': fireEvent('library.title', media['library'], single = True), 'cat': self.getCatId(quality['identifier'])[0], }) return query diff --git a/couchpotato/core/providers/torrent/publichd/main.py b/couchpotato/core/providers/torrent/publichd/main.py index f033693a..f01a0e54 100644 --- a/couchpotato/core/providers/torrent/publichd/main.py +++ b/couchpotato/core/providers/torrent/publichd/main.py @@ -99,14 +99,14 @@ class Base(TorrentMagnetProvider): class Movie(MovieProvider, Base): def buildUrl(self, media): - return fireEvent('library.title', media['library'], condense = True, single = True) + return fireEvent('library.title', media['library'], single = True) class Season(SeasonProvider, Base): def buildUrl(self, media): - return fireEvent('library.title', media['library'], condense = True, single = True) + return fireEvent('library.title', media['library'], single = True) class Episode(EpisodeProvider, Base): def buildUrl(self, media): - return fireEvent('library.title', media['library'], condense = True, single = True) \ No newline at end of file + return fireEvent('library.title', media['library'], single = True) diff --git a/couchpotato/core/providers/torrent/sceneaccess/main.py b/couchpotato/core/providers/torrent/sceneaccess/main.py index 135f88cf..decb6641 100644 --- a/couchpotato/core/providers/torrent/sceneaccess/main.py +++ b/couchpotato/core/providers/torrent/sceneaccess/main.py @@ -104,7 +104,7 @@ class Movie(MovieProvider, Base): ) arguments = tryUrlencode({ - 'search': fireEvent('library.title', media['library'], condense = True, single = True), + 'search': fireEvent('library.title', media['library'], single = True), 'method': 2, }) query = "%s&%s" % (url, arguments) @@ -124,7 +124,7 @@ class Season(SeasonProvider, Base): ) arguments = tryUrlencode({ - 'search': fireEvent('library.title', media['library'], condense = True, single = True), + 'search': fireEvent('library.title', media['library'], single = True), 'method': 2, }) query = "%s&%s" % (url, arguments) @@ -145,7 +145,7 @@ class Episode(EpisodeProvider, Base): ) arguments = tryUrlencode({ - 'search': fireEvent('library.title', media['library'], condense = True, single = True), + 'search': fireEvent('library.title', media['library'], single = True), 'method': 2, }) query = "%s&%s" % (url, arguments) diff --git a/couchpotato/core/providers/torrent/thepiratebay/main.py b/couchpotato/core/providers/torrent/thepiratebay/main.py index c3576475..ada64a8f 100644 --- a/couchpotato/core/providers/torrent/thepiratebay/main.py +++ b/couchpotato/core/providers/torrent/thepiratebay/main.py @@ -130,8 +130,11 @@ class Movie(MovieProvider, Base): ] def buildUrl(self, media, page, cats): - return tryUrlencode('"%s"' % fireEvent('library.title', media['library'], - condense = True, single = True)), page, ','.join(str(x) for x in cats) + return ( + tryUrlencode('"%s"' % fireEvent('library.title', media['library'], single = True)), + page, + ','.join(str(x) for x in cats) + ) class Season(SeasonProvider, Base): @@ -141,8 +144,11 @@ class Season(SeasonProvider, Base): ] def buildUrl(self, media, page, cats): - return tryUrlencode('"%s"' % fireEvent('library.title', media['library'], - condense = True, single = True)), page, ','.join(str(x) for x in cats) + return ( + tryUrlencode('"%s"' % fireEvent('library.title', media['library'], single = True)), + page, + ','.join(str(x) for x in cats) + ) class Episode(EpisodeProvider, Base): @@ -152,5 +158,8 @@ class Episode(EpisodeProvider, Base): ] def buildUrl(self, media, page, cats): - return tryUrlencode('"%s"' % fireEvent('library.title', media['library'], - condense = True, single = True)), page, ','.join(str(x) for x in cats) + return ( + tryUrlencode('"%s"' % fireEvent('library.title', media['library'], single = True)), + page, + ','.join(str(x) for x in cats) + ) diff --git a/couchpotato/core/providers/torrent/torrentday/main.py b/couchpotato/core/providers/torrent/torrentday/main.py index 5c1c46b9..868e1d70 100644 --- a/couchpotato/core/providers/torrent/torrentday/main.py +++ b/couchpotato/core/providers/torrent/torrentday/main.py @@ -76,7 +76,7 @@ class Movie(MovieProvider, Base): ([5], ['bd50']), ] def buildUrl(self, media): - return fireEvent('library.title', media['library'], condense = True, single = True) + return fireEvent('library.title', media['library'], single = True) class Season(SeasonProvider, Base): @@ -84,7 +84,7 @@ class Season(SeasonProvider, Base): ([14], ['hdtv_sd', 'hdtv_720p', 'webdl_720p', 'webdl_1080p']), ] def buildUrl(self, media): - return fireEvent('library.title', media['library'], condense = True, single = True) + return fireEvent('library.title', media['library'], single = True) class Episode(EpisodeProvider, Base): cat_ids = [ @@ -92,5 +92,5 @@ class Episode(EpisodeProvider, Base): ([2], [24], [26], ['hdtv_sd']) ] def buildUrl(self, media): - return fireEvent('library.title', media['library'], condense = True, single = True) + return fireEvent('library.title', media['library'], single = True) diff --git a/couchpotato/core/providers/torrent/torrentleech/main.py b/couchpotato/core/providers/torrent/torrentleech/main.py index 35d64f22..07268cb1 100644 --- a/couchpotato/core/providers/torrent/torrentleech/main.py +++ b/couchpotato/core/providers/torrent/torrentleech/main.py @@ -90,8 +90,10 @@ class Movie(MovieProvider, Base): ] def buildUrl(self, media, quality): - return (tryUrlencode('%s' % fireEvent('library.title', media['library'], condense = True, - single = True)), self.getCatId(quality['identifier'])[0]) + return ( + tryUrlencode(fireEvent('library.title', media['library'], single = True)), + self.getCatId(quality['identifier'])[0] + ) class Season(SeasonProvider, Base): @@ -100,8 +102,10 @@ class Season(SeasonProvider, Base): ] def buildUrl(self, media, quality): - return (tryUrlencode('%s' % fireEvent('library.title', media['library'], condense = True, - single = True)), self.getCatId(quality['identifier'])[0]) + return ( + tryUrlencode(fireEvent('library.title', media['library'], single = True)), + self.getCatId(quality['identifier'])[0] + ) class Episode(EpisodeProvider, Base): @@ -111,5 +115,7 @@ class Episode(EpisodeProvider, Base): ] def buildUrl(self, media, quality): - return (tryUrlencode('%s' % fireEvent('library.title', media['library'], condense = True, - single = True)), self.getCatId(quality['identifier'])[0]) + return ( + tryUrlencode(fireEvent('library.title', media['library'], single = True)), + self.getCatId(quality['identifier'])[0] + ) diff --git a/couchpotato/core/providers/torrent/torrentpotato/main.py b/couchpotato/core/providers/torrent/torrentpotato/main.py index 4f95e9f7..4576d525 100644 --- a/couchpotato/core/providers/torrent/torrentpotato/main.py +++ b/couchpotato/core/providers/torrent/torrentpotato/main.py @@ -144,7 +144,7 @@ class Season(SeasonProvider, Base): arguments = tryUrlencode({ 'user': host['name'], 'passkey': host['pass_key'], - 'search': fireEvent('library.title', media['library'], condense = True, single = True) + 'search': fireEvent('library.title', media['library'], single = True) }) return '%s?%s' % (host['host'], arguments) @@ -154,6 +154,6 @@ class Episode(EpisodeProvider, Base): arguments = tryUrlencode({ 'user': host['name'], 'passkey': host['pass_key'], - 'search': fireEvent('library.title', media['library'], condense = True, single = True) + 'search': fireEvent('library.title', media['library'], single = True) }) return '%s?%s' % (host['host'], arguments) diff --git a/couchpotato/core/providers/torrent/torrentshack/main.py b/couchpotato/core/providers/torrent/torrentshack/main.py index ce291409..d137dfdc 100644 --- a/couchpotato/core/providers/torrent/torrentshack/main.py +++ b/couchpotato/core/providers/torrent/torrentshack/main.py @@ -97,7 +97,7 @@ class Movie(MovieProvider, Base): cat_backup_id = 400 def buildUrl(self, media, quality): - query = (tryUrlencode('%s' % fireEvent('library.title', media['library'], condense = True, single = True)), + query = (tryUrlencode(fireEvent('library.title', media['library'], single = True)), self.getCatId(quality['identifier'])[0], self.getSceneOnly()) return query @@ -115,7 +115,7 @@ class Season(SeasonProvider, Base): cat_backup_id = 980 def buildUrl(self, media, quality): - query = (tryUrlencode('%s' % fireEvent('library.title', media['library'], condense = True, single = True)), + query = (tryUrlencode(fireEvent('library.title', media['library'], single = True)), self.getCatId(quality['identifier'])[0], self.getSceneOnly()) return query @@ -132,7 +132,7 @@ class Episode(EpisodeProvider, Base): cat_backup_id = 620 def buildUrl(self, media, quality): - query = (tryUrlencode('%s' % fireEvent('library.title', media['library'], condense = True, single = True)), + query = (tryUrlencode(fireEvent('library.title', media['library'], single = True)), self.getCatId(quality['identifier'])[0], self.getSceneOnly()) return query From 9ba891028124c67c43dc6f796d28ea1aaa5f4dd5 Mon Sep 17 00:00:00 2001 From: Dean Gardiner Date: Sat, 11 Jan 2014 16:23:33 +1300 Subject: [PATCH 4/5] Renamed 'library.title' to 'library.query' --- couchpotato/core/media/movie/library/movie/main.py | 4 ++-- couchpotato/core/media/show/library/episode/main.py | 6 +++--- couchpotato/core/media/show/library/season/main.py | 6 +++--- couchpotato/core/media/show/library/show/main.py | 4 ++-- couchpotato/core/media/show/searcher/main.py | 2 +- couchpotato/core/providers/base.py | 2 +- couchpotato/core/providers/nzb/binsearch/main.py | 4 ++-- couchpotato/core/providers/nzb/newznab/main.py | 4 ++-- couchpotato/core/providers/nzb/nzbclub/main.py | 6 +++--- couchpotato/core/providers/nzb/nzbindex/main.py | 6 +++--- couchpotato/core/providers/torrent/bithdtv/main.py | 6 +++--- couchpotato/core/providers/torrent/bitsoup/main.py | 6 +++--- couchpotato/core/providers/torrent/publichd/main.py | 6 +++--- couchpotato/core/providers/torrent/sceneaccess/main.py | 6 +++--- couchpotato/core/providers/torrent/thepiratebay/main.py | 6 +++--- couchpotato/core/providers/torrent/torrentday/main.py | 6 +++--- couchpotato/core/providers/torrent/torrentleech/main.py | 6 +++--- couchpotato/core/providers/torrent/torrentpotato/main.py | 4 ++-- couchpotato/core/providers/torrent/torrentshack/main.py | 6 +++--- 19 files changed, 48 insertions(+), 48 deletions(-) diff --git a/couchpotato/core/media/movie/library/movie/main.py b/couchpotato/core/media/movie/library/movie/main.py index dde81f5c..94e519d1 100644 --- a/couchpotato/core/media/movie/library/movie/main.py +++ b/couchpotato/core/media/movie/library/movie/main.py @@ -16,12 +16,12 @@ class MovieLibraryPlugin(LibraryBase): default_dict = {'titles': {}, 'files':{}} def __init__(self): - addEvent('library.title', self.title) + addEvent('library.query', self.query) addEvent('library.add.movie', self.add) addEvent('library.update.movie', self.update) addEvent('library.update.movie.release_date', self.updateReleaseDate) - def title(self, library, first = True, include_year = True, **kwargs): + def query(self, library, first = True, include_year = True, **kwargs): if library.get('type') != 'movie': return diff --git a/couchpotato/core/media/show/library/episode/main.py b/couchpotato/core/media/show/library/episode/main.py index fb0a083b..a1c1bd7b 100644 --- a/couchpotato/core/media/show/library/episode/main.py +++ b/couchpotato/core/media/show/library/episode/main.py @@ -17,13 +17,13 @@ class EpisodeLibraryPlugin(LibraryBase): default_dict = {'titles': {}, 'files':{}} def __init__(self): - addEvent('library.title', self.title) + addEvent('library.query', self.query) addEvent('library.identifier', self.identifier) addEvent('library.add.episode', self.add) addEvent('library.update.episode', self.update) addEvent('library.update.episode_release_date', self.updateReleaseDate) - def title(self, library, first = True, condense = True, include_identifier = True, **kwargs): + def query(self, library, first = True, condense = True, include_identifier = True, **kwargs): if library is list or library.get('type') != 'episode': return @@ -33,7 +33,7 @@ class EpisodeLibraryPlugin(LibraryBase): return titles = fireEvent( - 'library.title', + 'library.query', library['related_libraries']['season'][0], first=False, include_identifier=include_identifier, diff --git a/couchpotato/core/media/show/library/season/main.py b/couchpotato/core/media/show/library/season/main.py index 0ceb657c..a20269ab 100644 --- a/couchpotato/core/media/show/library/season/main.py +++ b/couchpotato/core/media/show/library/season/main.py @@ -17,13 +17,13 @@ class SeasonLibraryPlugin(LibraryBase): default_dict = {'titles': {}, 'files':{}} def __init__(self): - addEvent('library.title', self.title) + addEvent('library.query', self.query) addEvent('library.identifier', self.identifier) addEvent('library.add.season', self.add) addEvent('library.update.season', self.update) addEvent('library.update.season_release_date', self.updateReleaseDate) - def title(self, library, first = True, condense = True, include_identifier = True, **kwargs): + def query(self, library, first = True, condense = True, include_identifier = True, **kwargs): if library is list or library.get('type') != 'season': return @@ -33,7 +33,7 @@ class SeasonLibraryPlugin(LibraryBase): return titles = fireEvent( - 'library.title', + 'library.query', library['related_libraries']['show'][0], first=False, condense=condense, diff --git a/couchpotato/core/media/show/library/show/main.py b/couchpotato/core/media/show/library/show/main.py index 9e3aab18..abc8d93a 100644 --- a/couchpotato/core/media/show/library/show/main.py +++ b/couchpotato/core/media/show/library/show/main.py @@ -20,12 +20,12 @@ class ShowLibraryPlugin(LibraryBase): def __init__(self): self.query_condenser = QueryCondenser() - addEvent('library.title', self.title) + addEvent('library.query', self.query) addEvent('library.add.show', self.add) addEvent('library.update.show', self.update) addEvent('library.update.show_release_date', self.updateReleaseDate) - def title(self, library, first = True, condense = True, **kwargs): + def query(self, library, first = True, condense = True, **kwargs): if library is list or library.get('type') != 'show': return diff --git a/couchpotato/core/media/show/searcher/main.py b/couchpotato/core/media/show/searcher/main.py index 14e3d1c5..856d61d5 100644 --- a/couchpotato/core/media/show/searcher/main.py +++ b/couchpotato/core/media/show/searcher/main.py @@ -60,7 +60,7 @@ class ShowSearcher(Plugin): found_releases = [] too_early_to_search = [] - default_title = fireEvent('library.title', media['library'], condense = False, single=True) + default_title = fireEvent('library.query', media['library'], condense = False, single=True) if not default_title: log.error('No proper info found for episode, removing it from library to cause it from having more issues.') #fireEvent('episode.delete', episode['id'], single = True) diff --git a/couchpotato/core/providers/base.py b/couchpotato/core/providers/base.py index f530a42d..21243bd1 100644 --- a/couchpotato/core/providers/base.py +++ b/couchpotato/core/providers/base.py @@ -207,7 +207,7 @@ class YarrProvider(Provider): self._search(media, quality, results) # Search possible titles else: - media_title = fireEvent('library.title', media['library'], single = True) + media_title = fireEvent('library.query', media['library'], single = True) for title in possibleTitles(media_title): self._searchOnTitle(title, media, quality, results) diff --git a/couchpotato/core/providers/nzb/binsearch/main.py b/couchpotato/core/providers/nzb/binsearch/main.py index 237538bb..9c75c0e1 100644 --- a/couchpotato/core/providers/nzb/binsearch/main.py +++ b/couchpotato/core/providers/nzb/binsearch/main.py @@ -117,7 +117,7 @@ class Season(SeasonProvider, Base): def buildUrl(self, media, quality): query = tryUrlencode({ - 'q': fireEvent('library.title', media['library'], single = True), + 'q': fireEvent('library.query', media['library'], single = True), 'm': 'n', 'max': 400, 'adv_age': Env.setting('retention', 'nzb'), @@ -133,7 +133,7 @@ class Episode(EpisodeProvider, Base): def buildUrl(self, media, quality): query = tryUrlencode({ - 'q': fireEvent('library.title', media['library'], single = True), + 'q': fireEvent('library.query', media['library'], single = True), 'm': 'n', 'max': 400, 'adv_age': Env.setting('retention', 'nzb'), diff --git a/couchpotato/core/providers/nzb/newznab/main.py b/couchpotato/core/providers/nzb/newznab/main.py index d8b1aa49..93feea65 100644 --- a/couchpotato/core/providers/nzb/newznab/main.py +++ b/couchpotato/core/providers/nzb/newznab/main.py @@ -200,7 +200,7 @@ class Movie(MovieProvider, Base): class Season(SeasonProvider, Base): def buildUrl(self, media, api_key): - search_title = fireEvent('library.title', media['library'], include_identifier = False, single = True) + search_title = fireEvent('library.query', media['library'], include_identifier = False, single = True) identifier = fireEvent('library.identifier', media['library'], single = True) query = tryUrlencode({ @@ -215,7 +215,7 @@ class Season(SeasonProvider, Base): class Episode(EpisodeProvider, Base): def buildUrl(self, media, api_key): - search_title = fireEvent('library.title', media['library'], include_identifier = False, single = True) + search_title = fireEvent('library.query', media['library'], include_identifier = False, single = True) identifier = fireEvent('library.identifier', media['library'], single = True) query = tryUrlencode({ diff --git a/couchpotato/core/providers/nzb/nzbclub/main.py b/couchpotato/core/providers/nzb/nzbclub/main.py index 7a8e9586..9f4fa6c7 100644 --- a/couchpotato/core/providers/nzb/nzbclub/main.py +++ b/couchpotato/core/providers/nzb/nzbclub/main.py @@ -80,7 +80,7 @@ class Movie(MovieProvider, Base): def buildUrl(self, media): query = tryUrlencode({ - 'q': '"%s"' % fireEvent('library.title', media['library'], single = True), + 'q': '"%s"' % fireEvent('library.query', media['library'], single = True), 'ig': 1, 'rpp': 200, 'st': 5, @@ -93,7 +93,7 @@ class Season(SeasonProvider, Base): def buildUrl(self, media): query = tryUrlencode({ - 'q': fireEvent('library.title', media['library'], single = True), + 'q': fireEvent('library.query', media['library'], single = True), 'ig': 1, 'rpp': 200, 'st': 5, @@ -106,7 +106,7 @@ class Episode(EpisodeProvider, Base): def buildUrl(self, media): query = tryUrlencode({ - 'q': fireEvent('library.title', media['library'], single = True), + 'q': fireEvent('library.query', media['library'], single = True), 'ig': 1, 'rpp': 200, 'st': 5, diff --git a/couchpotato/core/providers/nzb/nzbindex/main.py b/couchpotato/core/providers/nzb/nzbindex/main.py index 5c663f8b..70e7420f 100644 --- a/couchpotato/core/providers/nzb/nzbindex/main.py +++ b/couchpotato/core/providers/nzb/nzbindex/main.py @@ -104,7 +104,7 @@ class Base(NZBProvider, RSS): class Movie(MovieProvider, Base): def buildUrl(self, media, quality): - title = fireEvent('library.title', media['library'], include_year = False, single = True) + title = fireEvent('library.query', media['library'], include_year = False, single = True) year = media['library']['year'] query = tryUrlencode({ @@ -124,7 +124,7 @@ class Season(SeasonProvider, Base): def buildUrl(self, media, quality): query = tryUrlencode({ - 'q': fireEvent('library.title', media['library'], single = True), + 'q': fireEvent('library.query', media['library'], single = True), 'age': Env.setting('retention', 'nzb'), 'sort': 'agedesc', 'minsize': quality.get('size_min'), @@ -140,7 +140,7 @@ class Episode(EpisodeProvider, Base): def buildUrl(self, media, quality): query = tryUrlencode({ - 'q': fireEvent('library.title', media['library'], single = True), + 'q': fireEvent('library.query', media['library'], single = True), 'age': Env.setting('retention', 'nzb'), 'sort': 'agedesc', 'minsize': quality.get('size_min'), diff --git a/couchpotato/core/providers/torrent/bithdtv/main.py b/couchpotato/core/providers/torrent/bithdtv/main.py index 7e90fe2c..b37914b7 100644 --- a/couchpotato/core/providers/torrent/bithdtv/main.py +++ b/couchpotato/core/providers/torrent/bithdtv/main.py @@ -95,7 +95,7 @@ class Movie(MovieProvider, Base): def buildUrl(self, media): query = tryUrlencode({ - 'search': fireEvent('library.title', media['library'], single = True), + 'search': fireEvent('library.query', media['library'], single = True), 'cat': 7 # Movie cat }) return query @@ -104,7 +104,7 @@ class Season(SeasonProvider, Base): def buildUrl(self, media): query = tryUrlencode({ - 'search': fireEvent('library.title', media['library'], single = True), + 'search': fireEvent('library.query', media['library'], single = True), 'cat': 12 # Season cat }) return query @@ -113,7 +113,7 @@ class Episode(EpisodeProvider, Base): def buildUrl(self, media): query = tryUrlencode({ - 'search': fireEvent('library.title', media['library'], single = True), + 'search': fireEvent('library.query', media['library'], single = True), 'cat': 10 # Episode cat }) return query \ No newline at end of file diff --git a/couchpotato/core/providers/torrent/bitsoup/main.py b/couchpotato/core/providers/torrent/bitsoup/main.py index cad3e52e..4129b5cf 100644 --- a/couchpotato/core/providers/torrent/bitsoup/main.py +++ b/couchpotato/core/providers/torrent/bitsoup/main.py @@ -114,7 +114,7 @@ class Movie(MovieProvider, Base): def buildUrl(self, media, quality): query = tryUrlencode({ 'search': '"%s" %s' % ( - fireEvent('library.title', media['library'], include_year = False, single = True), + fireEvent('library.query', media['library'], include_year = False, single = True), media['library']['year'] ), 'cat': self.getCatId(quality['identifier'])[0], @@ -125,7 +125,7 @@ class Season(SeasonProvider, Base): # For season bundles, bitsoup currently only has one category def buildUrl(self, media, quality): query = tryUrlencode({ - 'search': fireEvent('library.title', media['library'], single = True), + 'search': fireEvent('library.query', media['library'], single = True), 'cat': 45 # TV-Packs Category }) return query @@ -139,7 +139,7 @@ class Episode(EpisodeProvider, Base): def buildUrl(self, media, quality): query = tryUrlencode({ - 'search': fireEvent('library.title', media['library'], single = True), + 'search': fireEvent('library.query', media['library'], single = True), 'cat': self.getCatId(quality['identifier'])[0], }) return query diff --git a/couchpotato/core/providers/torrent/publichd/main.py b/couchpotato/core/providers/torrent/publichd/main.py index f01a0e54..7db1488d 100644 --- a/couchpotato/core/providers/torrent/publichd/main.py +++ b/couchpotato/core/providers/torrent/publichd/main.py @@ -99,14 +99,14 @@ class Base(TorrentMagnetProvider): class Movie(MovieProvider, Base): def buildUrl(self, media): - return fireEvent('library.title', media['library'], single = True) + return fireEvent('library.query', media['library'], single = True) class Season(SeasonProvider, Base): def buildUrl(self, media): - return fireEvent('library.title', media['library'], single = True) + return fireEvent('library.query', media['library'], single = True) class Episode(EpisodeProvider, Base): def buildUrl(self, media): - return fireEvent('library.title', media['library'], single = True) + return fireEvent('library.query', media['library'], single = True) diff --git a/couchpotato/core/providers/torrent/sceneaccess/main.py b/couchpotato/core/providers/torrent/sceneaccess/main.py index decb6641..31c338b8 100644 --- a/couchpotato/core/providers/torrent/sceneaccess/main.py +++ b/couchpotato/core/providers/torrent/sceneaccess/main.py @@ -104,7 +104,7 @@ class Movie(MovieProvider, Base): ) arguments = tryUrlencode({ - 'search': fireEvent('library.title', media['library'], single = True), + 'search': fireEvent('library.query', media['library'], single = True), 'method': 2, }) query = "%s&%s" % (url, arguments) @@ -124,7 +124,7 @@ class Season(SeasonProvider, Base): ) arguments = tryUrlencode({ - 'search': fireEvent('library.title', media['library'], single = True), + 'search': fireEvent('library.query', media['library'], single = True), 'method': 2, }) query = "%s&%s" % (url, arguments) @@ -145,7 +145,7 @@ class Episode(EpisodeProvider, Base): ) arguments = tryUrlencode({ - 'search': fireEvent('library.title', media['library'], single = True), + 'search': fireEvent('library.query', media['library'], single = True), 'method': 2, }) query = "%s&%s" % (url, arguments) diff --git a/couchpotato/core/providers/torrent/thepiratebay/main.py b/couchpotato/core/providers/torrent/thepiratebay/main.py index ada64a8f..04ad39f3 100644 --- a/couchpotato/core/providers/torrent/thepiratebay/main.py +++ b/couchpotato/core/providers/torrent/thepiratebay/main.py @@ -131,7 +131,7 @@ class Movie(MovieProvider, Base): def buildUrl(self, media, page, cats): return ( - tryUrlencode('"%s"' % fireEvent('library.title', media['library'], single = True)), + tryUrlencode('"%s"' % fireEvent('library.query', media['library'], single = True)), page, ','.join(str(x) for x in cats) ) @@ -145,7 +145,7 @@ class Season(SeasonProvider, Base): def buildUrl(self, media, page, cats): return ( - tryUrlencode('"%s"' % fireEvent('library.title', media['library'], single = True)), + tryUrlencode('"%s"' % fireEvent('library.query', media['library'], single = True)), page, ','.join(str(x) for x in cats) ) @@ -159,7 +159,7 @@ class Episode(EpisodeProvider, Base): def buildUrl(self, media, page, cats): return ( - tryUrlencode('"%s"' % fireEvent('library.title', media['library'], single = True)), + tryUrlencode('"%s"' % fireEvent('library.query', media['library'], single = True)), page, ','.join(str(x) for x in cats) ) diff --git a/couchpotato/core/providers/torrent/torrentday/main.py b/couchpotato/core/providers/torrent/torrentday/main.py index 868e1d70..cfede6a7 100644 --- a/couchpotato/core/providers/torrent/torrentday/main.py +++ b/couchpotato/core/providers/torrent/torrentday/main.py @@ -76,7 +76,7 @@ class Movie(MovieProvider, Base): ([5], ['bd50']), ] def buildUrl(self, media): - return fireEvent('library.title', media['library'], single = True) + return fireEvent('library.query', media['library'], single = True) class Season(SeasonProvider, Base): @@ -84,7 +84,7 @@ class Season(SeasonProvider, Base): ([14], ['hdtv_sd', 'hdtv_720p', 'webdl_720p', 'webdl_1080p']), ] def buildUrl(self, media): - return fireEvent('library.title', media['library'], single = True) + return fireEvent('library.query', media['library'], single = True) class Episode(EpisodeProvider, Base): cat_ids = [ @@ -92,5 +92,5 @@ class Episode(EpisodeProvider, Base): ([2], [24], [26], ['hdtv_sd']) ] def buildUrl(self, media): - return fireEvent('library.title', media['library'], single = True) + return fireEvent('library.query', media['library'], single = True) diff --git a/couchpotato/core/providers/torrent/torrentleech/main.py b/couchpotato/core/providers/torrent/torrentleech/main.py index 07268cb1..fba8323b 100644 --- a/couchpotato/core/providers/torrent/torrentleech/main.py +++ b/couchpotato/core/providers/torrent/torrentleech/main.py @@ -91,7 +91,7 @@ class Movie(MovieProvider, Base): def buildUrl(self, media, quality): return ( - tryUrlencode(fireEvent('library.title', media['library'], single = True)), + tryUrlencode(fireEvent('library.query', media['library'], single = True)), self.getCatId(quality['identifier'])[0] ) @@ -103,7 +103,7 @@ class Season(SeasonProvider, Base): def buildUrl(self, media, quality): return ( - tryUrlencode(fireEvent('library.title', media['library'], single = True)), + tryUrlencode(fireEvent('library.query', media['library'], single = True)), self.getCatId(quality['identifier'])[0] ) @@ -116,6 +116,6 @@ class Episode(EpisodeProvider, Base): def buildUrl(self, media, quality): return ( - tryUrlencode(fireEvent('library.title', media['library'], single = True)), + tryUrlencode(fireEvent('library.query', media['library'], single = True)), self.getCatId(quality['identifier'])[0] ) diff --git a/couchpotato/core/providers/torrent/torrentpotato/main.py b/couchpotato/core/providers/torrent/torrentpotato/main.py index 4576d525..b9f67244 100644 --- a/couchpotato/core/providers/torrent/torrentpotato/main.py +++ b/couchpotato/core/providers/torrent/torrentpotato/main.py @@ -144,7 +144,7 @@ class Season(SeasonProvider, Base): arguments = tryUrlencode({ 'user': host['name'], 'passkey': host['pass_key'], - 'search': fireEvent('library.title', media['library'], single = True) + 'search': fireEvent('library.query', media['library'], single = True) }) return '%s?%s' % (host['host'], arguments) @@ -154,6 +154,6 @@ class Episode(EpisodeProvider, Base): arguments = tryUrlencode({ 'user': host['name'], 'passkey': host['pass_key'], - 'search': fireEvent('library.title', media['library'], single = True) + 'search': fireEvent('library.query', media['library'], single = True) }) return '%s?%s' % (host['host'], arguments) diff --git a/couchpotato/core/providers/torrent/torrentshack/main.py b/couchpotato/core/providers/torrent/torrentshack/main.py index d137dfdc..6a91ff6c 100644 --- a/couchpotato/core/providers/torrent/torrentshack/main.py +++ b/couchpotato/core/providers/torrent/torrentshack/main.py @@ -97,7 +97,7 @@ class Movie(MovieProvider, Base): cat_backup_id = 400 def buildUrl(self, media, quality): - query = (tryUrlencode(fireEvent('library.title', media['library'], single = True)), + query = (tryUrlencode(fireEvent('library.query', media['library'], single = True)), self.getCatId(quality['identifier'])[0], self.getSceneOnly()) return query @@ -115,7 +115,7 @@ class Season(SeasonProvider, Base): cat_backup_id = 980 def buildUrl(self, media, quality): - query = (tryUrlencode(fireEvent('library.title', media['library'], single = True)), + query = (tryUrlencode(fireEvent('library.query', media['library'], single = True)), self.getCatId(quality['identifier'])[0], self.getSceneOnly()) return query @@ -132,7 +132,7 @@ class Episode(EpisodeProvider, Base): cat_backup_id = 620 def buildUrl(self, media, quality): - query = (tryUrlencode(fireEvent('library.title', media['library'], single = True)), + query = (tryUrlencode(fireEvent('library.query', media['library'], single = True)), self.getCatId(quality['identifier'])[0], self.getSceneOnly()) return query From 7a3251f6497857164796ec60ed51aec0355d794a Mon Sep 17 00:00:00 2001 From: Dean Gardiner Date: Sat, 11 Jan 2014 16:36:11 +1300 Subject: [PATCH 5/5] Added new version of 'library.title' to return the title of the media excluding year and identifiers. --- .../core/media/_base/library/__init__.py | 15 ++++----------- couchpotato/core/media/_base/library/base.py | 13 +++++++++++++ couchpotato/core/media/_base/library/main.py | 18 ++++++++++++++++++ couchpotato/core/media/_base/searcher/main.py | 8 +------- .../core/media/movie/library/movie/main.py | 2 +- couchpotato/core/media/movie/searcher/main.py | 8 +------- .../core/media/show/library/episode/main.py | 2 +- .../core/media/show/library/season/main.py | 2 +- .../core/media/show/library/show/main.py | 2 +- 9 files changed, 41 insertions(+), 29 deletions(-) create mode 100644 couchpotato/core/media/_base/library/base.py create mode 100644 couchpotato/core/media/_base/library/main.py diff --git a/couchpotato/core/media/_base/library/__init__.py b/couchpotato/core/media/_base/library/__init__.py index 553eff5a..cc2d2c43 100644 --- a/couchpotato/core/media/_base/library/__init__.py +++ b/couchpotato/core/media/_base/library/__init__.py @@ -1,13 +1,6 @@ -from couchpotato.core.event import addEvent -from couchpotato.core.plugins.base import Plugin +from .main import Library +def start(): + return Library() -class LibraryBase(Plugin): - - _type = None - - def initType(self): - addEvent('library.types', self.getType) - - def getType(self): - return self._type +config = [] diff --git a/couchpotato/core/media/_base/library/base.py b/couchpotato/core/media/_base/library/base.py new file mode 100644 index 00000000..553eff5a --- /dev/null +++ b/couchpotato/core/media/_base/library/base.py @@ -0,0 +1,13 @@ +from couchpotato.core.event import addEvent +from couchpotato.core.plugins.base import Plugin + + +class LibraryBase(Plugin): + + _type = None + + def initType(self): + addEvent('library.types', self.getType) + + def getType(self): + return self._type diff --git a/couchpotato/core/media/_base/library/main.py b/couchpotato/core/media/_base/library/main.py new file mode 100644 index 00000000..a723de50 --- /dev/null +++ b/couchpotato/core/media/_base/library/main.py @@ -0,0 +1,18 @@ +from couchpotato.core.event import addEvent, fireEvent +from couchpotato.core.media._base.library.base import LibraryBase + + +class Library(LibraryBase): + def __init__(self): + addEvent('library.title', self.title) + + def title(self, library): + return fireEvent( + 'library.query', + library, + + condense = False, + include_year = False, + include_identifier = False, + single = True + ) diff --git a/couchpotato/core/media/_base/searcher/main.py b/couchpotato/core/media/_base/searcher/main.py index 70f1ec3a..4c94b146 100644 --- a/couchpotato/core/media/_base/searcher/main.py +++ b/couchpotato/core/media/_base/searcher/main.py @@ -171,13 +171,7 @@ class Searcher(SearcherBase): return False def correctWords(self, rel_name, media): - media_title = fireEvent( - 'library.title', media['library'], - condense = False, - include_year = False, - include_identifier = False, - single = True - ) + media_title = fireEvent('library.title', media['library'], single = True) media_words = re.split('\W+', simplifyString(media_title)) rel_name = simplifyString(rel_name) diff --git a/couchpotato/core/media/movie/library/movie/main.py b/couchpotato/core/media/movie/library/movie/main.py index 94e519d1..75fbaedc 100644 --- a/couchpotato/core/media/movie/library/movie/main.py +++ b/couchpotato/core/media/movie/library/movie/main.py @@ -2,7 +2,7 @@ from couchpotato import get_session from couchpotato.core.event import addEvent, fireEventAsync, fireEvent from couchpotato.core.helpers.encoding import toUnicode, simplifyString from couchpotato.core.logger import CPLog -from couchpotato.core.media._base.library import LibraryBase +from couchpotato.core.media._base.library.base import LibraryBase from couchpotato.core.settings.model import Library, LibraryTitle, File from string import ascii_letters import time diff --git a/couchpotato/core/media/movie/searcher/main.py b/couchpotato/core/media/movie/searcher/main.py index 3288218f..36cf6915 100644 --- a/couchpotato/core/media/movie/searcher/main.py +++ b/couchpotato/core/media/movie/searcher/main.py @@ -209,13 +209,7 @@ class MovieSearcher(SearcherBase, MovieTypeBase): if media.get('type') != 'movie': return - media_title = fireEvent( - 'library.title', media['library'], - condense = False, - include_year = False, - include_identifier = False, - single = True - ) + media_title = fireEvent('library.title', media['library'], single = True) imdb_results = kwargs.get('imdb_results', False) retention = Env.setting('retention', section = 'nzb') diff --git a/couchpotato/core/media/show/library/episode/main.py b/couchpotato/core/media/show/library/episode/main.py index a1c1bd7b..8505d05d 100644 --- a/couchpotato/core/media/show/library/episode/main.py +++ b/couchpotato/core/media/show/library/episode/main.py @@ -3,7 +3,7 @@ from couchpotato.core.event import addEvent, fireEventAsync, fireEvent from couchpotato.core.helpers.encoding import toUnicode, simplifyString from couchpotato.core.logger import CPLog from couchpotato.core.settings.model import EpisodeLibrary, SeasonLibrary, LibraryTitle, File -from couchpotato.core.media._base.library import LibraryBase +from couchpotato.core.media._base.library.base import LibraryBase from couchpotato.core.helpers.variable import tryInt from string import ascii_letters import time diff --git a/couchpotato/core/media/show/library/season/main.py b/couchpotato/core/media/show/library/season/main.py index a20269ab..cbb71cfd 100644 --- a/couchpotato/core/media/show/library/season/main.py +++ b/couchpotato/core/media/show/library/season/main.py @@ -3,7 +3,7 @@ from couchpotato.core.event import addEvent, fireEventAsync, fireEvent from couchpotato.core.helpers.encoding import toUnicode, simplifyString from couchpotato.core.logger import CPLog from couchpotato.core.settings.model import SeasonLibrary, ShowLibrary, LibraryTitle, File -from couchpotato.core.media._base.library import LibraryBase +from couchpotato.core.media._base.library.base import LibraryBase from couchpotato.core.helpers.variable import tryInt from string import ascii_letters import time diff --git a/couchpotato/core/media/show/library/show/main.py b/couchpotato/core/media/show/library/show/main.py index abc8d93a..a9f5774b 100644 --- a/couchpotato/core/media/show/library/show/main.py +++ b/couchpotato/core/media/show/library/show/main.py @@ -3,7 +3,7 @@ from couchpotato.core.event import addEvent, fireEventAsync, fireEvent from couchpotato.core.helpers.encoding import toUnicode, simplifyString from couchpotato.core.logger import CPLog from couchpotato.core.settings.model import ShowLibrary, LibraryTitle, File -from couchpotato.core.media._base.library import LibraryBase +from couchpotato.core.media._base.library.base import LibraryBase from qcond.helpers import simplify from qcond import QueryCondenser from string import ascii_letters