Move for_media out of release index
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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']
|
||||
|
||||
@@ -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':
|
||||
|
||||
Reference in New Issue
Block a user