Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
    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))
Exemplo n.º 4
0
    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
Exemplo n.º 5
0
    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
Exemplo n.º 6
0
            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]',
Exemplo n.º 7
0
        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]',