Size: a a a

Telethon Talks RU

2020 December 15

В

Валерий in Telethon Talks RU
КейЗенД Арсений 🛠️
как пооучит полный список идишников подписчиков моего канала?
попробуй быть более агрессивным. aggressive=True в iter_participants
источник

КА

КейЗенД Арсений 🛠️... in Telethon Talks RU
Выполненное выражение:
chat1 =  client.iter_participants("kzdchat", aggressive=True)
chat2 =  client.iter_participants("keyzend", aggressive=True)

chat1_id = [x.id async for x in chat1]
chat2_id = [x.id async for x in chat2]

len(list(filter(lambda x: x in chat2_id, chat1_id))), len(chat1_id), len(chat2_id)

Возвращено:
(80, 105, 2284)
источник

КА

КейЗенД Арсений 🛠️... in Telethon Talks RU
двести штук не смог
источник

В

Валерий in Telethon Talks RU
Ребята, зачем нужен InputPeerUser, если у InputUser абсолютно те же самые поля?
источник

a

artyom in Telethon Talks RU
Валерий
Ребята, зачем нужен InputPeerUser, если у InputUser абсолютно те же самые поля?
Спроси у telegram
источник

a

artyom in Telethon Talks RU
Функционал у них одинаковый
источник
2020 December 16

GT

Gylda Thomas in Telethon Talks RU
КейЗенД Арсений 🛠️
двести штук не смог
последнее время лимиты чет растут и растут ((( меньше получается достать
источник
2020 December 17

M

MayheM in Telethon Talks RU
Привет, пользовался кто нибудь client.catch_up() на ботах? Не могу понять почему ничего не происходит при его вызове.
источник

AS

Albert Sinclair in Telethon Talks RU
MayheM
Привет, пользовался кто нибудь client.catch_up() на ботах? Не могу понять почему ничего не происходит при его вызове.
сначала нужно зарегистрировать обработчик
источник

M

MayheM in Telethon Talks RU
Albert Sinclair
сначала нужно зарегистрировать обработчик
Все есть, судя по коду, в client пустой ._state_cache поэтому catch_up Ничего не делает, но я пока не пойму где и как этот _state_cache должен заполняться после disconnect`а, в сессии он не хранится судя по всему

Если самостоятельно его инициализировать, то catch_up Начинает работать, но это чото костыли какие то.

UPD: проблема была в хранении сессий, сменил тип сессии на SqlLite и заработало
источник

СЧ

Семён Чебыкин... in Telethon Talks RU
Так выходит, что если отправить боту альбом, он получит это не как 1 NewMessage, а как n. Теперь я хочу переслать этот альбом в другой чат (пускай даже не в виде альбома, пофиг). Но из-за асинхронности фотографии в этом другом чате не в том порядке разложены. Я хочу исправить это блокировкой программы до выполнения отправки в другой чат первой фотографии, второй итд. (на быстродействие тоже пофиг). Но я не могу найти, как использовать асинхронную функцию в качестве синхронной. Может кто-нибудь помочь?
источник

M

MayheM in Telethon Talks RU
В доке есть флаг отвечающий за последовательную обработку сообщений
источник

M

MayheM in Telethon Talks RU
Семён Чебыкин
Так выходит, что если отправить боту альбом, он получит это не как 1 NewMessage, а как n. Теперь я хочу переслать этот альбом в другой чат (пускай даже не в виде альбома, пофиг). Но из-за асинхронности фотографии в этом другом чате не в том порядке разложены. Я хочу исправить это блокировкой программы до выполнения отправки в другой чат первой фотографии, второй итд. (на быстродействие тоже пофиг). Но я не могу найти, как использовать асинхронную функцию в качестве синхронной. Может кто-нибудь помочь?
sequential_updates, посмотри, может это то что тебе поможет
источник

СЧ

Семён Чебыкин... in Telethon Talks RU
Семён Чебыкин
Так выходит, что если отправить боту альбом, он получит это не как 1 NewMessage, а как n. Теперь я хочу переслать этот альбом в другой чат (пускай даже не в виде альбома, пофиг). Но из-за асинхронности фотографии в этом другом чате не в том порядке разложены. Я хочу исправить это блокировкой программы до выполнения отправки в другой чат первой фотографии, второй итд. (на быстродействие тоже пофиг). Но я не могу найти, как использовать асинхронную функцию в качестве синхронной. Может кто-нибудь помочь?
Пойдет в принципе, спасибо! Но если есть эксперты по asyncio, все равно интересно можно ли так сделать. Вкратце, нужно использовать асинхронную функцию в качестве синхронной.
источник

В

Валерий in Telethon Talks RU
Семён Чебыкин
Пойдет в принципе, спасибо! Но если есть эксперты по asyncio, все равно интересно можно ли так сделать. Вкратце, нужно использовать асинхронную функцию в качестве синхронной.
если loop не запущен, то можно loop.run_until_complete(). Если запущен, то уже сложнее
источник

В

Валерий in Telethon Talks RU
Семён Чебыкин
Пойдет в принципе, спасибо! Но если есть эксперты по asyncio, все равно интересно можно ли так сделать. Вкратце, нужно использовать асинхронную функцию в качестве синхронной.
ещё посмотри в сторону asyncio.Lock. Он не позволит обернутому в него асинхронному коду выполняться конкурентно в нескольких местах. Что-то вроде синхронщины, только на определенный участок кода
источник

В

Валерий in Telethon Talks RU
да, вроде, тебе это подойдет. Заверни код пересылки сообщения в Lock
источник

M

MayheM in Telethon Talks RU
Может подскажет кто, есть ли возможность дождаться заверщения обработчиков и затем выполнить disconnect?
Сейчас ситуация получается такая что завершается catch_up и затем disconnect, при этом обработчики не успевают отработать. Как это можно отследить?
источник
2020 December 18

У

Ульба in Telethon Talks RU
Как получить недавние действия из канала?
источник

СЧ

Семён Чебыкин... in Telethon Talks RU
Валерий
да, вроде, тебе это подойдет. Заверни код пересылки сообщения в Lock
Спасибо, действительно работает.
источник