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) m = max_photo_re.match(k)
if m: if m:
maxarr.append(int(m.group(1))) 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, 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: if vk_chat_id >= 2000000000:
dialog_info = await api('messages.getChat', chat_id=vk_chat_id - 2000000000) dialog_info = await api('messages.getChat', chat_id=vk_chat_id - 2000000000)
title = dialog_info['title'] 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' dialog_type = 'chat'
elif vk_chat_id > 0: elif vk_chat_id > 0:
dialog_info = await api('users.get', user_ids=vk_chat_id, fields='photo_max', name_case=name_case) 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: elif vk_chat_id < 0:
dialog_info = await api('groups.getById', group_ids=abs(vk_chat_id)) dialog_info = await api('groups.getById', group_ids=abs(vk_chat_id))
title = dialog_info[0]['name'] 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' dialog_type = 'group'
return {'title': title, 'photo': photo, 'type': dialog_type} 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 forward_setting:
if forwarded or is_multichat: if forwarded or is_multichat:
header = f'<b>{name}</b>' + '\n' header = f'<b>{name}</b>' + '\n'
if not forwarded: elif not forwarded:
header = '' header = ''
to_tg_chat = forward_setting.tgchat.cid to_tg_chat = forward_setting.tgchat.cid
else: else:
@ -863,7 +863,6 @@ async def vk_polling(vkuser: VkUser):
while True: while True:
try: try:
session = VkSession(access_token=vkuser.token, driver=await get_driver(vkuser.token)) 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)) log.warning('Starting polling for: id ' + str(vkuser.pk))
api = API(session) api = API(session)
lp = LongPoll(session, mode=10, version=4) lp = LongPoll(session, mode=10, version=4)