Пример #1
0
track1.voice = 'Farewell', 'en-US'
normal_playlist.tracks.append(track1)


# use AudioDB copy file to ipod
track2_checksum = ipod.audiodb.add('/media/data/music/Bob Dylan/Bob Dylan - Mr. Tambourine Man.mp3')
track2_pathinipod = ipod.audiodb.get_filename(track2_checksum)
track2 = ipod.create_track(path_in_ipod=track2_pathinipod)
track2.voice = 'Mr. Tambourine Man', 'en-US'
normal_playlist.tracks.append(track2)


# tracks can use same file, and you can set different voices for tracks
track3 = ipod.create_track(path_in_ipod=track1_pathinipod)
track3.voice = 'Farewell, Bob Dylan', 'en-US'
master_playlist.tracks.append(track3)

track4 = ipod.create_track(path_in_ipod=track2_pathinipod)
track4.voice = 'Mr. Tambourine Man, Bob Dylan', 'en-US'
master_playlist.tracks.append(track4)


track5_checksum = ipod.audiodb.add('/media/data/music/Goo Goo Dolls - Name.mp3')
track5_pathinipod = ipod.audiodb.get_filename(track5_checksum)
track5 = ipod.create_track(path_in_ipod=track5_pathinipod)
track5.voice = 'Name, Goo Goo Dolls', 'en-US'
master_playlist.tracks.append(track5)


ipod.write_db()
Пример #2
0
def sync(args):

    src = os.path.realpath(args.src)
    base = os.path.realpath(args.base)

    ipod = Shuffle(base)
    if ipod.enable_voiceover:
        local_voicedb = LocalVoiceDB(
            os.path.join(CACHE_DIR, 'voices_log.json'),
            os.path.join(CACHE_DIR, 'voices'))
        local_voicedb.clean()
        classify_tts_lang_func, local_voice_path_func = voice_things(
            local_voicedb, args)

        ipod.voice_path_func = local_voice_path_func

    ipod.audiodb.clean()

    ipod.tracks_voiceoverdb.clean()
    ipod.playlists_voiceoverdb.clean()

    ipod.playlists.clear()

    local_filelog = LocalFileLog(os.path.join(CACHE_DIR,
                                              'local_file_log.json'))

    def set_voice(obj, text, lang):
        try:
            obj.voice = text, lang
        except GetVoiceDataError as e:
            log('{}, ignornd.'.format(e))

    def add_files_to_playlist(pl, files, get_track_voice_title=None):
        for file in files:
            checksum = local_filelog.get_checksum(file)
            if not checksum:
                local_filelog.log_it(file)
                checksum = local_filelog.get_checksum(file)

            path_in_ipod = ipod.audiodb.get_filename(checksum)
            if not path_in_ipod:
                ipod.audiodb.add(file)
                path_in_ipod = ipod.audiodb.get_filename(checksum)

            track = ipod.create_track(path_in_ipod)
            pl.tracks.append(track)

            if ipod.enable_voiceover:
                text = get_track_voice_title(file)
                lang = classify_tts_lang_func(text)

                set_voice(track, text, lang)

    def add_playlists(title_and_files, pl_type, text_fun):
        for title, files in title_and_files:

            pl = ipod.create_playlist(pl_type)
            ipod.playlists.append(pl)

            if ipod.enable_voiceover:

                lang = classify_tts_lang_func(title)
                set_voice(pl, title, lang)

            add_files_to_playlist(pl, files, text_fun)

    def exists_and_isdir(path):
        return True if os.path.exists(path) and os.path.isdir(path) else False

    normal_dir = os.path.join(src, 'music')
    podcasts_dir = os.path.join(src, 'podcasts')
    audiobooks_dir = os.path.join(src, 'audiobooks')

    if exists_and_isdir(normal_dir):
        master_audio, normals = get_normals2(normal_dir)

        if master_audio:
            master_pl = ipod.playlists.append_one(pl_type=MASTER)
            add_files_to_playlist(master_pl, master_audio,
                                  title_artist_or_filename)

        if normals:
            add_playlists(normals, NORMAL, title_artist_or_filename)

    if exists_and_isdir(podcasts_dir):
        podcasts = get_podcasts(podcasts_dir)
        if podcasts:
            add_playlists(podcasts, PODCAST, title_artist_or_filename)

    if exists_and_isdir(audiobooks_dir):
        audiobooks = get_audiobooks(audiobooks_dir)
        if audiobooks:
            add_playlists(audiobooks, AUDIOBOOK, filename)

    ipod.write_db()
Пример #3
0
def sync(args):

    src = os.path.realpath(args.src)
    base = os.path.realpath(args.base)

    ipod = Shuffle(base)
    if ipod.enable_voiceover:
        local_voicedb = LocalVoiceDB(os.path.join(CACHE_DIR, 'voices_log.json'), os.path.join(CACHE_DIR, 'voices'))
        local_voicedb.clean()
        classify_tts_lang_func, local_voice_path_func = voice_things(local_voicedb, args)

        ipod.voice_path_func = local_voice_path_func

    ipod.audiodb.clean()

    ipod.tracks_voiceoverdb.clean()
    ipod.playlists_voiceoverdb.clean()

    ipod.playlists.clear()

    local_filelog = LocalFileLog(os.path.join(CACHE_DIR, 'local_file_log.json'))

    def set_voice(obj, text, lang):
        try:
            obj.voice = text, lang
        except GetVoiceDataError as e:
            log('{}, ignornd.'.format(e))

    def add_files_to_playlist(pl, files, get_track_voice_title=None):
        for file in files:
            checksum = local_filelog.get_checksum(file)
            if not checksum:
                local_filelog.log_it(file)
                checksum = local_filelog.get_checksum(file)

            path_in_ipod = ipod.audiodb.get_filename(checksum)
            if not path_in_ipod:
                ipod.audiodb.add(file)
                path_in_ipod = ipod.audiodb.get_filename(checksum)

            track = ipod.create_track(path_in_ipod)
            pl.tracks.append(track)

            if ipod.enable_voiceover:
                text = get_track_voice_title(file)
                lang = classify_tts_lang_func(text)

                set_voice(track, text, lang)

    def add_playlists(title_and_files, pl_type, text_fun):
        for title, files in title_and_files:

            pl = ipod.create_playlist(pl_type)
            ipod.playlists.append(pl)

            if ipod.enable_voiceover:

                lang = classify_tts_lang_func(title)
                set_voice(pl, title, lang)

            add_files_to_playlist(pl, files, text_fun)

    def exists_and_isdir(path):
        return True if os.path.exists(path) and os.path.isdir(path) else False

    normal_dir = os.path.join(src, 'music')
    podcasts_dir = os.path.join(src, 'podcasts')
    audiobooks_dir = os.path.join(src, 'audiobooks')

    if exists_and_isdir(normal_dir):
        master_audio, normals = get_normals2(normal_dir)

        if master_audio:
            master_pl = ipod.playlists.append_one(pl_type=MASTER)
            add_files_to_playlist(master_pl, master_audio, title_artist_or_filename)

        if normals:
            add_playlists(normals, NORMAL, title_artist_or_filename)

    if exists_and_isdir(podcasts_dir):
        podcasts = get_podcasts(podcasts_dir)
        if podcasts:
            add_playlists(podcasts, PODCAST, title_artist_or_filename)

    if exists_and_isdir(audiobooks_dir):
        audiobooks = get_audiobooks(audiobooks_dir)
        if audiobooks:
            add_playlists(audiobooks, AUDIOBOOK, filename)

    ipod.write_db()