@@ -86,23 +86,26 @@ def transitionCheck(self, isSeek: bool = False) -> None:
8686 self .videosToRate .append (self .curVideoInfo )
8787 # update current information
8888 self .curMPEpisode = epIndex
89- self .curVideoInfo = kodiUtilities .kodiRpcToTraktMediaObject (
90- "episode" ,
91- kodiUtilities .getEpisodeDetailsFromKodi (
92- self .curVideo ["multi_episode_data" ][
93- self .curMPEpisode
94- ],
95- [
96- "showtitle" ,
97- "season" ,
98- "episode" ,
99- "tvshowid" ,
100- "uniqueid" ,
101- "file" ,
102- "playcount" ,
103- ],
104- ),
89+ episode_details = kodiUtilities .getEpisodeDetailsFromKodi (
90+ self .curVideo ["multi_episode_data" ][
91+ self .curMPEpisode
92+ ],
93+ [
94+ "showtitle" ,
95+ "season" ,
96+ "episode" ,
97+ "tvshowid" ,
98+ "uniqueid" ,
99+ "file" ,
100+ "playcount" ,
101+ ],
105102 )
103+ if episode_details :
104+ self .curVideoInfo = kodiUtilities .kodiRpcToTraktMediaObject (
105+ "episode" , episode_details
106+ )
107+ else :
108+ self .curVideoInfo = None
106109
107110 logger .debug (
108111 "Multi episode transition - call start for next episode"
@@ -257,21 +260,24 @@ def playbackStarted(self, data: Dict) -> None:
257260 self .isMultiPartEpisode = False
258261 if utilities .isMovie (self .curVideo ["type" ]):
259262 if "id" in self .curVideo :
260- self .curVideoInfo = kodiUtilities .kodiRpcToTraktMediaObject (
261- "movie" ,
262- kodiUtilities .getMovieDetailsFromKodi (
263- self .curVideo ["id" ],
264- [
265- "uniqueid" ,
266- "imdbnumber" ,
267- "title" ,
268- "year" ,
269- "file" ,
270- "lastplayed" ,
271- "playcount" ,
272- ],
273- ),
263+ movieDetailsKodi = kodiUtilities .getMovieDetailsFromKodi (
264+ self .curVideo ["id" ],
265+ [
266+ "uniqueid" ,
267+ "imdbnumber" ,
268+ "title" ,
269+ "year" ,
270+ "file" ,
271+ "lastplayed" ,
272+ "playcount" ,
273+ ],
274274 )
275+ if movieDetailsKodi :
276+ self .curVideoInfo = kodiUtilities .kodiRpcToTraktMediaObject (
277+ "movie" , movieDetailsKodi
278+ )
279+ else :
280+ self .curVideoInfo = None
275281 elif "video_ids" in self .curVideo :
276282 self .curVideoInfo = {"ids" : self .curVideo ["video_ids" ]}
277283 elif "title" in self .curVideo and "year" in self .curVideo :
@@ -297,19 +303,22 @@ def playbackStarted(self, data: Dict) -> None:
297303 "playcount" ,
298304 ],
299305 )
300- title , year = utilities .regex_year (episodeDetailsKodi ["showtitle" ])
301- if not year :
302- self .traktShowSummary = {
303- "title" : episodeDetailsKodi ["showtitle" ],
304- "year" : episodeDetailsKodi ["year" ],
305- }
306+ if episodeDetailsKodi :
307+ title , year = utilities .regex_year (episodeDetailsKodi ["showtitle" ])
308+ if not year :
309+ self .traktShowSummary = {
310+ "title" : episodeDetailsKodi ["showtitle" ],
311+ "year" : episodeDetailsKodi .get ("year" ),
312+ }
313+ else :
314+ self .traktShowSummary = {"title" : title , "year" : year }
315+ if "show_ids" in episodeDetailsKodi :
316+ self .traktShowSummary ["ids" ] = episodeDetailsKodi ["show_ids" ]
317+ self .curVideoInfo = kodiUtilities .kodiRpcToTraktMediaObject (
318+ "episode" , episodeDetailsKodi
319+ )
306320 else :
307- self .traktShowSummary = {"title" : title , "year" : year }
308- if "show_ids" in episodeDetailsKodi :
309- self .traktShowSummary ["ids" ] = episodeDetailsKodi ["show_ids" ]
310- self .curVideoInfo = kodiUtilities .kodiRpcToTraktMediaObject (
311- "episode" , episodeDetailsKodi
312- )
321+ self .curVideoInfo = None
313322 if not self .curVideoInfo : # getEpisodeDetailsFromKodi was empty
314323 logger .debug (
315324 "Episode details from Kodi was empty, ID (%d) seems invalid, aborting further scrobbling of this episode."
@@ -399,10 +408,10 @@ def playbackStarted(self, data: Dict) -> None:
399408 }
400409 result ["episode" ]["season" ] = self .curVideoInfo ["season" ]
401410
402- if "id" in self .curVideo :
403- if utilities .isMovie (self .curVideo ["type" ]):
411+ if result and "id" in self .curVideo :
412+ if utilities .isMovie (self .curVideo ["type" ]) and "movie" in result :
404413 result ["movie" ]["movieid" ] = self .curVideo ["id" ]
405- elif utilities .isEpisode (self .curVideo ["type" ]):
414+ elif utilities .isEpisode (self .curVideo ["type" ]) and "episode" in result :
406415 result ["episode" ]["episodeid" ] = self .curVideo ["id" ]
407416
408417 self .__preFetchUserRatings (result )
0 commit comments