Fix currently playing showing old Plex items

- E.g. when watching Kodi TV/PVR
This commit is contained in:
tomkat83 2016-04-11 10:41:13 +02:00
parent f0ba60c781
commit 19eae61737

View file

@ -136,6 +136,10 @@ class SubscriptionManager:
def notify(self, event = False): def notify(self, event = False):
self.cleanup() self.cleanup()
# Don't tell anyone if we don't know a Plex ID and are still playing
# (e.g. no stop called). Used for e.g. PVR/TV without PKC usage
if not window('Plex_currently_playing_itemid'):
return True
players = self.js.getPlayers() players = self.js.getPlayers()
# fetch the message, subscribers or not, since the server # fetch the message, subscribers or not, since the server
# will need the info anyway # will need the info anyway
@ -150,10 +154,9 @@ class SubscriptionManager:
def notifyServer(self, players): def notifyServer(self, players):
if not players: if not players:
return True return True
params = {'state': 'stopped'}
for p in players.values(): for p in players.values():
info = self.playerprops[p.get('playerid')] info = self.playerprops[p.get('playerid')]
params = {} params = {'state': 'stopped'}
params['containerKey'] = (self.containerKey or "/library/metadata/900000") params['containerKey'] = (self.containerKey or "/library/metadata/900000")
if info.get('playQueueID'): if info.get('playQueueID'):
params['containerKey'] = '/playQueues/' + info['playQueueID'] params['containerKey'] = '/playQueues/' + info['playQueueID']
@ -164,16 +167,15 @@ class SubscriptionManager:
params['state'] = info['state'] params['state'] = info['state']
params['time'] = info['time'] params['time'] = info['time']
params['duration'] = info['duration'] params['duration'] = info['duration']
serv = self.getServerByHost(self.server)
url = serv.get('protocol', 'http') + '://' \ serv = self.getServerByHost(self.server)
+ serv.get('server', 'localhost') + ':' \ url = serv.get('protocol', 'http') + '://' \
+ serv.get('port', '32400') + "/:/timeline" + serv.get('server', 'localhost') + ':' \
self.doUtils(url, type="GET", parameters=params) + serv.get('port', '32400') + "/:/timeline"
# requests.getwithparams(serv.get('server', 'localhost'), serv.get('port', 32400), "/:/timeline", params, getPlexHeaders(), serv.get('protocol', 'http')) self.doUtils(url, type="GET", parameters=params)
self.logMsg("params: %s" % params, 2) # requests.getwithparams(serv.get('server', 'localhost'), serv.get('port', 32400), "/:/timeline", params, getPlexHeaders(), serv.get('protocol', 'http'))
self.logMsg("players: %s" % players, 2) self.logMsg("sent server notification with state = %s"
self.logMsg("sent server notification with state = %s" % params['state'], 2)
% params['state'], 2)
def controllable(self): def controllable(self):
return "volume,shuffle,repeat,audioStream,videoStream,subtitleStream,skipPrevious,skipNext,seekTo,stepBack,stepForward,stop,playPause" return "volume,shuffle,repeat,audioStream,videoStream,subtitleStream,skipPrevious,skipNext,seekTo,stepBack,stepForward,stop,playPause"