Move for_media out of release index

This commit is contained in:
Ruud committed 2014-03-21 16:28:40 +01:00
1 parent b63f7b7e5d
commit 269d779df7
6 files changed
+18 -14

No files matched your search

+3 -3
View File
@@ -134,7 +134,7 @@ class MediaPlugin(MediaBase):
if media.get('category_id'): if media.get('category_id'):
media['category'] = db.get('id', 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 return media
@@ -352,7 +352,7 @@ class MediaPlugin(MediaBase):
deleted = True deleted = True
else: 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_releases = len(media_releases)
total_deleted = 0 total_deleted = 0
@@ -418,7 +418,7 @@ class MediaPlugin(MediaBase):
move_to_wanted = True move_to_wanted = True
profile = db.get('id', m['profile_id']) 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']: for q_identifier in profile['qualities']:
index = profile['qualities'].index(q_identifier) index = profile['qualities'].index(q_identifier)
+3 -3
View File
@@ -138,7 +138,7 @@ class MovieBase(MovieTypeBase):
elif force_readd: elif force_readd:
# Clean snatched history # 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 release.get('status') in ['downloaded', 'snatched', 'done']:
if params.get('ignore_previous', False): if params.get('ignore_previous', False):
release['status'] = 'ignored' release['status'] = 'ignored'
@@ -164,7 +164,7 @@ class MovieBase(MovieTypeBase):
fireEventAsync('movie.update_info', m['_id'], default_title = params.get('title'), on_complete = onComplete) fireEventAsync('movie.update_info', m['_id'], default_title = params.get('title'), on_complete = onComplete)
# Remove releases # 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': if rel['status'] is 'available':
db.delete(rel) db.delete(rel)
@@ -215,7 +215,7 @@ class MovieBase(MovieTypeBase):
m['category_id'] = cat_id if len(cat_id) > 0 else None m['category_id'] = cat_id if len(cat_id) > 0 else None
# Remove releases # 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': if rel['status'] is 'available':
db.delete(rel) db.delete(rel)
@@ -3,7 +3,7 @@ import traceback
from CodernityDB.database import RecordNotFound from CodernityDB.database import RecordNotFound
from couchpotato import get_db 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.helpers.variable import mergeDicts, randomString
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
from couchpotato.core.plugins.base import Plugin from couchpotato.core.plugins.base import Plugin
@@ -104,7 +104,7 @@ class MovieResultModifier(Plugin):
if media.get('status') == 'active': if media.get('status') == 'active':
temp['in_wanted'] = media 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 release.get('status') == 'done':
if not temp['in_library']: if not temp['in_library']:
temp['in_library'] = media temp['in_library'] = media
@@ -18,10 +18,6 @@ class ReleaseIndex(TreeBasedIndex):
if data.get('_t') == 'release' and data.get('media_id'): if data.get('_t') == 'release' and data.get('media_id'):
return data['media_id'], None 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): class ReleaseStatusIndex(TreeBasedIndex):
_version = 1 _version = 1
+9 -1
View File
@@ -54,6 +54,7 @@ class Release(Plugin):
addEvent('release.clean', self.clean) addEvent('release.clean', self.clean)
addEvent('release.update_status', self.updateStatus) addEvent('release.update_status', self.updateStatus)
addEvent('release.with_status', self.withStatus) addEvent('release.with_status', self.withStatus)
addEvent('release.for_media', self.forMedia)
# Clean releases that didn't have activity in the last week # Clean releases that didn't have activity in the last week
addEvent('app.load', self.cleanDone) addEvent('app.load', self.cleanDone)
@@ -74,7 +75,7 @@ class Release(Plugin):
if media.get('last_edit', 0) > (now - week): if media.get('last_edit', 0) > (now - week):
continue 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 # Remove all available releases
if rel['status'] in ['available']: if rel['status'] in ['available']:
@@ -433,3 +434,10 @@ class Release(Plugin):
for s in status: for s in status:
for ms in db.get_many('release_status', s, with_doc = with_doc): for ms in db.get_many('release_status', s, with_doc = with_doc):
yield ms['doc'] if with_doc else ms 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']
+1 -1
View File
@@ -446,7 +446,7 @@ class Renamer(Plugin):
log.error('Failed marking movie finished: %s', (traceback.format_exc())) log.error('Failed marking movie finished: %s', (traceback.format_exc()))
# Go over current movie releases # 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 # When a release already exists
if release.get('status') == 'done': if release.get('status') == 'done':