diff --git a/resources/lib/datamanager.py b/resources/lib/datamanager.py index c3ec3e7..3b550ba 100644 --- a/resources/lib/datamanager.py +++ b/resources/lib/datamanager.py @@ -12,6 +12,7 @@ import xbmc from downloadutils import DownloadUtils from simple_logging import SimpleLogging +from utils import getChecksum log = SimpleLogging("EmbyCon." + __name__) @@ -35,8 +36,20 @@ class DataManager(): dataHashString = ""; for item in result: + item_hash_string = getChecksum(item) + item_hash_string = str(itemCount) + "_" + item.get("Name", "-") + "_" + item_hash_string + "|" + log.debug("ITEM_HASH: " + item_hash_string) + dataHashString += item_hash_string + + itemCount = itemCount + 1 + + ''' userData = item.get("UserData") if(userData != None): + + dataHashString += getChecksum(item) + + if(item.get("IsFolder") == False): itemCount = itemCount + 1 itemPercent = 0.0 @@ -62,7 +75,8 @@ class DataManager(): itemString = str(itemCount) + "_" + item.get("Name", "name") + "_" + str(int(PlayedPercentage)) + "-" + str(unwatchedItemCount) + "|" log.debug(itemString) dataHashString = dataHashString + itemString - + ''' + # hash the data dataHashString = dataHashString.encode("UTF-8") m = hashlib.md5() diff --git a/resources/lib/utils.py b/resources/lib/utils.py index d20ddba..d2ac434 100644 --- a/resources/lib/utils.py +++ b/resources/lib/utils.py @@ -86,6 +86,22 @@ def getKodiVersion(): return version def getDetailsString(): - detailsString = "EpisodeCount,SeasonCount,Path,Genres,Studios,CumulativeRunTimeTicks,MediaStreams,Overview" + detailsString = "EpisodeCount,SeasonCount,Path,Genres,Studios,CumulativeRunTimeTicks,MediaStreams,Overview,Etag" #detailsString = "EpisodeCount,SeasonCount,Path,Genres,CumulativeRunTimeTicks" return detailsString + +def getChecksum(item): + # Use the etags checksum and userdata + userdata = item['UserData'] + + checksum = "%s_%s_%s_%s_%s_%s" % ( + item['Etag'], + userdata['Played'], + userdata['IsFavorite'], + userdata.get('Likes', "-"), + userdata['PlaybackPositionTicks'], + userdata.get('UnplayedItemCount', "-")#, + #userdata.get('LastPlayedDate', "-") + ) + + return checksum diff --git a/resources/lib/websocketclient.py b/resources/lib/websocketclient.py index f16bcc0..0a49933 100644 --- a/resources/lib/websocketclient.py +++ b/resources/lib/websocketclient.py @@ -108,7 +108,6 @@ class WebSocketThread(threading.Thread): result = json.loads(message) messageType = result.get("MessageType") - playCommand = result.get("PlayCommand") data = result.get("Data") if(messageType != None and messageType == "Play" and data != None):