From c0c062870852a64f612d7ddddb53222211f790cb Mon Sep 17 00:00:00 2001 From: Ruud Date: Sun, 11 Sep 2011 01:29:49 +0200 Subject: [PATCH] Delete release --- couchpotato/core/plugins/movie/static/movie.js | 23 +++++++++++------------ couchpotato/core/plugins/release/main.py | 15 +++++++++++++++ couchpotato/core/plugins/searcher/main.py | 8 ++++++-- 3 files changed, 32 insertions(+), 14 deletions(-) diff --git a/couchpotato/core/plugins/movie/static/movie.js b/couchpotato/core/plugins/movie/static/movie.js index 5b6bf2d..ca90223 100644 --- a/couchpotato/core/plugins/movie/static/movie.js +++ b/couchpotato/core/plugins/movie/static/movie.js @@ -249,7 +249,8 @@ var ReleaseAction = new Class({ 'events': { 'click': function(e){ (e).stop(); - self.delete(release); + self.del(release); + this.getParent('.item').destroy(); } } }) @@ -259,12 +260,18 @@ var ReleaseAction = new Class({ } self.movie.slide('in'); }, + + get: function(release, type){ + var self = this; + + return (release.info.filter(function(info){ + return type == info.identifier + }).pick() || {}).value + }, download: function(release){ var self = this; - p(release) - Api.request('release.download', { 'data': { 'id': release.id @@ -272,7 +279,7 @@ var ReleaseAction = new Class({ }); }, - delete: function(release){ + del: function(release){ var self = this; Api.request('release.delete', { @@ -281,14 +288,6 @@ var ReleaseAction = new Class({ } }) - }, - - get: function(release, type){ - var self = this; - - return (release.info.filter(function(info){ - return type == info.identifier - }).pick() || {}).value } }); \ No newline at end of file diff --git a/couchpotato/core/plugins/release/main.py b/couchpotato/core/plugins/release/main.py index 0749364..332aefe 100644 --- a/couchpotato/core/plugins/release/main.py +++ b/couchpotato/core/plugins/release/main.py @@ -16,6 +16,7 @@ class Release(Plugin): addEvent('release.add', self.add) addApiView('release.download', self.download) + addApiView('release.delete', self.delete) def add(self, group): db = get_session() @@ -77,6 +78,20 @@ class Release(Plugin): # Check database and update/insert if necessary return fireEvent('file.add', path = file, part = self.getPartNumber(file), type = self.file_types[type], properties = properties, single = True) + def delete(self): + + db = get_session() + id = getParam('id') + + rel = db.query(Relea).filter_by(id = id).first() + if rel: + rel.delete() + db.commit() + + return jsonified({ + 'success': True + }) + def download(self): db = get_session() diff --git a/couchpotato/core/plugins/searcher/main.py b/couchpotato/core/plugins/searcher/main.py index 877e56e..bd13b0d 100644 --- a/couchpotato/core/plugins/searcher/main.py +++ b/couchpotato/core/plugins/searcher/main.py @@ -6,6 +6,7 @@ from couchpotato.core.logger import CPLog from couchpotato.core.plugins.base import Plugin from couchpotato.core.settings.model import Movie, Release, ReleaseInfo from couchpotato.environment import Env +from sqlalchemy.exc import InterfaceError import re import traceback @@ -85,14 +86,17 @@ class Searcher(Plugin): for info in nzb: try: + if not isinstance(nzb[info], (str, unicode)): + continue + rls_info = ReleaseInfo( identifier = info, value = nzb[info] ) rls.info.append(rls_info) - except Exception: + db.commit() + except InterfaceError: log.debug('Couldn\'t add %s to ReleaseInfo: %s' % (info, traceback.format_exc())) - db.commit() for nzb in sorted_results: