def submit(self, fns): if not self.__user_key: raise SubmissionError( translate("AcoustID", "Please enter AcoustID user key in settings.")) fns_len = len(fns) data = [] for i, fn in enumerate(fns): try: disp_fn = audioinfo.decode_fn(fn.filepath) except AttributeError: disp_fn = fn['__path'] write_log(FILE_MSG.arg(i + 1).arg(disp_fn)) try: fp = id_in_tag(fn) if fp: write_log(FOUND_ID_MSG) dur, fp = fp else: write_log(CALCULATE_MSG) dur, fp = fingerprint_file(fn.filepath) info = { 'duration': unicode(dur), 'fingerprint': unicode(fp), } info.update(convert_for_submit(fn)) data.append(info) if len(data) > 9 or i == fns_len - 1: msg = SUBMIT_MSG.arg(i - len(data) + 2) msg = msg.arg(i + 1).arg(fns_len) write_log(msg) set_status(msg) acoustid.submit(API_KEY, self.__user_key, data) data = [] except acoustid.FingerprintGenerationError, e: traceback.print_exc() write_log(FP_ERROR_MSG.arg(unicode(e))) continue except acoustid.WebServiceError, e: traceback.print_exc() set_status(SUBMIT_ERROR_MSG.arg(unicode(e))) write_log(SUBMIT_ERROR_MSG.arg(unicode(e))) break
def submit(self, fns): if not self.__user_key: raise SubmissionError(translate("AcoustID", "Please enter AcoustID user key in settings.")) fns_len = len(fns) data = [] for i, fn in enumerate(fns): try: disp_fn = audioinfo.decode_fn(fn.filepath) except AttributeError: disp_fn = fn['__path'] write_log(FILE_MSG.arg(i + 1).arg(disp_fn)) try: fp = id_in_tag(fn) if fp: write_log(FOUND_ID_MSG) dur, fp = fp else: write_log(CALCULATE_MSG) dur, fp = fingerprint_file(fn.filepath) info = { 'duration':unicode(dur), 'fingerprint': unicode(fp), } info.update(convert_for_submit(fn)) data.append(info) if len(data) > 9 or i == fns_len - 1: msg = SUBMIT_MSG.arg(i - len(data) + 2) msg = msg.arg(i + 1).arg(fns_len) write_log(msg) set_status(msg) acoustid.submit(API_KEY, self.__user_key, data) data = [] except acoustid.FingerprintGenerationError, e: traceback.print_exc() write_log(FP_ERROR_MSG.arg(unicode(e))) continue except acoustid.WebServiceError, e: traceback.print_exc() set_status(SUBMIT_ERROR_MSG.arg(unicode(e))) write_log(SUBMIT_ERROR_MSG.arg(unicode(e))) break
def search(self, artist, fns=None): tracks = [] albums = [] fns_len = len(fns) for i, fn in enumerate(fns): try: disp_fn = audioinfo.decode_fn(fn.filepath) except AttributeError: disp_fn = fn['__path'] write_log(disp_fn) try: fp = id_in_tag(fn) if fp: write_log(FOUND_ID_MSG) dur, fp = fp else: write_log(CALCULATE_MSG) dur, fp = (None, None) write_log(RETRIEVE_MSG.arg(i + 1).arg(fns_len)) set_status(RETRIEVE_MSG.arg(i + 1).arg(fns_len)) data, fp = match("gT8GJxhO", fn.filepath, fp, dur) write_log(translate('AcoustID', "Parsing Data")) info = parse_lookup_result(data, fp=fp) except acoustid.FingerprintGenerationError as e: write_log(FP_ERROR_MSG.arg(str(e))) continue except acoustid.WebServiceError as e: set_status(WEB_ERROR_MSG.arg(str(e))) write_log(WEB_ERROR_MSG.arg(str(e))) break if hasattr(info, 'items'): albums.append([{}]) info['#exact'] = fn tracks.append(info) elif info is not None: for album, track in info: if track and track['#score'] >= self.min_score: track['#exact'] = fn tracks.append(track) albums.append(album if album else [{}]) return starmap(retrieve_album_info, best_match(albums, tracks))
def search(self, artist, fns=None): tracks = [] albums = [] fns_len = len(fns) for i, fn in enumerate(fns): try: disp_fn = audioinfo.decode_fn(fn.filepath) except AttributeError: disp_fn = fn['__path'] write_log(disp_fn) try: fp = id_in_tag(fn) if fp: write_log(FOUND_ID_MSG) dur, fp = fp else: write_log(CALCULATE_MSG) dur, fp = (None, None) write_log(RETRIEVE_MSG.arg(i + 1).arg(fns_len)) set_status(RETRIEVE_MSG.arg(i + 1).arg(fns_len)) data, fp = match("gT8GJxhO", fn.filepath, fp, dur) write_log(translate('AcoustID', "Parsing Data")) info = parse_lookup_result(data, fp=fp) except acoustid.FingerprintGenerationError, e: write_log(FP_ERROR_MSG.arg(unicode(e))) continue except acoustid.WebServiceError, e: set_status(WEB_ERROR_MSG.arg(unicode(e))) write_log(WEB_ERROR_MSG.arg(unicode(e))) break
pass if tag is not None and 'artist' in tag: files[to_string(tag['artist'])].append(f) return files musicfiles = getfiles(source) #Move files to their respective dirs. for artist in musicfiles.keys(): dirpath = os.path.join(dest, encode_fn(artist)) if not os.path.isdir(dirpath): if len(musicfiles[artist]) > 9: os.mkdir(dirpath) print "\nCreated folder: %s" % decode_fn(dirpath) else: continue for f in musicfiles[artist]: try: shutil.move(f, join(dest, encode_fn(artist))) print "Moved: %s to %s." % (decode_fn(f), join(decode_fn(dest), artist)) except Exception, e: print unicode(e) del (musicfiles[artist]) #Use it for my own purposes. #import glob #misc = {'[0123456789A-F]*': 'Misc[A-F]',
except: pass if tag is not None and 'artist' in tag: files[to_string(tag['artist'])].append(f) return files musicfiles = getfiles(source) #Move files to their respective dirs. for artist in musicfiles.keys(): dirpath = os.path.join(dest, encode_fn(artist)) if not os.path.isdir(dirpath): if len(musicfiles[artist]) > 9: os.mkdir(dirpath) print "\nCreated folder: %s" % decode_fn(dirpath) else: continue for f in musicfiles[artist]: try: shutil.move(f, join(dest, encode_fn(artist))) print "Moved: %s to %s." % (decode_fn(f), join(decode_fn(dest), artist)) except Exception, e: print unicode(e) del(musicfiles[artist]) #Use it for my own purposes. #import glob #misc = {'[0123456789A-F]*': 'Misc[A-F]',