From db16e976356805f7f0b90d6f4e5304de8dbe72ef Mon Sep 17 00:00:00 2001 From: Kylmakalle Date: Thu, 14 Jun 2018 16:49:13 +0300 Subject: [PATCH] Fixed empty names in group chats --- bot.py | 3 ++- telegram.py | 12 ++++++++++-- vk_messages.py | 3 +-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/bot.py b/bot.py index 226ccdd..6f74d11 100644 --- a/bot.py +++ b/bot.py @@ -68,7 +68,8 @@ async def get_max_photo(obj, keyword='photo'): m = max_photo_re.match(k) if m: maxarr.append(int(m.group(1))) - return keyword + '_' + str(max(maxarr)) + if maxarr: + return keyword + '_' + str(max(maxarr)) async def get_content(url, docname='tgvkbot.document', chrome_headers=True, rewrite_name=False, diff --git a/telegram.py b/telegram.py index c34e8e6..76f47cd 100644 --- a/telegram.py +++ b/telegram.py @@ -312,7 +312,11 @@ async def get_dialog_info(api, vk_chat_id, name_case='nom'): if vk_chat_id >= 2000000000: dialog_info = await api('messages.getChat', chat_id=vk_chat_id - 2000000000) title = dialog_info['title'] - photo = dialog_info[await get_max_photo(dialog_info)] + max_photo = await get_max_photo(dialog_info) + if max_photo: + photo = dialog_info[max_photo] + else: + photo = None dialog_type = 'chat' elif vk_chat_id > 0: dialog_info = await api('users.get', user_ids=vk_chat_id, fields='photo_max', name_case=name_case) @@ -324,7 +328,11 @@ async def get_dialog_info(api, vk_chat_id, name_case='nom'): elif vk_chat_id < 0: dialog_info = await api('groups.getById', group_ids=abs(vk_chat_id)) title = dialog_info[0]['name'] - photo = dialog_info[0][await get_max_photo(dialog_info[0])] + max_photo = await get_max_photo(dialog_info[0]) + if max_photo: + photo = dialog_info[0][max_photo] + else: + photo = None dialog_type = 'group' return {'title': title, 'photo': photo, 'type': dialog_type} diff --git a/vk_messages.py b/vk_messages.py index ea543ff..06ae683 100644 --- a/vk_messages.py +++ b/vk_messages.py @@ -567,7 +567,7 @@ async def process_message(msg, token=None, is_multichat=None, vk_chat_id=None, u if forward_setting: if forwarded or is_multichat: header = f'{name}' + '\n' - if not forwarded: + elif not forwarded: header = '' to_tg_chat = forward_setting.tgchat.cid else: @@ -863,7 +863,6 @@ async def vk_polling(vkuser: VkUser): while True: try: session = VkSession(access_token=vkuser.token, driver=await get_driver(vkuser.token)) - session.API_VERSION = API_VERSION log.warning('Starting polling for: id ' + str(vkuser.pk)) api = API(session) lp = LongPoll(session, mode=10, version=4)