def get_episode_thumb_path(ep_obj): """ Returns the path where the episode thumbnail should be stored. Defaults to the same path as the episode file but with a .metathumb extension. ep_obj: a TVEpisode instance for which to create the thumbnail """ if os.path.isfile(ep_obj.location): tbn_filename = replaceExtension(ep_obj.location, 'metathumb') else: return None return tbn_filename
def get_episode_thumb_path(ep_obj): """ Returns the path where the episode thumbnail should be stored. Defaults to the same path as the episode file but with a .tbn extension. ep_obj: a TVEpisode instance for which to create the thumbnail """ if os.path.isfile(ep_obj.location): tbn_filename = replaceExtension(ep_obj.location, 'tbn') else: return None return tbn_filename
def get_episode_thumb_path(ep_obj): """ Returns a full show dir/metadata/episode.jpg path for MediaBrowser episode thumbs. ep_obj: a TVEpisode object to get the path from """ if os.path.isfile(ep_obj.location): tbn_file_name = replaceExtension(os.path.basename(ep_obj.location), "jpg") metadata_dir_name = os.path.join(os.path.dirname(ep_obj.location), "metadata") tbn_file_path = os.path.join(metadata_dir_name, tbn_file_name) else: return None return tbn_file_path
def get_episode_thumb_path(ep_obj): """ Returns a full show dir/metadata/episode.jpg path for MediaBrowser episode thumbs. ep_obj: a TVEpisode object to get the path from """ if os.path.isfile(ep_obj.location): tbn_file_name = replaceExtension(os.path.basename(ep_obj.location), 'jpg') metadata_dir_name = os.path.join(os.path.dirname(ep_obj.location), 'metadata') tbn_file_path = os.path.join(metadata_dir_name, tbn_file_name) else: return None return tbn_file_path
def get_episode_file_path(self, ep_obj): """ Returns a full show dir/metadata/episode.xml path for MediaBrowser episode metadata files ep_obj: a TVEpisode object to get the path for """ if os.path.isfile(ep_obj.location): xml_file_name = replaceExtension(os.path.basename(ep_obj.location), self._ep_nfo_extension) metadata_dir_name = os.path.join(os.path.dirname(ep_obj.location), "metadata") xml_file_path = os.path.join(metadata_dir_name, xml_file_name) else: sickrage.LOGGER.debug("Episode location doesn't exist: " + str(ep_obj.location)) return "" return xml_file_path
def get_episode_file_path(self, ep_obj): """ Returns a full show dir/metadata/episode.xml path for MediaBrowser episode metadata files ep_obj: a TVEpisode object to get the path for """ if os.path.isfile(ep_obj.location): xml_file_name = replaceExtension(os.path.basename(ep_obj.location), self._ep_nfo_extension) metadata_dir_name = os.path.join(os.path.dirname(ep_obj.location), 'metadata') xml_file_path = os.path.join(metadata_dir_name, xml_file_name) else: sickrage.LOGGER.debug("Episode location doesn't exist: " + str(ep_obj.location)) return '' return xml_file_path
def get_episode_thumb_path(ep_obj): return replaceExtension(ep_obj.location, 'jpg')
def get_episode_file_path(self, ep_obj): return replaceExtension(ep_obj.location, self._ep_nfo_extension)
def loadFromNFO(self, location): if not os.path.isdir(self.show._location): sickrage.LOGGER.info( str( self.show.indexerid) + ": The show dir is missing, not bothering to try loading the episode NFO") return sickrage.LOGGER.debug( str( self.show.indexerid) + ": Loading episode details from the NFO file associated with " + location) self.location = location if self.location != "": if self.status == UNKNOWN: if isMediaFile(self.location): sickrage.LOGGER.debug("7 Status changes from " + str(self.status) + " to " + str( Quality.statusFromName(self.location, anime=self.show.is_anime))) self.status = Quality.statusFromName(self.location, anime=self.show.is_anime) nfoFile = replaceExtension(self.location, "nfo") sickrage.LOGGER.debug(str(self.show.indexerid) + ": Using NFO name " + nfoFile) if os.path.isfile(nfoFile): try: showXML = ElementTree(file=nfoFile) except (SyntaxError, ValueError) as e: sickrage.LOGGER.error("Error loading the NFO, backing up the NFO and skipping for now: {}".format(e)) try: os.rename(nfoFile, nfoFile + ".old") except Exception as e: sickrage.LOGGER.error( "Failed to rename your episode's NFO file - you need to delete it or fix it: {}".format( e)) raise NoNFOException("Error in NFO format") for epDetails in showXML.iter('episodedetails'): if epDetails.findtext('season') is None or int(epDetails.findtext('season')) != self.season or \ epDetails.findtext('episode') is None or int( epDetails.findtext('episode')) != self.episode: sickrage.LOGGER.debug( "%s: NFO has an <episodedetails> block for a different episode - wanted S%02dE%02d but got S%02dE%02d" % ( self.show.indexerid, self.season or 0, self.episode or 0, epDetails.findtext('season') or 0, epDetails.findtext('episode') or 0)) continue if epDetails.findtext('title') is None or epDetails.findtext('aired') is None: raise NoNFOException("Error in NFO format (missing episode title or airdate)") self.name = epDetails.findtext('title') self.episode = int(epDetails.findtext('episode')) self.season = int(epDetails.findtext('season')) xem_refresh(self.show.indexerid, self.show.indexer) self.scene_absolute_number = get_scene_absolute_numbering( self.show.indexerid, self.show.indexer, self.absolute_number ) self.scene_season, self.scene_episode = get_scene_numbering( self.show.indexerid, self.show.indexer, self.season, self.episode ) self.description = epDetails.findtext('plot') if self.description is None: self.description = "" if epDetails.findtext('aired'): rawAirdate = [int(x) for x in epDetails.findtext('aired').split("-")] self.airdate = datetime.date(rawAirdate[0], rawAirdate[1], rawAirdate[2]) else: self.airdate = datetime.date.fromordinal(1) self.hasnfo = True else: self.hasnfo = False if os.path.isfile(replaceExtension(nfoFile, "tbn")): self.hastbn = True else: self.hastbn = False