Exemplo n.º 1
0
def audio_row_callback(call):
    try:
        audio_split = call.data.split(';')
        row_number = int(audio_split[1])
        song_name = call.message.json["reply_markup"]["inline_keyboard"][
            row_number][0]["text"]
        if ".mp3" in audio_split[2]:
            song_name = song_name + ".mp3"

        # download the chosen song from the private dropbox cloud
        if '#' in audio_split[3]:
            tag = audio_split[3]
            folder = music_dict[tag]
            metadata, res = dbx.files_download(path="/Music/" + folder + "/" +
                                               song_name)
            bot.send_audio(call.from_user.id,
                           res.content,
                           title=song_name.replace(".mp3", ""))
        # download the chosen song from the public vk
        else:

            # autorisation process
            vk_session = vk_api.VkApi(vk_login, vk_password)
            vk_session.auth(token_only=True)
            vk = vk_session.get_api()
            vk_audio = VkAudio(vk_session)
            ###

            track = vk_audio.get_audio_by_id(int(audio_split[3]),
                                             int(audio_split[4]))
            res = requests.get(track['url'])
            bot.send_audio(call.from_user.id,
                           res.content,
                           title=track['artist'] + ' - ' + track['title'])

    except Exception as e:
        print('Error in audio_row_callback:', e)
        print(traceback.format_exc())
Exemplo n.º 2
0
import vk_api
import login_config
from libs.RawLink import RawLink


def two_factor() -> Tuple[str, bool]:
    code = input("Code? ")
    return code, True


vk_session = vk_api.VkApi(login_config.LOGIN,
                          login_config.PASSWORD,
                          auth_handler=two_factor)
vk_session.auth()

vk_audio = VkAudio(vk_session)

local_session = session_factory()

all_audio: List[RawLink] = local_session.query(RawLink).filter(
    RawLink.type == 'audio').all()

for audio in all_audio:
    audio_obj: dict = vk_audio.get_audio_by_id(audio.owner_id, audio.id)
    audio.url = audio_obj.get('url')
    audio.track_code = audio_obj.get('track_code')
    local_session.add(audio)

local_session.commit()
local_session.close()