mirror of
https://github.com/jellyfin/jellyfin-kodi.git
synced 2025-06-03 23:06:14 +00:00
changes to use native kodi db for inserts
This commit is contained in:
parent
8ec2d7d33b
commit
5f8e5105bb
6 changed files with 520 additions and 482 deletions
144
service.py
144
service.py
|
@ -36,9 +36,6 @@ class Service():
|
|||
ConnectionManager().checkServer()
|
||||
DownloadUtils().authenticate(retreive=True)
|
||||
|
||||
# check kodi library sources
|
||||
mayRun = utils.checkKodiSources()
|
||||
|
||||
player = Player()
|
||||
lastProgressUpdate = datetime.today()
|
||||
|
||||
|
@ -48,86 +45,75 @@ class Service():
|
|||
cur_seconds_fullsync = interval_FullSync
|
||||
cur_seconds_incrsync = interval_IncrementalSync
|
||||
|
||||
if mayRun:
|
||||
ws = WebSocketThread()
|
||||
|
||||
while not self.KodiMonitor.abortRequested():
|
||||
|
||||
ws = WebSocketThread()
|
||||
xbmc.sleep(1000)
|
||||
|
||||
while not self.KodiMonitor.abortRequested():
|
||||
|
||||
xbmc.sleep(1000)
|
||||
|
||||
if xbmc.Player().isPlaying():
|
||||
try:
|
||||
playTime = xbmc.Player().getTime()
|
||||
currentFile = xbmc.Player().getPlayingFile()
|
||||
|
||||
if(player.played_information.get(currentFile) != None):
|
||||
player.played_information[currentFile]["currentPosition"] = playTime
|
||||
|
||||
# send update
|
||||
td = datetime.today() - lastProgressUpdate
|
||||
secDiff = td.seconds
|
||||
if(secDiff > 10):
|
||||
try:
|
||||
player.reportPlayback()
|
||||
except Exception, msg:
|
||||
xbmc.log("MB3 Sync Service -> Exception reporting progress : " + msg)
|
||||
pass
|
||||
lastProgressUpdate = datetime.today()
|
||||
|
||||
except Exception, e:
|
||||
xbmc.log("MB3 Sync Service -> Exception in Playback Monitor Service : " + str(e))
|
||||
pass
|
||||
else:
|
||||
# background worker for database sync
|
||||
if DownloadUtils().authenticate(retreive=False) != "":
|
||||
|
||||
# Correctly launch the websocket, if user manually launches the add-on
|
||||
if (self.newWebSocketThread == None):
|
||||
self.newWebSocketThread = "Started"
|
||||
ws.start()
|
||||
|
||||
#full sync
|
||||
if(cur_seconds_fullsync >= interval_FullSync):
|
||||
xbmc.log("Doing_Db_Sync: syncDatabase (Started)")
|
||||
worked = librarySync.syncDatabase()
|
||||
xbmc.log("Doing_Db_Sync: syncDatabase (Finished) " + str(worked))
|
||||
if(worked):
|
||||
cur_seconds_fullsync = 0
|
||||
else:
|
||||
cur_seconds_fullsync = interval_FullSync - 10
|
||||
if xbmc.Player().isPlaying():
|
||||
try:
|
||||
playTime = xbmc.Player().getTime()
|
||||
currentFile = xbmc.Player().getPlayingFile()
|
||||
|
||||
if(player.played_information.get(currentFile) != None):
|
||||
player.played_information[currentFile]["currentPosition"] = playTime
|
||||
|
||||
# send update
|
||||
td = datetime.today() - lastProgressUpdate
|
||||
secDiff = td.seconds
|
||||
if(secDiff > 10):
|
||||
try:
|
||||
player.reportPlayback()
|
||||
except Exception, msg:
|
||||
xbmc.log("MB3 Sync Service -> Exception reporting progress : " + msg)
|
||||
pass
|
||||
lastProgressUpdate = datetime.today()
|
||||
|
||||
except Exception, e:
|
||||
xbmc.log("MB3 Sync Service -> Exception in Playback Monitor Service : " + str(e))
|
||||
pass
|
||||
else:
|
||||
# background worker for database sync
|
||||
if DownloadUtils().authenticate(retreive=False) != "":
|
||||
|
||||
# Correctly launch the websocket, if user manually launches the add-on
|
||||
if (self.newWebSocketThread == None):
|
||||
self.newWebSocketThread = "Started"
|
||||
ws.start()
|
||||
|
||||
#full sync
|
||||
if(cur_seconds_fullsync >= interval_FullSync):
|
||||
xbmc.log("Doing_Db_Sync: syncDatabase (Started)")
|
||||
worked = librarySync.syncDatabase()
|
||||
xbmc.log("Doing_Db_Sync: syncDatabase (Finished) " + str(worked))
|
||||
if(worked):
|
||||
cur_seconds_fullsync = 0
|
||||
else:
|
||||
cur_seconds_fullsync += 1
|
||||
|
||||
#incremental sync
|
||||
if(cur_seconds_incrsync >= interval_IncrementalSync):
|
||||
xbmc.log("Doing_Db_Sync: updatePlayCounts (Started)")
|
||||
worked = librarySync.updatePlayCounts()
|
||||
xbmc.log("Doing_Db_Sync: updatePlayCounts (Finished) " + str(worked))
|
||||
if(worked):
|
||||
cur_seconds_incrsync = 0
|
||||
else:
|
||||
cur_seconds_incrsync = interval_IncrementalSync - 10
|
||||
else:
|
||||
cur_seconds_incrsync += 1
|
||||
|
||||
# check if we need to run lib updates
|
||||
WINDOW = xbmcgui.Window( 10000 )
|
||||
if(WINDOW.getProperty("cleanNeeded") == "true"):
|
||||
xbmc.executebuiltin("CleanLibrary(video)")
|
||||
WINDOW.clearProperty("cleanNeeded")
|
||||
|
||||
if(WINDOW.getProperty("updateNeeded") == "true"):
|
||||
xbmc.executebuiltin("UpdateLibrary(video)")
|
||||
WINDOW.clearProperty("updateNeeded")
|
||||
|
||||
cur_seconds_fullsync = interval_FullSync - 10
|
||||
else:
|
||||
xbmc.log("Not authenticated yet")
|
||||
|
||||
utils.logMsg("MB3 Sync Service", "stopping Service",0)
|
||||
|
||||
if (self.newWebSocketThread != None):
|
||||
ws.stopClient()
|
||||
cur_seconds_fullsync += 1
|
||||
|
||||
#incremental sync
|
||||
if(cur_seconds_incrsync >= interval_IncrementalSync):
|
||||
xbmc.log("Doing_Db_Sync: updatePlayCounts (Started)")
|
||||
worked = librarySync.updatePlayCounts()
|
||||
xbmc.log("Doing_Db_Sync: updatePlayCounts (Finished) " + str(worked))
|
||||
if(worked):
|
||||
cur_seconds_incrsync = 0
|
||||
else:
|
||||
cur_seconds_incrsync = interval_IncrementalSync - 10
|
||||
else:
|
||||
cur_seconds_incrsync += 1
|
||||
|
||||
|
||||
else:
|
||||
xbmc.log("Not authenticated yet")
|
||||
|
||||
utils.logMsg("MB3 Sync Service", "stopping Service",0)
|
||||
|
||||
if (self.newWebSocketThread != None):
|
||||
ws.stopClient()
|
||||
|
||||
|
||||
#start the service
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue