diff --git a/couchpotato/core/media/_base/media/main.py b/couchpotato/core/media/_base/media/main.py index 5a6fc79..be3faf4 100644 --- a/couchpotato/core/media/_base/media/main.py +++ b/couchpotato/core/media/_base/media/main.py @@ -134,7 +134,7 @@ class MediaPlugin(MediaBase): if media.get('category_id'): media['category'] = db.get('id', media.get('category_id')) - media['releases'] = list(db.run('release', 'for_media', media['_id'])) + media['releases'] = list(fireEvent('release.for_media', media['_id'], single = True)) return media @@ -352,7 +352,7 @@ class MediaPlugin(MediaBase): deleted = True else: - media_releases = list(db.run('release', 'for_media', media['_id'])) + media_releases = list(fireEvent('release.for_media', media['_id'], single = True)) total_releases = len(media_releases) total_deleted = 0 @@ -418,7 +418,7 @@ class MediaPlugin(MediaBase): move_to_wanted = True profile = db.get('id', m['profile_id']) - media_releases = list(db.run('release', 'for_media', m['_id'])) + media_releases = list(fireEvent('release.for_media', m['_id'], single = True)) for q_identifier in profile['qualities']: index = profile['qualities'].index(q_identifier) diff --git a/couchpotato/core/media/movie/_base/main.py b/couchpotato/core/media/movie/_base/main.py index 499dba9..a783cd1 100644 --- a/couchpotato/core/media/movie/_base/main.py +++ b/couchpotato/core/media/movie/_base/main.py @@ -138,7 +138,7 @@ class MovieBase(MovieTypeBase): elif force_readd: # Clean snatched history - for release in db.run('release', 'for_media', m['_id']): + for release in fireEvent('release.for_media', m['_id'], single = True): if release.get('status') in ['downloaded', 'snatched', 'done']: if params.get('ignore_previous', False): release['status'] = 'ignored' @@ -164,7 +164,7 @@ class MovieBase(MovieTypeBase): fireEventAsync('movie.update_info', m['_id'], default_title = params.get('title'), on_complete = onComplete) # Remove releases - for rel in db.run('release', 'for_media', m['_id']): + for rel in fireEvent('release.for_media', m['_id'], single = True): if rel['status'] is 'available': db.delete(rel) @@ -215,7 +215,7 @@ class MovieBase(MovieTypeBase): m['category_id'] = cat_id if len(cat_id) > 0 else None # Remove releases - for rel in db.run('release', 'for_media', m['_id']): + for rel in fireEvent('release.for_media', m['_id'], single = True): if rel['status'] is 'available': db.delete(rel) diff --git a/couchpotato/core/media/movie/providers/info/_modifier.py b/couchpotato/core/media/movie/providers/info/_modifier.py index 131cc05..cea0f49 100644 --- a/couchpotato/core/media/movie/providers/info/_modifier.py +++ b/couchpotato/core/media/movie/providers/info/_modifier.py @@ -3,7 +3,7 @@ import traceback from CodernityDB.database import RecordNotFound from couchpotato import get_db -from couchpotato.core.event import addEvent +from couchpotato.core.event import addEvent, fireEvent from couchpotato.core.helpers.variable import mergeDicts, randomString from couchpotato.core.logger import CPLog from couchpotato.core.plugins.base import Plugin @@ -104,7 +104,7 @@ class MovieResultModifier(Plugin): if media.get('status') == 'active': temp['in_wanted'] = media - for release in db.run('release', 'for_media', media.get('_id')): + for release in fireEvent('release.for_media', media['_id'], single = True): if release.get('status') == 'done': if not temp['in_library']: temp['in_library'] = media diff --git a/couchpotato/core/plugins/release/index.py b/couchpotato/core/plugins/release/index.py index 23c1576..f509f48 100644 --- a/couchpotato/core/plugins/release/index.py +++ b/couchpotato/core/plugins/release/index.py @@ -18,10 +18,6 @@ class ReleaseIndex(TreeBasedIndex): if data.get('_t') == 'release' and data.get('media_id'): return data['media_id'], None - def run_for_media(self, db, media_id): - for release in db.get_many('release', media_id, with_doc = True): - yield release['doc'] - class ReleaseStatusIndex(TreeBasedIndex): _version = 1 diff --git a/couchpotato/core/plugins/release/main.py b/couchpotato/core/plugins/release/main.py index 3ebb93b..a80dfc0 100644 --- a/couchpotato/core/plugins/release/main.py +++ b/couchpotato/core/plugins/release/main.py @@ -54,6 +54,7 @@ class Release(Plugin): addEvent('release.clean', self.clean) addEvent('release.update_status', self.updateStatus) addEvent('release.with_status', self.withStatus) + addEvent('release.for_media', self.forMedia) # Clean releases that didn't have activity in the last week addEvent('app.load', self.cleanDone) @@ -74,7 +75,7 @@ class Release(Plugin): if media.get('last_edit', 0) > (now - week): continue - for rel in db.run('release', 'for_media', media['_id']): + for rel in fireEvent('release.for_media', media['_id'], single = True): # Remove all available releases if rel['status'] in ['available']: @@ -433,3 +434,10 @@ class Release(Plugin): for s in status: for ms in db.get_many('release_status', s, with_doc = with_doc): yield ms['doc'] if with_doc else ms + + def forMedia(self, media_id): + + db = get_db() + + for release in db.get_many('release', media_id, with_doc = True): + yield release['doc'] diff --git a/couchpotato/core/plugins/renamer.py b/couchpotato/core/plugins/renamer.py index b452648..a259802 100644 --- a/couchpotato/core/plugins/renamer.py +++ b/couchpotato/core/plugins/renamer.py @@ -446,7 +446,7 @@ class Renamer(Plugin): log.error('Failed marking movie finished: %s', (traceback.format_exc())) # Go over current movie releases - for release in db.run('release', 'for_media', media['_id']): + for release in fireEvent('release.for_media', media['_id'], single = True): # When a release already exists if release.get('status') == 'done':