def get_exact_images(self, mediaitem): path, inputfilename = os.path.split(mediaitem.file) sep = get_pathsep(path) path += sep dirs, files = xbmcvfs.listdir(path) check_inputbase = os.path.splitext( inputfilename)[0] if inputfilename else '' result = {} if inputfilename: dirname = next( (name for name in dirs if name in iter_possible_cleannames(check_inputbase)), None) if dirname: # '[centraldir]/[set name]/[arttype].[ext]' dirname = path + dirname + sep _, dfiles = xbmcvfs.listdir(dirname) for filename in dfiles: if not filename.endswith(ARTWORK_EXTS): continue arttype = os.path.splitext(filename)[0] if not arttype.isalnum() or len( arttype) > ARTTYPE_MAXLENGTH: continue if settings.identify_alternatives and arttype in self.alttypes.keys( ): arttype = self.alttypes[arttype] if arttype in result.keys(): continue result[arttype] = self.buildimage(dirname + filename, filename) if not result: for filename in files: if not filename.endswith(ARTWORK_EXTS): continue basefile = os.path.splitext(filename)[0] if check_inputbase: # '[centraldir]/[set name]-[arttype].[ext]' if '-' not in basefile: continue firstbit, arttype = basefile.rsplit('-', 1) if not arttype.isalnum( ) or firstbit not in iter_possible_cleannames( check_inputbase): continue else: # parent of movie directory if not basefile.isalnum() or len( basefile) > ARTTYPE_MAXLENGTH: continue arttype = basefile if settings.identify_alternatives and arttype in self.alttypes.keys( ): arttype = self.alttypes[arttype] if arttype in result.keys(): continue result[arttype] = self.buildimage(path + filename, filename) return result
def get_exact_images(self, mediaitem): paths = (mediaitem.file, find_central_infodir(mediaitem)) if not paths[0] and not paths[1]: return {} if settings.albumartwithmediafiles: paths = (paths[1], paths[0]) if mediaitem.file: check_inputbase = os.path.splitext(os.path.basename( mediaitem.file))[0].lower() result = {} for path in paths: if not path: continue centraldir = path != mediaitem.file path = os.path.dirname(path) + get_pathsep(path) _, files = xbmcvfs.listdir(path) for filename in files: check_filename = filename.lower() if not check_filename.endswith(ARTWORK_EXTS): continue basefile = os.path.splitext(check_filename)[0] if '-' not in basefile: continue firstbit, arttype = basefile.rsplit('-', 1) if not arttype.isalnum(): continue if not centraldir and firstbit != check_inputbase: continue if centraldir and firstbit not in ( i.lower() for i in iter_possible_cleannames(mediaitem.label)): continue result[arttype] = self.buildimage(path + filename, filename, centraldir) return result
def _identify_parent_movieset(mediaitem): # Identify set folder among movie parent dirs add_movieset_movies(mediaitem) for cleanlabel in utils.iter_possible_cleannames(mediaitem.label): for movie in mediaitem.movies: pathsep = utils.get_pathsep(movie['file']) setmatch = pathsep + cleanlabel + pathsep if setmatch in movie['file']: result = movie['file'].split(setmatch)[0] + setmatch mediaitem.file = result return
def _find_existing(basedir, name, uniqueslug=None, mediayear=None, files=False): for item in get_cached_listdir(basedir)[1 if files else 0]: cleantitle, diryear = xbmc.getCleanMovieTitle(item) if mediayear else (item, '') if diryear and int(diryear) != mediayear: continue if files: item = item.rsplit('-', 1)[0] for title in utils.iter_possible_cleannames(name, uniqueslug): if title in (cleantitle, item): return item return None