Python

Вопрос python знающим

есть код в котором надо добавить еще одного клиента и чтобы команда была на два клиента сразу вот код
app = Client("my_accountr") тут как добавить еще одного клиента то есть значение app была равно двум клиентам и они два начали одновременно выполнят задачу
 import asyncio  
from loguru import logger
from asyncio import sleep
from pyrogram import Client, filters

app = Client("my_accountr")

TIME_SLEEP = 12
spam_enabled = True # Флаг, указывающий, включено ли отправление сообщений

@app.on_message(filters.command('a', prefixes='-') & filters.me)
async def enable_spam(_, message):
global spam_enabled # Используем глобальный флаг

if message.text.split()[1] == "1":
spam_enabled = False # Устанавливаем флаг в False для прекращения отправки
logger.info("Остановка отправки сообщений")
elif message.text.split()[1] == "2": # Добавляем проверку для команды "resume"
spam_enabled = True # Устанавливаем флаг в True для возобновления отправки
logger.info("Возобновление отправки сообщений")
else:
while True: # Бесконечный цикл
if not spam_enabled:
break
await app.send_message(
message.chat.id,
message.text.split('+')[1]
)
logger.info(f"Отправил сообщение в {message.chat.id}")
await sleep(float(TIME_SLEEP))

app.run()
import asyncio
from loguru import logger
from asyncio import sleep
from pyrogram import Client, filters

app1 = Client("my_account1") # Первый клиент
app2 = Client("my_account2") # Второй клиент

TIME_SLEEP = 12
spam_enabled = True # Флаг, указывающий, включено ли отправление сообщений


@app1.on_message(filters.command('a', prefixes='-') & filters.me )
@app2.on_message(filters.command('a', prefixes='-') & filters.me )
async def enable_spam(_, message):
global spam_enabled # Используем глобальный флаг

if message.text.split()[1] == "1":
spam_enabled = False # Устанавливаем флаг в False для прекращения отправки
logger.info("Остановка отправки сообщений")
elif message.text.split()[1] == "2": # Добавляем проверку для команды "resume"
spam_enabled = True # Устанавливаем флаг в True для возобновления отправки
logger.info("Возобновление отправки сообщений")
else:
while True: # Бесконечный цикл
if not spam_enabled:
break
await app1.send_message(
message.chat.id,
message.text.split('+')[1]
)
await app2.send_message(
message.chat.id,
message.text.split('+')[1]
)
logger.info(f"Отправил сообщение в {message.chat.id}")
await sleep(float(TIME_SLEEP))


async def main():
await asyncio.gather(
app1.start(), # Запуск первого клиента
app2.start(), # Запуск второго клиента
)


if __name__ == "__main__":
loop = asyncio.get_event_loop()
loop.run _until_complete(main())
Кирилл Давыдов
Кирилл Давыдов
19 684
Лучший ответ
Сергей. Суханов. выдает ошибку
Сергей. Суханов. ну там сначала инвалид блок потом инвалид ситакс пишет
Создать вторую переменную
Чтобы создать два клиента, можно написать класс с двумя экземплярами клиента. Для этого вам нужно:

1. Создайте класс, который будет содержать двух клиентов.

```
class MyClients:
def __init__(self):
self.app 1 = Client("my_account_1")
self.app 2 = Client("my_account_2")
```

2. Создайте экземпляры этого класса:

```
my_clients = MyClients()
```

3. Для запуска обработчиков для обоих клиентов, вам нужно использовать следующий код:

```
loop = asyncio.get_event_loop()

try:
with my_ clients.app 1:
loop.run _until_complete(my_ clients.app 1.start())
with my_ clients.app 2:
loop.run _until_complete(my_ clients.app 2.start())
except KeyboardInterrupt:
with my_ clients.app 1:
loop.run _until_complete(my_ clients.app 1.stop())
with my_ clients.app 2:
loop.run _until_complete(my_ clients.app 2.stop())
```

4. Теперь обработчики событий будут вызываться для обоих клиентов.

Таким образом, вы можете объединить два клиента в один класс и одновременно запускать обработчики событий для обоих клиентов.
Vasilij Nazarov
Vasilij Nazarov
3 959
Сергей. Суханов. я не понимаю в это можете просто добавить это все в мой код чтобы оно работало
Сергей. Суханов. можете через ссылку