[TV] Updated ShowBase.create() to use "media.with_identifiers"
This commit is contained in:
1 parent
478dc0f242
commit
12dd9c6b14
1 file changed
+24
-21
@@ -78,8 +78,6 @@ class ShowBase(MediaBase):
|
|||||||
log.error('Failed adding media: %s', traceback.format_exc())
|
log.error('Failed adding media: %s', traceback.format_exc())
|
||||||
|
|
||||||
def create(self, info, params = None, force_readd = True, search_after = True, update_after = True, notify_after = True, status = None):
|
def create(self, info, params = None, force_readd = True, search_after = True, update_after = True, notify_after = True, status = None):
|
||||||
db = get_db()
|
|
||||||
|
|
||||||
# Set default title
|
# Set default title
|
||||||
def_title = self.getDefaultTitle(info)
|
def_title = self.getDefaultTitle(info)
|
||||||
|
|
||||||
@@ -106,29 +104,34 @@ class ShowBase(MediaBase):
|
|||||||
# Update media with info
|
# Update media with info
|
||||||
self.updateInfo(media, info)
|
self.updateInfo(media, info)
|
||||||
|
|
||||||
new = False
|
existing_show = fireEvent('media.with_identifiers', params.get('identifiers'), with_doc = True)
|
||||||
try:
|
|
||||||
m = db.get('media', 'thetvdb-%s' % params.get('identifiers', {}).get('thetvdb'), with_doc = True)['doc']
|
db = get_db()
|
||||||
except:
|
|
||||||
new = True
|
if existing_show:
|
||||||
m = db.insert(media)
|
s = existing_show['doc']
|
||||||
|
s.update(media)
|
||||||
|
|
||||||
|
show = db.update(s)
|
||||||
|
else:
|
||||||
|
show = db.insert(media)
|
||||||
|
|
||||||
# Update dict to be usable
|
# Update dict to be usable
|
||||||
m.update(media)
|
show.update(media)
|
||||||
|
|
||||||
added = True
|
added = True
|
||||||
do_search = False
|
do_search = False
|
||||||
search_after = search_after and self.conf('search_on_add', section = 'showsearcher')
|
search_after = search_after and self.conf('search_on_add', section = 'showsearcher')
|
||||||
onComplete = None
|
onComplete = None
|
||||||
|
|
||||||
if new:
|
if existing_show:
|
||||||
if search_after:
|
if search_after:
|
||||||
onComplete = self.createOnComplete(m['_id'])
|
onComplete = self.createOnComplete(show['_id'])
|
||||||
|
|
||||||
search_after = False
|
search_after = False
|
||||||
elif force_readd:
|
elif force_readd:
|
||||||
# Clean snatched history
|
# Clean snatched history
|
||||||
for release in fireEvent('release.for_media', m['_id'], single = True):
|
for release in fireEvent('release.for_media', show['_id'], single = True):
|
||||||
if release.get('status') in ['downloaded', 'snatched', 'done']:
|
if release.get('status') in ['downloaded', 'snatched', 'done']:
|
||||||
if params.get('ignore_previous', False):
|
if params.get('ignore_previous', False):
|
||||||
release['status'] = 'ignored'
|
release['status'] = 'ignored'
|
||||||
@@ -136,35 +139,35 @@ class ShowBase(MediaBase):
|
|||||||
else:
|
else:
|
||||||
fireEvent('release.delete', release['_id'], single = True)
|
fireEvent('release.delete', release['_id'], single = True)
|
||||||
|
|
||||||
m['profile_id'] = params.get('profile_id', default_profile.get('id'))
|
show['profile_id'] = params.get('profile_id', default_profile.get('id'))
|
||||||
m['category_id'] = media.get('category_id')
|
show['category_id'] = media.get('category_id')
|
||||||
m['last_edit'] = int(time.time())
|
show['last_edit'] = int(time.time())
|
||||||
|
|
||||||
do_search = True
|
do_search = True
|
||||||
db.update(m)
|
db.update(show)
|
||||||
else:
|
else:
|
||||||
params.pop('info', None)
|
params.pop('info', None)
|
||||||
log.debug('Show already exists, not updating: %s', params)
|
log.debug('Show already exists, not updating: %s', params)
|
||||||
added = False
|
added = False
|
||||||
|
|
||||||
# Create episodes
|
# Create episodes
|
||||||
self.createEpisodes(m, seasons)
|
self.createEpisodes(show, seasons)
|
||||||
|
|
||||||
# Trigger update info
|
# Trigger update info
|
||||||
if added and update_after:
|
if added and update_after:
|
||||||
# Do full update to get images etc
|
# Do full update to get images etc
|
||||||
fireEventAsync('show.update_extras', m.copy(), info, store = True, on_complete = onComplete)
|
fireEventAsync('show.update_extras', show.copy(), info, store = True, on_complete = onComplete)
|
||||||
|
|
||||||
# Remove releases
|
# Remove releases
|
||||||
for rel in fireEvent('release.for_media', m['_id'], single = True):
|
for rel in fireEvent('release.for_media', show['_id'], single = True):
|
||||||
if rel['status'] is 'available':
|
if rel['status'] is 'available':
|
||||||
db.delete(rel)
|
db.delete(rel)
|
||||||
|
|
||||||
if do_search and search_after:
|
if do_search and search_after:
|
||||||
onComplete = self.createOnComplete(m['_id'])
|
onComplete = self.createOnComplete(show['_id'])
|
||||||
onComplete()
|
onComplete()
|
||||||
|
|
||||||
return m, added
|
return show, added
|
||||||
|
|
||||||
def createEpisodes(self, m, seasons_info):
|
def createEpisodes(self, m, seasons_info):
|
||||||
# Add Seasons
|
# Add Seasons
|
||||||
|
|||||||
Reference in new issue
Block a user