From 4b0a5bdd9bc270a86355c662a84e4e32d82a7332 Mon Sep 17 00:00:00 2001 From: mano3m Date: Sun, 13 Oct 2013 16:49:00 +0200 Subject: [PATCH] Move and fix cleanreleases --- couchpotato/core/media/movie/_base/main.py | 28 ------------------- couchpotato/core/plugins/release/main.py | 32 ++++++++++++++++++++++ 2 files changed, 32 insertions(+), 28 deletions(-) diff --git a/couchpotato/core/media/movie/_base/main.py b/couchpotato/core/media/movie/_base/main.py index e430a65a..6012013e 100644 --- a/couchpotato/core/media/movie/_base/main.py +++ b/couchpotato/core/media/movie/_base/main.py @@ -79,34 +79,6 @@ class MovieBase(MovieTypeBase): addEvent('movie.list', self.list) addEvent('movie.restatus', self.restatus) - # Clean releases that didn't have activity in the last week - addEvent('app.load', self.cleanReleases) - fireEvent('schedule.interval', 'movie.clean_releases', self.cleanReleases, hours = 4) - - def cleanReleases(self): # Shouldnt this be part of the Release plugin, or the Dashboard plugin? - - log.debug('Removing releases from dashboard') - - now = time.time() - week = 262080 - - done_status, available_status, snatched_status, downloaded_status = \ - fireEvent('status.get', ['done', 'available', 'snatched', 'downloaded'], single = True) - - db = get_session() - - # get movies last_edit more than a week ago - media = db.query(Media) \ - .filter(Media.status_id == done_status.get('id'), Media.last_edit < (now - week)) \ - .all() - - for item in media: - for rel in item.releases: - if rel.status_id in [available_status.get('id'), snatched_status.get('id'), downloaded_status.get('id')]: - fireEvent('release.delete', id = rel.id, single = True) - - db.expire_all() - def getView(self, id = None, **kwargs): movie = self.get(id) if id else None diff --git a/couchpotato/core/plugins/release/main.py b/couchpotato/core/plugins/release/main.py index e6726635..9df23d96 100644 --- a/couchpotato/core/plugins/release/main.py +++ b/couchpotato/core/plugins/release/main.py @@ -50,6 +50,38 @@ class Release(Plugin): addEvent('release.clean', self.clean) addEvent('release.update_status', self.updateStatus) + # Clean releases that didn't have activity in the last week + addEvent('app.load', self.cleanReleases) + fireEvent('schedule.interval', 'movie.clean_releases', self.cleanReleases, hours = 4) + + def cleanReleases(self): + + log.debug('Removing releases from dashboard') + + now = time.time() + week = 262080 + + done_status, available_status, snatched_status, downloaded_status, ignored_status = \ + fireEvent('status.get', ['done', 'available', 'snatched', 'downloaded', 'ignored'], single = True) + + db = get_session() + + # get movies last_edit more than a week ago + media = db.query(Media) \ + .filter(Media.status_id == done_status.get('id'), Media.last_edit < (now - week)) \ + .all() + + for item in media: + for rel in item.releases: + # Remove all available releases + if rel.status_id in [available_status.get('id')]: + fireEvent('release.delete', id = rel.id, single = True) + # Set all snatched and downloaded releases to ignored to make sure they are ignored when re-adding the move + elif rel.status_id in [snatched_status.get('id'), downloaded_status.get('id')]: + fireEvent('release.update', id = rel.id, status = ignored_status) + + db.expire_all() + def add(self, group): db = get_session()