Fixed empty names in group chats

This commit is contained in:
Kylmakalle 2018-06-14 16:49:13 +03:00
parent 6f4dfa11d8
commit db16e97635
3 changed files with 13 additions and 5 deletions

3
bot.py
View File

@ -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,

View File

@ -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}

View File

@ -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'<b>{name}</b>' + '\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)