diff --git a/resources/lib/WriteKodiDB.py b/resources/lib/WriteKodiDB.py
index f2651901..65f4c06a 100644
--- a/resources/lib/WriteKodiDB.py
+++ b/resources/lib/WriteKodiDB.py
@@ -11,6 +11,7 @@ import json
import urllib
import sqlite3
import os
+from decimal import Decimal
from DownloadUtils import DownloadUtils
from PlayUtils import PlayUtils
@@ -80,7 +81,7 @@ class WriteKodiDB():
self.getPropertyParamArray_Batched(KodiItem, "tag", MBitem.get("Tag"), params)
if MBitem.get("CommunityRating") != None:
- self.getPropertyParam_Batched(KodiItem, "rating", int(MBitem.get("CommunityRating")), params)
+ self.getPropertyParam_Batched(KodiItem, "rating", Decimal(format(MBitem.get("CommunityRating"),'.1f')), params)
#self.getPropertyParam_Batched(KodiItem, "plot", MBitem.get("Overview"), params)
self.getPropertyParam_Batched(KodiItem, "plotoutline", MBitem.get("ShortOverview"), params)
@@ -320,7 +321,7 @@ class WriteKodiDB():
changes |= self.updateProperty(KodiItem,"lastplayed",MBitem.get("LastPlayedDate"),"tvshow")
if MBitem.get("CommunityRating") != None:
- changes |= self.updateProperty(KodiItem,"rating",int(MBitem.get("CommunityRating")),"tvshow")
+ changes |= self.updateProperty(KodiItem,"rating",Decimal(format(MBitem.get("CommunityRating"),'.1f')),"tvshow")
changes |= self.updateProperty(KodiItem,"sorttitle",utils.convertEncoding(MBitem["SortName"]),"tvshow")
changes |= self.updateProperty(KodiItem,"title",utils.convertEncoding(MBitem["Name"]),"tvshow")
@@ -395,7 +396,7 @@ class WriteKodiDB():
changes |= self.updateProperty(KodiItem,"firstaired",firstaired,"episode")
if MBitem.get("CommunityRating") != None:
- changes |= self.updateProperty(KodiItem,"rating",int(MBitem.get("CommunityRating")),"episode")
+ changes |= self.updateProperty(KodiItem,"rating",Decimal(format(MBitem.get("CommunityRating"),'.1f')),"episode")
if MBitem.get("ParentIndexNumber") != None:
season = int(MBitem.get("ParentIndexNumber"))
@@ -558,6 +559,13 @@ class WriteKodiDB():
params.append("\"" + propertyName + "\": " + str(propertyValue))
#xbmc.executeJSONRPC(jsoncommand_i %(id, propertyName, propertyValue))
changes = True
+ elif type(propertyValue) is Decimal:
+ #extra compare decimals as int (rounded)
+ if int(propertyValue) != int(KodiItem[propertyName]):
+ utils.logMsg("Emby","updating property..." + str(propertyName))
+ utils.logMsg("Emby","kodi value:" + str(KodiItem[propertyName]) + " MB value: " + str(propertyValue))
+ params.append("\"" + propertyName + "\": " + str(propertyValue))
+ changes = True
else:
#xbmc.sleep(sleepVal)
utils.logMsg("Emby","updating property..." + str(propertyName))
@@ -572,19 +580,19 @@ class WriteKodiDB():
def updateProperty(self,KodiItem,propertyName,propertyValue,fileType,forced=False):
if fileType == "tvshow":
id = KodiItem['tvshowid']
- jsoncommand_i = '{"jsonrpc": "2.0", "method": "VideoLibrary.SetTVShowDetails", "params": { "tvshowid": %i, "%s": %i}, "id": 1 }'
+ jsoncommand_i = '{"jsonrpc": "2.0", "method": "VideoLibrary.SetTVShowDetails", "params": { "tvshowid": %i, "%s": %s}, "id": 1 }'
jsoncommand_s = '{"jsonrpc": "2.0", "method": "VideoLibrary.SetTVShowDetails", "params": { "tvshowid": %i, "%s": "%s"}, "id": 1 }'
elif fileType == "episode":
id = KodiItem['episodeid']
- jsoncommand_i = '{"jsonrpc": "2.0", "method": "VideoLibrary.SetEpisodeDetails", "params": { "episodeid": %i, "%s": %i}, "id": 1 }'
+ jsoncommand_i = '{"jsonrpc": "2.0", "method": "VideoLibrary.SetEpisodeDetails", "params": { "episodeid": %i, "%s": %s}, "id": 1 }'
jsoncommand_s = '{"jsonrpc": "2.0", "method": "VideoLibrary.SetEpisodeDetails", "params": { "episodeid": %i, "%s": "%s"}, "id": 1 }'
elif fileType == "musicvideo":
id = KodiItem['musicvideoid']
- jsoncommand_i = '{"jsonrpc": "2.0", "method": "VideoLibrary.SetMusicVideoDetails", "params": { "musicvideoid": %i, "%s": %i}, "id": 1 }'
+ jsoncommand_i = '{"jsonrpc": "2.0", "method": "VideoLibrary.SetMusicVideoDetails", "params": { "musicvideoid": %i, "%s": %s}, "id": 1 }'
jsoncommand_s = '{"jsonrpc": "2.0", "method": "VideoLibrary.SetMusicVideoDetails", "params": { "musicvideoid": %i, "%s": "%s"}, "id": 1 }'
elif fileType == "movie":
id = KodiItem['movieid']
- jsoncommand_i = '{"jsonrpc": "2.0", "method": "VideoLibrary.SetMovieDetails", "params": { "movieid": %i, "%s": %i}, "id": 1 }'
+ jsoncommand_i = '{"jsonrpc": "2.0", "method": "VideoLibrary.SetMovieDetails", "params": { "movieid": %i, "%s": %s}, "id": 1 }'
jsoncommand_s = '{"jsonrpc": "2.0", "method": "VideoLibrary.SetMovieDetails", "params": { "movieid": %i, "%s": "%s"}, "id": 1 }'
changes = False
@@ -596,6 +604,14 @@ class WriteKodiDB():
utils.logMsg("Emby","kodi value:" + str(KodiItem[propertyName]) + " MB value: " + str(propertyValue))
xbmc.executeJSONRPC(jsoncommand_i %(id, propertyName, propertyValue))
changes = True
+ elif type(propertyValue) is Decimal:
+ #extra compare decimals as int (rounded)
+ if int(propertyValue) != int(KodiItem[propertyName]):
+ xbmc.sleep(sleepVal)
+ utils.logMsg("Emby","updating property..." + str(propertyName))
+ utils.logMsg("Emby","kodi value:" + str(KodiItem[propertyName]) + " MB value: " + str(propertyValue))
+ xbmc.executeJSONRPC(jsoncommand_i %(id, propertyName, propertyValue))
+ changes = True
else:
xbmc.sleep(sleepVal)
utils.logMsg("Emby","updating property..." + str(propertyName))
@@ -742,10 +758,8 @@ class WriteKodiDB():
title = utils.convertEncoding(MBitem["Name"])
sorttitle = utils.convertEncoding(MBitem["SortName"])
year = MBitem.get("ProductionYear")
- if MBitem.get("CommunityRating") != None:
- rating = int(MBitem.get("CommunityRating"))
- else:
- rating = None
+ rating = MBitem.get("CommunityRating")
+
if MBitem.get("ShortOverview") != None:
shortplot = utils.convertEncoding(MBitem.get("ShortOverview"))
else:
@@ -765,7 +779,7 @@ class WriteKodiDB():
cursor.execute("select coalesce(max(idMovie),0) as movieid from movie")
movieid = cursor.fetchone()[0]
movieid = movieid + 1
- pathsql="insert into movie(idMovie, idFile, c00, c01, c02, c04, c07, c08, c09, c10, c11, c16, c19, c20) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
+ pathsql="insert into movie(idMovie, idFile, c00, c01, c02, c05, c07, c08, c09, c10, c11, c16, c19, c20) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
cursor.execute(pathsql, (movieid, fileid, title, plot, shortplot, rating, year, thumb, MBitem["Id"], sorttitle, runtime, title, trailerUrl, fanart))
@@ -961,10 +975,7 @@ class WriteKodiDB():
plot = utils.convertEncoding(API().getOverview(MBitem))
thumb = "" + API().getArtwork(MBitem, "Primary") + ""
title = utils.convertEncoding(MBitem["Name"])
- if MBitem.get("CommunityRating") != None:
- rating = int(MBitem.get("CommunityRating"))
- else:
- rating = None
+ rating = MBitem.get("CommunityRating")
#create the episode
cursor.execute("select coalesce(max(idEpisode),0) as episodeid from episode")
@@ -1066,10 +1077,7 @@ class WriteKodiDB():
fanart = "" + API().getArtwork(MBitem, "Backdrop") + ""
title = utils.convertEncoding(MBitem["Name"])
sorttitle = utils.convertEncoding(MBitem["SortName"])
- if MBitem.get("CommunityRating") != None:
- rating = int(MBitem.get("CommunityRating"))
- else:
- rating = None
+ rating = MBitem.get("CommunityRating")
#create the tvshow
cursor.execute("select coalesce(max(idShow),0) as showid from tvshow")