Ensure that fanart sync closes DB connection during playback

This commit is contained in:
croneter 2018-11-13 15:01:31 +01:00
parent 789b214b50
commit 5c7968abdb

View file

@ -44,17 +44,24 @@ class FanartThread(backgroundthread.KillableThread):
def _run_internal(self): def _run_internal(self):
LOG.info('Starting FanartThread') LOG.info('Starting FanartThread')
while True:
with PlexDB() as plexdb: with PlexDB() as plexdb:
func = plexdb.every_plex_id if self.refresh else plexdb.missing_fanart func = plexdb.every_plex_id if self.refresh else plexdb.missing_fanart
for typus in SUPPORTED_TYPES: for typus in SUPPORTED_TYPES:
for plex_id in func(typus): for plex_id in func(typus):
if self.isCanceled() or self.isSuspended():
break
process_fanart(plex_id, typus, self.refresh)
else:
# Done processing!
break
# Need to have these outside our DB context to close the connection
if self.isCanceled(): if self.isCanceled():
return return
if self.isSuspended(): if self.isSuspended():
if self.isCanceled(): if self.isCanceled():
return return
xbmc.sleep(1000) xbmc.sleep(1000)
process_fanart(plex_id, typus, self.refresh)
LOG.info('FanartThread finished') LOG.info('FanartThread finished')
self.callback() self.callback()