diff --git a/couchpotato/core/media/_base/searcher/main.py b/couchpotato/core/media/_base/searcher/main.py index 662ed80f..934a1472 100644 --- a/couchpotato/core/media/_base/searcher/main.py +++ b/couchpotato/core/media/_base/searcher/main.py @@ -79,7 +79,7 @@ class Searcher(SearcherBase): rls = db.query(Release).filter_by(identifier = md5(data['url'])).first() if rls: renamer_enabled = Env.setting('enabled', 'renamer') - fireEvent('release.update', id = rls.id, status = done_status if not renamer_enabled else snatched_status, single = True) + fireEvent('release.update_status', rls.id, status = done_status if not renamer_enabled else snatched_status, single = True) # Save download-id info if returned if isinstance(download_result, dict): diff --git a/couchpotato/core/media/movie/_base/static/movie.actions.js b/couchpotato/core/media/movie/_base/static/movie.actions.js index 2a979574..9dd6bdfe 100644 --- a/couchpotato/core/media/movie/_base/static/movie.actions.js +++ b/couchpotato/core/media/movie/_base/static/movie.actions.js @@ -250,27 +250,29 @@ MA.Release = new Class({ else if(!self.next_release && status.identifier == 'available'){ self.next_release = release; } + + var update_handle = function(notification) { + var q = self.movie.quality.getElement('.q_id' + release.quality_id), + status = Status.get(release.status_id), + new_status = Status.get(notification.data); + + release.status_id = new_status.id + release.el.set('class', 'item ' + new_status.identifier); - App.addEvent('release.update.'+release.id, function(notification){ - var q = self.movie.quality.getElement('.q_id'+ release.quality_id), - status = Status.get(release.status_id); + var status_el = release.el.getElement('.release_status'); + status_el.set('class', 'release_status ' + new_status.identifier); + status_el.set('text', new_status.identifier); - var new_status=Status.get(notification.data); - release.status_id = new_status.id - release.el.className='item '+new_status.identifier; + if(!q && (new_status.identifier == 'snatched' || new_status.identifier == 'seeding' || new_status.identifier == 'done')) + var q = self.addQuality(release.quality_id); - var status_el=release.el.getElement('.release_status'); - status_el.className='release_status '+new_status.identifier; - status_el.set('text', new_status.identifier); + if(new_status && q && !q.hasClass(new_status.identifier)) { + q.removeClass(status.identifier).addClass(new_status.identifier); + q.set('title', q.get('title').replace(status.label, new_status.label)); + } + } - if(!q && (new_status.identifier == 'snatched' || new_status.identifier == 'seeding' || new_status.identifier == 'done')) - var q = self.addQuality(release.quality_id); - - if (new_status && q && !q.hasClass(new_status.identifier)){ - q.removeClass(status.identifier).addClass(new_status.identifier); - q.set('title', q.get('title').replace(status.label, new_status.label)); - } - }); + App.addEvent('release.update_status.' + release.id, update_handle); }); diff --git a/couchpotato/core/plugins/release/main.py b/couchpotato/core/plugins/release/main.py index 97e350c5..e8d1815f 100644 --- a/couchpotato/core/plugins/release/main.py +++ b/couchpotato/core/plugins/release/main.py @@ -48,7 +48,7 @@ class Release(Plugin): addEvent('release.for_movie', self.forMovie) addEvent('release.delete', self.delete) addEvent('release.clean', self.clean) - addEvent('release.update', self.update_status) + addEvent('release.update_status', self.updateStatus) def add(self, group): @@ -161,7 +161,7 @@ class Release(Plugin): rel = db.query(Relea).filter_by(id = id).first() if rel: ignored_status, failed_status, available_status = fireEvent('status.get', ['ignored', 'failed', 'available'], single = True) - self.update_status(id, available_status if rel.status_id in [ignored_status.get('id'), failed_status.get('id')] else ignored_status) + self.updateStatus(id, available_status if rel.status_id in [ignored_status.get('id'), failed_status.get('id')] else ignored_status) return { 'success': True @@ -237,7 +237,8 @@ class Release(Plugin): 'success': True } - def update_status(self, id = None, status = None): + def updateStatus(self, id, status = None): + if not status: return db = get_session() @@ -254,8 +255,5 @@ class Release(Plugin): rel.last_edit = int(time.time()) db.commit() - #Notify frontend - fireEvent('notify.frontend', type = 'release.download', data = True, message = '"%s" updated to %s' % (item['name'], status.get("label"))) - #Update all movie info as there is no release update function - fireEvent('notify.frontend', type = 'release.update.%s' % rel.id, data = status.get('id')) + fireEvent('notify.frontend', type = 'release.update_status.%s' % rel.id, data = status.get('id')) diff --git a/couchpotato/core/plugins/renamer/main.py b/couchpotato/core/plugins/renamer/main.py index b0df89dd..c2b71361 100755 --- a/couchpotato/core/plugins/renamer/main.py +++ b/couchpotato/core/plugins/renamer/main.py @@ -396,7 +396,7 @@ class Renamer(Plugin): elif release.status_id is snatched_status.get('id'): if release.quality.id is group['meta_data']['quality']['id']: # Set the release to downloaded - fireEvent('release.update', id = release.id, status = downloaded_status, single = True) + fireEvent('release.update_status', release.id, status = downloaded_status, single = True) # Remove leftover files if not remove_leftovers: # Don't remove anything @@ -701,7 +701,7 @@ Remove it if you want it to be renamed (again, or at least let it try again) if item['status'] == 'busy': # Set the release to snatched if it was missing before - fireEvent('release.update', id = rel.id, status = snatched_status, single = True) + fireEvent('release.update_status', rel.id, status = snatched_status, single = True) # Tag folder if it is in the 'from' folder and it will not be processed because it is still downloading if item['folder'] and self.conf('from') in item['folder']: @@ -709,7 +709,7 @@ Remove it if you want it to be renamed (again, or at least let it try again) elif item['status'] == 'seeding': # Set the release to seeding - fireEvent('release.update', id = rel.id, status = seeding_status, single = True) + fireEvent('release.update_status', rel.id, status = seeding_status, single = True) #If linking setting is enabled, process release if self.conf('file_action') != 'move' and not rel.status_id == seeding_status.get('id') and self.statusInfoComplete(item): @@ -727,7 +727,7 @@ Remove it if you want it to be renamed (again, or at least let it try again) elif item['status'] == 'failed': # Set the release to failed - fireEvent('release.update', id = rel.id, status = failed_status, single = True) + fireEvent('release.update_status', rel.id, status = failed_status, single = True) fireEvent('download.remove_failed', item, single = True) @@ -741,14 +741,14 @@ Remove it if you want it to be renamed (again, or at least let it try again) if rel.status_id == seeding_status.get('id'): if rel.movie.status_id == done_status.get('id'): # Set the release to done as the movie has already been renamed - fireEvent('release.update', id = rel.id, status = downloaded_status, single = True) + fireEvent('release.update_status', rel.id, status = downloaded_status, single = True) # Allow the downloader to clean-up item.update({'pause': False, 'scan': False, 'process_complete': True}) scan_items.append(item) else: # Set the release to snatched so that the renamer can process the release as if it was never seeding - fireEvent('release.update', id = rel.id, status = snatched_status, single = True) + fireEvent('release.update_status', rel.id, status = snatched_status, single = True) # Scan and Allow the downloader to clean-up item.update({'pause': False, 'scan': True, 'process_complete': True}) @@ -756,7 +756,7 @@ Remove it if you want it to be renamed (again, or at least let it try again) else: # Set the release to snatched if it was missing before - fireEvent('release.update', id = rel.id, status = snatched_status, single = True) + fireEvent('release.update_status', rel.id, status = snatched_status, single = True) # Remove the downloading tag self.untagDir(item['folder'], 'downloading') @@ -775,11 +775,11 @@ Remove it if you want it to be renamed (again, or at least let it try again) #Check status if already missing and for how long, if > 1 week, set to ignored else to missing if rel.status_id == missing_status.get('id'): - if rel.last_edit < int(time.time()) - 7*24*60*60: - fireEvent('release.update', id = rel.id, status = ignored_status, single = True) + if rel.last_edit < int(time.time()) - 7 * 24 * 60 * 60: + fireEvent('release.update_status', rel.id, status = ignored_status, single = True) else: # Set the release to missing - fireEvent('release.update', id = rel.id, status = missing_status, single = True) + fireEvent('release.update_status', rel.id, status = missing_status, single = True) except: log.error('Failed checking for release in downloader: %s', traceback.format_exc())