Size: a a a

Telethon Talks RU

2021 March 15

MM

Max Max in Telethon Talks RU
@@@@@
мне тоже интересно))) Закинул бы по максимуму на каждый процесс питона по максимум акков)))
Где то год назад поднимал вопрос, кроме поднятия проесса других отвветов не было.
да мне такое сделать хотяб на синке))))
источник

В

Валерий in Telethon Talks RU
используйте асинк телетон и возможности asyncio (например asyncio.gather). Пример не дам, мне лень
источник

a

artyom in Telethon Talks RU
@@@@@
к примеру
from telethon import TelegramClient, events

client = TelegramClient('anon', api_id, api_hash)

@client.on(events.NewMessage)
async def my_event_handler(event):
   await event.reply('hi!')

client.start()
client.run_until_disconnected()

Вот этот код на 10 акках чтоб одновременно работал
А зачем для этого gather?
источник

a

artyom in Telethon Talks RU
Просто один из клиентов run_until_disconnected
источник

a

artyom in Telethon Talks RU
И все
источник

ŁT

Łukasz Tshipenchko in Telethon Talks RU
@@@@@
к примеру
from telethon import TelegramClient, events

client = TelegramClient('anon', api_id, api_hash)

@client.on(events.NewMessage)
async def my_event_handler(event):
   await event.reply('hi!')

client.start()
client.run_until_disconnected()

Вот этот код на 10 акках чтоб одновременно работал
Я без старт делаю, просто рунунтилдисcumнект
источник

@

@@@@@ in Telethon Talks RU
Łukasz Tshipenchko
Я без старт делаю, просто рунунтилдисcumнект
Пример покажи как 10 разных копий запустить
источник

А

А in Telethon Talks RU
@@@@@
Пример покажи как 10 разных копий запустить
c1 = TelegramClient (..)
c2 = TelegramClient (..)
c3 = TelegramClient (..)
...

await c1.start()
await c2.start()
...
c10.run_until_disconnected()
источник

ŁT

Łukasz Tshipenchko in Telethon Talks RU
А
c1 = TelegramClient (..)
c2 = TelegramClient (..)
c3 = TelegramClient (..)
...

await c1.start()
await c2.start()
...
c10.run_until_disconnected()
а намана
источник

А

А in Telethon Talks RU
@@@@@
Пример покажи как 10 разных копий запустить
Может за тебя ещё и поработать и сделать проект, а ты зп будешь получать?
источник

А

А in Telethon Talks RU
Гугли и изучай, уже три дня вокруг одного куста
источник

@

@@@@@ in Telethon Talks RU
А
Может за тебя ещё и поработать и сделать проект, а ты зп будешь получать?
Вчера от Макса вопрос был, посоветовали тут потоки и  тп. Ну вот мне тоже интересно стало, как на одном процессе запустить несколько копий телетона.
источник

@

@@@@@ in Telethon Talks RU
А
c1 = TelegramClient (..)
c2 = TelegramClient (..)
c3 = TelegramClient (..)
...

await c1.start()
await c2.start()
...
c10.run_until_disconnected()
если каждый старт авайтишь это будет синхронный код.
источник

В

Валерий in Telethon Talks RU
import asyncio
import telethon


async def start_client(session_path: str):
   client = telethon.TelegramClient(...)
   await client.start()
   ...


def main():
   sessions_paths = [
       "account1.session",
       "account2.session"
   ]
   loop = asyncio.get_event_loop()
   coros = [start_client(session_path) for session_path in sessions_paths]
   gathered = asyncio.gather(*coros)
   loop.run_until_complete(gathered)


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

@

@@@@@ in Telethon Talks RU
Валерий
import asyncio
import telethon


async def start_client(session_path: str):
   client = telethon.TelegramClient(...)
   await client.start()
   ...


def main():
   sessions_paths = [
       "account1.session",
       "account2.session"
   ]
   loop = asyncio.get_event_loop()
   coros = [start_client(session_path) for session_path in sessions_paths]
   gathered = asyncio.gather(*coros)
   loop.run_until_complete(gathered)


if __name__ == '__main__':
   main()
Работает)))
источник

А

А in Telethon Talks RU
@@@@@
если каждый старт авайтишь это будет синхронный код.
вводить парралельно аккаунты научился?
источник

А

А in Telethon Talks RU
Валерий
import asyncio
import telethon


async def start_client(session_path: str):
   client = telethon.TelegramClient(...)
   await client.start()
   ...


def main():
   sessions_paths = [
       "account1.session",
       "account2.session"
   ]
   loop = asyncio.get_event_loop()
   coros = [start_client(session_path) for session_path in sessions_paths]
   gathered = asyncio.gather(*coros)
   loop.run_until_complete(gathered)


if __name__ == '__main__':
   main()
сделаешь все сессии неавторизованными и хренн что введешь)
источник

@

@@@@@ in Telethon Talks RU
А
вводить парралельно аккаунты научился?
Сессион файлы уже авторизованные крутятся
источник

А

А in Telethon Talks RU
в таком случае надо:

await client.connect()
if await client.is_user_authorized():
l.e(f"no sesson {sessname}")
источник

А

А in Telethon Talks RU
@@@@@
Сессион файлы уже авторизованные крутятся
вылеты тоже учитывал?)
источник