Add userdata update only for music

Only songs have playcount and lastplayed
This commit is contained in:
angelblue05 2015-08-14 22:16:38 -05:00
parent f87cdae256
commit db45faed24
2 changed files with 51 additions and 10 deletions

View File

@ -869,12 +869,13 @@ class LibrarySync(threading.Thread):
connectionvideo = utils.KodiSQL()
cursorvideo = connectionvideo.cursor()
# Database connection to myMusicXX.db
#connectionmusic = utils.KodiSQL('music')
#cursormusic = connectionmusic.cursor()
connectionmusic = utils.KodiSQL('music')
cursormusic = connectionmusic.cursor()
count = 1
total = len(listItems) + 1
for userdata in listItems:
# Sort between video and music
itemId = userdata['ItemId']
if(pDialog != None):
@ -889,13 +890,12 @@ class LibrarySync(threading.Thread):
mediatype = cursorvideo.fetchone()[0]
video.append(userdata)
except:
self.logMsg("Item %s is not found in Kodi database." % itemId, 2)
'''cursormusic.execute("SELECT media_type FROM emby WHERE emby_id = ?", (itemId,))
cursormusic.execute("SELECT media_type FROM emby WHERE emby_id = ?", (itemId,))
try: # Search music database
self.logMsg("Check the music database.", 1)
mediatype = cursormusic.fetchone()[0]
music.append(userdata)
except: self.logMsg("Item %s is not found in Kodi database." % itemId, 2)'''
except: self.logMsg("Item %s is not found in Kodi database." % itemId, 2)
if len(video) > 0:
connection = connectionvideo
@ -916,20 +916,27 @@ class LibrarySync(threading.Thread):
# Close connection
cursorvideo.close()
'''if len(music) > 0:
if len(music) > 0:
connection = connectionmusic
cursor = cursormusic
#Process music library
count = 1
total = len(video) + 1
musicenabled = utils.settings('enableMusicSync') == "true"
# Process the userdata update for music library
if musicenabled:
for userdata in music:
if(pDialog != None):
progressTitle = "Incremental Sync "+ " (" + str(count) + " of " + str(total) + ")"
percentage = int(((float(count) / float(total)) * 100))
pDialog.update(percentage, "Emby for Kodi - Incremental Sync User Data ", progressTitle)
count = count + 1
WriteKodiMusicDB().updateUserdata(userdata, connection, cursor)
connection.commit()
xbmc.executebuiltin("UpdateLibrary(music)")'''
#xbmc.executebuiltin("UpdateLibrary(music)")
# Close connection
#cursormusic.close()
cursormusic.close()
if(pDialog != None):
pDialog.close()

View File

@ -446,3 +446,37 @@ class WriteKodiMusicDB():
elif "song" in mediatype:
query = "INSERT OR REPLACE INTO song_genre(idGenre, idSong) values(?, ?)"
cursor.execute(query, (idGenre, id))
def updateUserdata(self, userdata, connection, cursor):
# This updates: LastPlayedDate, Playcount
embyId = userdata['ItemId']
MBitem = ReadEmbyDB().getItem(embyId)
if not MBitem:
self.logMsg("UPDATE userdata to Kodi library FAILED, Item %s not found on server!" % embyId, 1)
return
# Get details
checksum = API().getChecksum(MBitem)
userdata = API().getUserData(MBitem)
# Find the Kodi Id
cursor.execute("SELECT kodi_id, media_type FROM emby WHERE emby_id = ?", (embyId,))
try:
result = cursor.fetchone()
kodiid = result[0]
mediatype = result[1]
self.logMsg("Found embyId: %s in database - kodiId: %s type: %s" % (embyId, kodiid, mediatype), 1)
except:
self.logMsg("Id: %s not found in the emby database table." % embyId, 1)
else:
if mediatype in ("song"):
playcount = userdata['PlayCount']
dateplayed = userdata['LastPlayedDate']
query = "UPDATE song SET iTimesPlayed = ?, lastplayed = ? WHERE idSong = ?"
cursor.execute(query, (playcount, dateplayed, kodiid))
#update the checksum in emby table
query = "UPDATE emby SET checksum = ? WHERE emby_id = ?"
cursor.execute(query, (checksum, embyId))