Enable resume within a playqueue

This commit is contained in:
croneter 2018-02-07 14:32:58 +01:00
parent 5f3aa91a54
commit 0731ae0179
2 changed files with 26 additions and 0 deletions

View file

@ -952,6 +952,24 @@ class Kodidb_Functions():
return None
return int(runtime)
def get_resume(self, file_id):
"""
Returns the first resume point in seconds (int) if found, else None for
the Kodi file_id provided
"""
query = '''
SELECT timeInSeconds
FROM bookmark
WHERE idFile = ?
'''
self.cursor.execute(query, (file_id,))
resume = self.cursor.fetchone()
try:
resume = resume[0]
except TypeError:
resume = None
return resume
def addPlaystate(self, fileid, resume_seconds, total_seconds, playcount, dateplayed):
# Delete existing resume point
query = ' '.join((

View file

@ -11,6 +11,7 @@ from PlexAPI import API
from PlexFunctions import GetPlexMetadata, init_plex_playqueue
from downloadutils import DownloadUtils as DU
import plexdb_functions as plexdb
import kodidb_functions as kodidb
import playlist_func as PL
import playqueue as PQ
from playutils import PlayUtils
@ -287,6 +288,13 @@ def conclude_playback(playqueue, pos):
playutils.audio_subtitle_prefs(listitem)
if state.RESUME_PLAYBACK is True:
state.RESUME_PLAYBACK = False
if (item.offset is None and
item.plex_type not in (v.PLEX_TYPE_SONG, v.PLEX_TYPE_CLIP)):
with plexdb.Get_Plex_DB() as plex_db:
plex_dbitem = plex_db.getItem_byId(item.plex_id)
file_id = plex_dbitem[1] if plex_dbitem else None
with kodidb.GetKodiDB('video') as kodi_db:
item.offset = kodi_db.get_resume(file_id)
LOG.info('Resuming playback at %s', item.offset)
listitem.setProperty('StartOffset', str(item.offset))
listitem.setProperty('resumetime', str(item.offset))