def renameSeriesToMatchMangaUpdates(scanpath): idLut = nt.MtNamesMapWrapper("fsName->buId") muLut = nt.MtNamesMapWrapper("buId->buName") db = DbInterface() print("Scanning") foundDirs = 0 contents = os.listdir(scanpath) for dirName in contents: cName = nt.prepFilenameForMatching(dirName) mtId = idLut[cName] if mtId and len(mtId) > 1: print("Multiple mtId values for '%s' ('%s')" % (cName, dirName)) print(" ", mtId) print(" Skipping item") elif mtId: mtId = mtId.pop() mtName = muLut[mtId].pop() cMtName = nt.prepFilenameForMatching(mtName) if cMtName != cName: print("Dir '%s' ('%s')" % (cName, dirName)) print(" Should be '%s'" % (mtName, )) print(" URL: https://www.mangaupdates.com/series.html?id=%s" % (mtId, )) oldPath = os.path.join(scanpath, dirName) newPath = os.path.join(scanpath, nt.makeFilenameSafe(mtName)) if not os.path.isdir(oldPath): raise ValueError("Not a dir. Wat?") print(" old '%s'" % (oldPath, )) print(" new '%s'" % (newPath, )) newCl = nt.cleanUnicode(newPath) if newCl != newPath: print("Unicode oddness. Skipping") continue rating = nt.extractRatingToFloat(oldPath) if rating != 0: print(" Need to add rating = ", rating) mv = query_response_bool(" rename?") if mv: # if os.path.exists(newPath): print("Target dir exists! Moving files instead") moveFiles(oldPath, newPath) os.rmdir(oldPath) nt.dirNameProxy.changeRatingPath(newPath, rating) else: os.rename(oldPath, newPath) nt.dirNameProxy.changeRatingPath(newPath, rating) foundDirs += 1 print("Total directories that need renaming", foundDirs)