diff --git a/vk_messages.py b/vk_messages.py index f3c83b6..49a3b99 100644 --- a/vk_messages.py +++ b/vk_messages.py @@ -3,16 +3,14 @@ import os import redis import requests import time -import vk import ujson +import vk import wget - logging.basicConfig(format='%(levelname)-8s [%(asctime)s] %(message)s', level=logging.WARNING, filename='vk.log') vk_tokens = redis.from_url(os.environ.get("REDIS_URL")) - class VkPolling: def __init__(self): self._running = True @@ -102,13 +100,43 @@ def attachment_handler(m, user, bot, chat_id, mainmessage=None): send_doc_link(attach, m, user, bot, chat_id, mainmessage) elif attach['type'] == 'audio': - data = add_user_info(m, user['first_name'], user[ - 'last_name']) + '🎧 {} - {}'.format( - attach['audio']['artist'].replace(' ', '%20'), - attach['audio']['title'].replace(' ', '%20'), attach['audio']['artist'], - attach['audio']['title']) + add_reply_info(m) - bot.send_message(chat_id, data, parse_mode='HTML', disable_web_page_preview=False, - disable_notification=check_notification(m), reply_to_message_id=mainmessage).wait() + headers = {'content-type': 'application/json'} + audio = requests.get('https://asergey.me/vkmusapi/', + json={'aid': attach['audio']['aid'], 'owner_id': attach['audio']['owner_id']}, + headers=headers) + try: + if audio.status_code == 200 and audio.json()['ok']: + audio_dict = audio.json() + data = add_user_info(m, user["first_name"], + user["last_name"]) + '🎧 Аудиозапись' + add_reply_info(m) + audio_msg = bot.send_message(chat_id, data, parse_mode='HTML', disable_web_page_preview=False, + disable_notification=check_notification(m), + reply_to_message_id=mainmessage).wait() + action = bot.send_chat_action(chat_id, 'upload_document') + bot.send_audio(chat_id, audio_dict['vk_response']['url'], + duration=audio_dict['vk_response']['duration'], + title=audio_dict['vk_response']['title'], + performer=audio_dict['vk_response']['artist'], + disable_notification=check_notification(m), + reply_to_message_id=audio_msg.message_id).wait() + action.wait() + else: + data = add_user_info(m, user['first_name'], user[ + 'last_name']) + '🎧 {} - {}'.format( + attach['audio']['artist'].replace(' ', '%20'), + attach['audio']['title'].replace(' ', '%20'), attach['audio']['artist'], + attach['audio']['title']) + add_reply_info(m) + bot.send_message(chat_id, data, parse_mode='HTML', disable_web_page_preview=False, + disable_notification=check_notification(m), reply_to_message_id=mainmessage).wait() + except Exception as e: + print(e) + data = add_user_info(m, user['first_name'], user[ + 'last_name']) + '🎧 {} - {}'.format( + attach['audio']['artist'].replace(' ', '%20'), + attach['audio']['title'].replace(' ', '%20'), attach['audio']['artist'], + attach['audio']['title']) + add_reply_info(m) + bot.send_message(chat_id, data, parse_mode='HTML', disable_web_page_preview=False, + disable_notification=check_notification(m), reply_to_message_id=mainmessage).wait() elif attach['type'] == 'doc': if attach['doc']['ext'] == 'gif':