Remove orphaned releases
This commit is contained in:
@@ -361,13 +361,18 @@ class MediaPlugin(MediaBase):
|
|||||||
media = db.get('id', media_id)
|
media = db.get('id', media_id)
|
||||||
if media:
|
if media:
|
||||||
deleted = False
|
deleted = False
|
||||||
|
|
||||||
|
media_releases = fireEvent('release.for_media', media['_id'], single = True)
|
||||||
|
|
||||||
if delete_from == 'all':
|
if delete_from == 'all':
|
||||||
|
# Delete connected releases
|
||||||
|
for release in media_releases:
|
||||||
|
db.delete(release)
|
||||||
|
|
||||||
db.delete(media)
|
db.delete(media)
|
||||||
deleted = True
|
deleted = True
|
||||||
else:
|
else:
|
||||||
|
|
||||||
media_releases = fireEvent('release.for_media', media['_id'], single = True)
|
|
||||||
|
|
||||||
total_releases = len(media_releases)
|
total_releases = len(media_releases)
|
||||||
total_deleted = 0
|
total_deleted = 0
|
||||||
new_media_status = None
|
new_media_status = None
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import os
|
|||||||
import time
|
import time
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
|
from CodernityDB.database import RecordDeleted
|
||||||
from couchpotato import md5, get_db
|
from couchpotato import md5, get_db
|
||||||
from couchpotato.api import addApiView
|
from couchpotato.api import addApiView
|
||||||
from couchpotato.core.event import fireEvent, addEvent
|
from couchpotato.core.event import fireEvent, addEvent
|
||||||
@@ -58,7 +59,7 @@ class Release(Plugin):
|
|||||||
|
|
||||||
# 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)
|
||||||
fireEvent('schedule.interval', 'movie.clean_releases', self.cleanDone, hours = 4)
|
fireEvent('schedule.interval', 'movie.clean_releases', self.cleanDone, hours = 12)
|
||||||
|
|
||||||
def cleanDone(self):
|
def cleanDone(self):
|
||||||
log.debug('Removing releases from dashboard')
|
log.debug('Removing releases from dashboard')
|
||||||
@@ -68,6 +69,27 @@ class Release(Plugin):
|
|||||||
|
|
||||||
db = get_db()
|
db = get_db()
|
||||||
|
|
||||||
|
# Get (and remove) parentless releases
|
||||||
|
releases = db.all('release', with_doc = True)
|
||||||
|
media_exist = []
|
||||||
|
for release in releases:
|
||||||
|
if release.get('key') in media_exist:
|
||||||
|
continue
|
||||||
|
|
||||||
|
try:
|
||||||
|
db.get('id', release.get('key'))
|
||||||
|
media_exist.append(release.get('key'))
|
||||||
|
except RecordDeleted:
|
||||||
|
db.delete(release['doc'])
|
||||||
|
log.debug('Deleted orphaned release: %s', release['doc'])
|
||||||
|
except:
|
||||||
|
log.debug('Failed cleaning up orphaned releases: %s', traceback.format_exc())
|
||||||
|
|
||||||
|
del media_exist
|
||||||
|
|
||||||
|
# Reindex statuses
|
||||||
|
db.reindex_index('media_status')
|
||||||
|
|
||||||
# get movies last_edit more than a week ago
|
# get movies last_edit more than a week ago
|
||||||
medias = fireEvent('media.with_status', 'done', single = True)
|
medias = fireEvent('media.with_status', 'done', single = True)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user