def main(argv): csvFile="" dir="" try: opts, args = getopt.getopt(argv, "hc:d:", ["help", "csv=", "dir="]) except getopt.GetoptError: usage() sys.exit(2) for opt, arg in opts: if opt in ("-h", "--help"): usage() sys.exit() elif opt in ("-c", "--csv"): csvFile = arg elif opt in ("-d", "--dir"): dir = arg if csvFile == "": print "No csv file. Abort" return if dir == "": print "No input dir. Abort" return entries = paulo.loadEntries(csvFile, dir, True, False) for entry in entries: if os.path.isfile(dir + "/" + entry.getTargetFile()): print "UPDATE t_titre SET tit_file = \"" + entry.mp3file.replace('"', '\\"') + "\" WHERE tit_code = " + str(entry.idFile) + ";"; else: print "UPDATE t_titre SET tit_file = \"\" WHERE tit_code = " + str(entry.idFile) + ";";
def main(argv): csvFile="" outputDir="" try: opts, args = getopt.getopt(argv, "hc:o:", ["help", "csv=", "output-dir="]) except getopt.GetoptError: usage() sys.exit(2) for opt, arg in opts: if opt in ("-h", "--help"): usage() sys.exit() elif opt in ("-c", "--csv"): csvFile = arg elif opt in ("-o", "--output-dir"): outputDir = arg if csvFile == "": print "No csv file. Abort" return if outputDir == "": print "No output dir. Abort" return entries = paulo.loadEntries(csvFile, outputDir, True) print " ", len(entries), "loaded entries" print "Set tags" for entry in entries: if os.path.isfile(outputDir + "/" + entry.getTargetFile()): paulo.setTags(outputDir + "/" + entry.getTargetFile(), entry)
def main(argv): csvFile="" dir="" unwantedList = [] try: opts, args = getopt.getopt(argv, "hc:d:u:", ["help", "csv=", "dir=", "unwanted-list="]) except getopt.GetoptError: usage() sys.exit(2) for opt, arg in opts: if opt in ("-h", "--help"): usage() sys.exit() elif opt in ("-c", "--csv"): csvFile = arg elif opt in ("-d", "--dir"): dir = arg elif opt in ("-u", "--unwanted-list"): unwantedList = arg.split(",") if csvFile == "": print "No csv file. Abort" return if dir == "": print "No input dir. Abort" return entries = paulo.loadEntries(csvFile, dir, False, False) filteredEntries = [] for entry in entries: if not entry.bande in unwantedList: filteredEntries.append(entry) for entry in filteredEntries: print entry.toCSVLine()
def main(argv): csvFile="" inputDir="" outputDir="" interactiveThresold=None negativeAnswersFile="" similarity=False try: opts, args = getopt.getopt(argv, "hc:i:o:I:n:s", ["help", "csv=", "input-dir=", "output-dir=", "interactive=", "negative-answers=", "similarity"]) except getopt.GetoptError: usage() sys.exit(2) for opt, arg in opts: if opt in ("-h", "--help"): usage() sys.exit() elif opt in ("-s", "--similarity"): similarity = True elif opt in ("-c", "--csv"): csvFile = arg elif opt in ("-i", "--input-dir"): inputDir = arg elif opt in ("-o", "--output-dir"): outputDir = arg elif opt in ("-I", "--interactive"): interactiveThresold = float(arg) elif opt in ("-n", "--negative-answers="): negativeAnswersFile = arg if csvFile == "": print "No csv file. Abort" return if inputDir == "": print "No input dir. Abort" return if outputDir == "": print "No output dir. Abort" return entries = paulo.loadEntries(csvFile, outputDir) print " ", len(entries), "loaded entries" mp3files = paulo.loadMP3(inputDir, similarity) print " ", len(mp3files), "mp3" negativeAnswers = paulo.InvalidMatchings(negativeAnswersFile) print " ", negativeAnswers.getNbAnswers(), "existing negative answers" matchCount=0 autoMovedCount=0 manualMovedCount=0 result = {} log = [] nbEntry=0 for entry in entries: print "Processing entry", nbEntry, "/", len(entries) nbEntry += 1 bestScore = interactiveThresold if interactiveThresold != None else 0.6 for mp3file in mp3files: if not negativeAnswers.hasEntry(entry.getID(), mp3file.getID()): e_meta = entry.getMetaData() es_mp3file = mp3file.getMetaDatas() for e_mp3file in es_mp3file: score = e_meta.similarity(e_mp3file) if score > bestScore: result[entry] = [score, mp3file] bestScore = score if entry in result: matchCount += 1 if bestScore > 0.8: autoMovedCount += 1 print "Automatic copy (" + str(bestScore) + "): " + outputDir + "/" + entry.getTargetFile() + " from " + result[entry][1].filename paulo.copy(outputDir + "/" + entry.getTargetFile(), result[entry][1].filename) paulo.setTags(outputDir + "/" + entry.getTargetFile(), entry) log.append(entry.toCSVLine()) else: if interactiveThresold != None: print "Score: " + str(bestScore) + "\n" + str(entry) + "\n" + str(result[entry][1]) if paulo.prompt("Do you want to copy this file?"): print "Manual copy: " + outputDir + "/" + entry.getTargetFile() paulo.copy(outputDir + "/" + entry.getTargetFile(), result[entry][1].filename) paulo.setTags(outputDir + "/" + entry.getTargetFile(), entry) log.append(entry.toCSVLine()) manualMovedCount += 1 else: negativeAnswers.addEntry(entry.getID(), result[entry][1].getID()) negativeAnswers.save(negativeAnswersFile) print "Cancel copy" paulo.add2CSVLog(log, outputDir) print "Match number:", matchCount, "including: " print "\tAutomatic copies:", autoMovedCount print "\tManual copies:", manualMovedCount