Browse Source

Move for_media out of release index

pull/3004/head
Ruud 11 years ago
parent
commit
269d779df7
  1. 6
      couchpotato/core/media/_base/media/main.py
  2. 6
      couchpotato/core/media/movie/_base/main.py
  3. 4
      couchpotato/core/media/movie/providers/info/_modifier.py
  4. 4
      couchpotato/core/plugins/release/index.py
  5. 10
      couchpotato/core/plugins/release/main.py
  6. 2
      couchpotato/core/plugins/renamer.py

6
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)

6
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)

4
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

4
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

10
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']

2
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':

Loading…
Cancel
Save