Separate movie adding as event

This commit is contained in:
Ruud committed 2012-01-25 14:18:01 +01:00
1 parent a8d8cb8f10
commit 9455a7fe18
1 file changed
+27 -12
+27 -12
View File
@@ -31,10 +31,11 @@ class MoviePlugin(Plugin):
addApiView('movie.refresh', self.refresh) addApiView('movie.refresh', self.refresh)
addApiView('movie.available_chars', self.charView) addApiView('movie.available_chars', self.charView)
addApiView('movie.add', self.add) addApiView('movie.add', self.addView)
addApiView('movie.edit', self.edit) addApiView('movie.edit', self.edit)
addApiView('movie.delete', self.delete) addApiView('movie.delete', self.delete)
addEvent('movie.add', self.add)
addEvent('movie.get', self.get) addEvent('movie.get', self.get)
addEvent('movie.list', self.list) addEvent('movie.list', self.list)
addEvent('movie.restatus', self.restatus) addEvent('movie.restatus', self.restatus)
@@ -194,38 +195,52 @@ class MoviePlugin(Plugin):
'movies': movies, 'movies': movies,
}) })
def add(self): def add(self, params = {}, force_readd = True):
params = getParams() library = fireEvent('library.add', single = True, attrs = params, update_after = False)
db = get_session();
library = fireEvent('library.add', single = True, attrs = params)
# Status # Status
status_active = fireEvent('status.add', 'active', single = True) status_active = fireEvent('status.add', 'active', single = True)
status_snatched = fireEvent('status.add', 'snatched', single = True) status_snatched = fireEvent('status.add', 'snatched', single = True)
default_profile = fireEvent('profile.default', single = True)
db = get_session()
m = db.query(Movie).filter_by(library_id = library.get('id')).first() m = db.query(Movie).filter_by(library_id = library.get('id')).first()
if not m: if not m:
m = Movie( m = Movie(
library_id = library.get('id'), library_id = library.get('id'),
profile_id = params.get('profile_id') profile_id = params.get('profile_id', default_profile.get('id'))
) )
db.add(m) db.add(m)
else: fireEvent('library.update', identifier = params.get('imdb_id'), default_title = params.get('title', ''))
elif force_readd:
# Clean snatched history # Clean snatched history
for release in m.releases: for release in m.releases:
if release.status_id == status_snatched.get('id'): if release.status_id == status_snatched.get('id'):
release.delete() release.delete()
m.profile_id = params.get('profile_id') m.profile_id = params.get('profile_id', default_profile.get('id'))
else:
log.debug('Movie already exists, not updating: %s' % params)
m.status_id = status_active.get('id') if force_readd:
db.commit() m.status_id = status_active.get('id')
db.commit()
movie_dict = m.to_dict(self.default_dict) movie_dict = m.to_dict(self.default_dict)
fireEventAsync('searcher.single', movie_dict) if force_readd:
fireEventAsync('searcher.single', movie_dict)
return movie_dict
def addView(self):
params = getParams()
movie_dict = self.add(params)
return jsonified({ return jsonified({
'success': True, 'success': True,