@ArtemMik
Python

Как привязать разный текст к разным сессиям телеграмма?

У меня есть папка "accounts" в которой находятся сессии телеграмма. Мне надо привязать текст через файл txt к каждой сессии и этот файл txt должен быть отдельный для каждой сессии, у меня это сделано через условия файл message.py, эти условия всегда надо менять (если добавляются новые аккаунты и т.д), а это должно быть автоматизировано, вот как это сделано у меня:

Файл loader.py:

acc = os.listdir("accounts")

    with open(text_file2, encoding="utf-8") as file:
            message2 = file.read()
    with open(text_file, encoding="utf-8") as file:
            message = file.read()
    with open(text_file3, encoding="utf-8") as file:
            message3 = file.read()

в этом файле у меня подгружаются файлы текстов, но это всё сделано через условия, а надо сделать автоматизировано

Файл message.py:

async def mess(account: dict, chat: str, delay_before_start: int):
    client: TelegramClient = account["client"]
    phone = account["phone"]
    await sleep(delay_before_start)
    while True:
        try:
            if phone == "+27633529916":
                await client.send_message(chat, message)
            if phone == "+276375173896":
                await client.send_message(chat, message2)
            if phone == "+27736332961":
                await client.send_message(chat, message3)
        except Exception as e:
            logger.critical(f"ошибка аккаунта {phone} при отправке сообщения")
        logger.success(f"аккаунт {phone} отправил сообщение")



в этом файле сообщения отправляются, но тоже как вы видите всё сделано через условия без автоматизации

Файл config.py:

text_file = "message.txt"
text_file2 = "message2.txt"
text_file3 = "message3.txt"


Главная суть чтобы не было этих бесконечный условий, если будут добавляться новые аккаунты ,то придётся дополнять условия, а это уже не автоматизация
  • Вопрос задан
  • 116 просмотров
Решения вопроса 2
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Вам надо открыть для себя чудесный мир структур данных, итераторов, сериализаторов/десериализаторов, возможно также реляционных баз данных, классов и ООП. Ну и асинхронщину изучить, раз уж вы ее пытаетесь использовать.

Вам придется перепроектировать свою программу, малой кровью тут не обойтись. Хорошо было бы, если бы вы до переделки разобрались бы с ООП, это сильно вам потом сократило бы силы и время на переделки и доделки.
Но сходу, с налёту это не изучается. Без понимания структур данных и работы с ними вам не уйти далеко. Сейчас вы как инженер, которому задали рассчитать и спроектировать конструкцию, а он даже умножать не умеет, только складывать.
Ответ написан
@ArtemMik Автор вопроса
Python
решил путём добавления новой строки в базе данных:

Добавил в БД строку под названием text с атрибутом TEXT. Главная суть БД в этом случае, что срока в БД индивидуальная для каждого акка телеграмма, поэтому текста для каждого акка могут быть разными ,а это и была главная суть моего вопроса

Дальше нам просто надо достать этот текст из БД:

def get_text_file(self, phone):
        self.execute("SELECT text_file FROM accounts WHERE phone = ?", (phone,))
        return self.fetchone()[0]


Дальше мы обращаемся к БД и записываем этот текст в переменную и отправляем сообщение куда нам надо и каждый акк будет отправлять своё сообщение которое записано у не го в БД :
with DB() as db:
        message = db.get_text_file(phone))

    await client.send_message(chat, message)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы