Size: a a a

2020 July 26

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
Владимир Туманов
Такой вопрос, можно как то отследить ботом, что его добавили в  чат?
Да, так же как и на любого другого участника
источник

ВТ

Владимир Туманов... in aiogram [ru]
<Юрий> 👨‍🔬 Чебышев
Да, так же как и на любого другого участника
Т. Е. Событые New_chat_member он проглотит, как его добавят в чат?
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
Владимир Туманов
Т. Е. Событые New_chat_member он проглотит, как его добавят в чат?
Да, и среди новых мемберов будет собственно бот
источник

ВТ

Владимир Туманов... in aiogram [ru]
Спасибо
источник

OA

Oleg A. 🇷🇺 in aiogram [ru]
напомните, плз, в аиограм была же быстрая утилита для проверки команды на предмет для этого бота она отправлена или для другого?
не могу найти этот кусок
источник

AR

Alex RootJunior in aiogram [ru]
Oleg A. 🇷🇺
напомните, плз, в аиограм была же быстрая утилита для проверки команды на предмет для этого бота она отправлена или для другого?
не могу найти этот кусок
В фильтре команд
источник

OA

Oleg A. 🇷🇺 in aiogram [ru]
а, точно ) нашёл
не переиспользую, придётся вынимать )
источник

ЕП

Евгений Петров... in aiogram [ru]
народ, как мне в asyncio.gather() передать запуск бота?
пробовал так:
sessions = []
sessions.append(dp.start_polling())
await asyncio.gather(*sessions)
Не работает:
raise RuntimeError('Timeout context manager should be used '
RuntimeError: Timeout context manager should be used inside a task
ERROR:asyncio:Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x7f7209ffadc0>

Уточню: помимо этого там ещё две Telethon-учётки стартуют, поэтому надо как-то вокруг этого плясать
источник

AS

Alexander Shavelev in aiogram [ru]
Евгений Петров
народ, как мне в asyncio.gather() передать запуск бота?
пробовал так:
sessions = []
sessions.append(dp.start_polling())
await asyncio.gather(*sessions)
Не работает:
raise RuntimeError('Timeout context manager should be used '
RuntimeError: Timeout context manager should be used inside a task
ERROR:asyncio:Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x7f7209ffadc0>

Уточню: помимо этого там ещё две Telethon-учётки стартуют, поэтому надо как-то вокруг этого плясать
а зачем тут газэ? делай скриейт таск
источник

ЕП

Евгений Петров... in aiogram [ru]
Я таким образом запускал несколько Telethon-сессий, хотел к ним ещё бота подкинуть
источник

T

Tishka17 in aiogram [ru]
Евгений Петров
народ, как мне в asyncio.gather() передать запуск бота?
пробовал так:
sessions = []
sessions.append(dp.start_polling())
await asyncio.gather(*sessions)
Не работает:
raise RuntimeError('Timeout context manager should be used '
RuntimeError: Timeout context manager should be used inside a task
ERROR:asyncio:Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x7f7209ffadc0>

Уточню: помимо этого там ещё две Telethon-учётки стартуют, поэтому надо как-то вокруг этого плясать
А как этот код запускаешь вообще?
источник

ЕП

Евгений Петров... in aiogram [ru]
Alexander Shavelev
а зачем тут газэ? делай скриейт таск
Та же ошибка
источник

ЕП

Евгений Петров... in aiogram [ru]
Tishka17
А как этот код запускаешь вообще?
async def run_client(client):
   async with client:
       await client.start()
       await client.run_until_disconnected()



async def main():
   accounts = await dbworker.get_accounts()
   sessions = []
   for account in accounts:
       sessions.append(run_client(TelegramClient(StringSession(account[2]), config.app_id, config.app_hash)))
   sessions.append(dp.start_polling()) # добавил только это
   await asyncio.gather(*sessions)


if __name__ == '__main__':
   asyncio.run(main())
источник

T

Tishka17 in aiogram [ru]
Хм
источник

ЕП

Евгений Петров... in aiogram [ru]
Можно, конечно, бота в отдельный тред увести с daemon=True, чтобы прибивался при завершении основного потока, но хочется красиво
источник

MV

Maxim Voloshko in aiogram [ru]
Чем отличается exceptions.BotBlocked от exceptions.UserDeactivated ?
источник

T

Tishka17 in aiogram [ru]
Видимо второе - это сам юзер сдох
источник

MV

Maxim Voloshko in aiogram [ru]
В плане удалённый аккаунт ?
источник

п

пфф in aiogram [ru]
да
источник

ЕП

Евгений Петров... in aiogram [ru]
Евгений Петров
async def run_client(client):
   async with client:
       await client.start()
       await client.run_until_disconnected()



async def main():
   accounts = await dbworker.get_accounts()
   sessions = []
   for account in accounts:
       sessions.append(run_client(TelegramClient(StringSession(account[2]), config.app_id, config.app_hash)))
   sessions.append(dp.start_polling()) # добавил только это
   await asyncio.gather(*sessions)


if __name__ == '__main__':
   asyncio.run(main())
есть идеи? чё-т я хз вообще
чё это за RuntimeError: Timeout context manager should be used inside a task
источник