def get_TV(self, vlc, series_info=(None, None, None)): try: series, seasonNumber, episodeNumber = series_info if series is None: now_playing = parse_tv(self.cache['vlc_file_name']) if not now_playing: self.log.info( "Not able to parse a tvshow from the file title") return seriesName = now_playing['show'] seasonNumber = now_playing['season'] episodeNumber = now_playing['episodes'] if self.valid_TV(seriesName): series = self.tvdb[seriesName] self.cache["series_info"] = ( deepcopy(series), seasonNumber, episodeNumber) if series is not None: duration = int(self.cache['vlc_file_length']) time = int(self.vlcTime) # Calculate the relative time and duration depending on # the number of episodes duration = int(float(duration) / float(len(episodeNumber))) currentEpisode = episodeNumber[int(time / duration)] time = time % duration # Calculate the given percentage for the current episode percentage = time * 100 / duration try: episode = series[int(seasonNumber)][int(currentEpisode)] return self.set_video( True, series['seriesname'], series['firstaired'], episode['imdb_id'], duration, percentage, episode['seasonnumber'], episode['episodenumber'], series['imdb_id']) except: self.log.warning("Episode : No valid episode found !") self.log.debug("get_TV::Here's to help debug", exc_info=sys.exc_info()) self.cache["series_info"] = None return except: self.log.info("No matching tv show found for video playing") self.log.debug("get_TV::Here's to help debug", exc_info=sys.exc_info()) return
def _filenameparser_parse_tv_test(self, expected, string): parsed = filenameparser.parse_tv(string) self.assertEqual(expected, parsed)