Move for_media out of release index

This commit is contained in:
Ruud
2014-03-21 16:28:40 +01:00
parent b63f7b7e5d
commit 269d779df7
6 changed files with 18 additions and 14 deletions
+3 -3
View File
@@ -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)
+3 -3
View File
@@ -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)
@@ -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
@@ -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
+9 -1
View File
@@ -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']
+1 -1
View File
@@ -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':