Форум сайта python.su
У меня есть база данных в списке. Там 113 пользователей (иногда меньше иногда больше) и некая информация про них. Затем я высылаю заказчику эту инфу в тг боте с помощью requests.get, но сталкиваюсь с проблемой лимита символов в тг. Каким образом я могу раздробить базу данных на сообщения по 25 юзеров в каждом?
Отредактировано GloverV (Янв. 15, 2023 19:26:57)
Офлайн
GloverVсобрать пакеты по приемлемому кол-ву символов из базы, потом эти пакеты отправить в телеграмм.
но сталкиваюсь с проблемой лимита символов в тг.
text = 'У меня есть база данных в списке. Там 113 пользователей (иногда меньше иногда больше) и некая информация про них.' \ ' Затем я высылаю заказчику эту инфу в тг боте с помощью requests.get, но сталкиваюсь с проблемой лимита символов в тг. ' \ 'Каким образом я могу раздробить базу данных на сообщения по 25 юзеров в каждом?' def split_data(text, len_package): return [text[i:i+len_package] for i in range(0, len(text), len_package)] packages = split_data(text, 25) print(f'пакетов для отправки: {len(packages)}\n') for i in packages: print(i)
Офлайн
GloverVЛимиты указаны на сайте https://telegram.org
но сталкиваюсь с проблемой лимита символов в тг
text String Yes Text of the message to be sent, 1-4096 characters after entities parsing
xam1816Не, там надо по разным сообщениям распределить текст. Соответственно, если просто его нарезать по количеству символов, то слова будут разделяться посередине. Ну, например, имя пользователя username разделится на user и name или на use и rname. Поэтому надо сделать такую разделялку, которая делит по целым записям. То есть там надо учитывать записи, границы записей должны быть, длину записи сравнивать с длиной максимального сообщения и так далее.def split_data(text, len_package):
GloverVТебе придётся создать свою структуру <Сообщение> и заполнять её записями <Запись> через операцию <Добавить запись>. И вот это <Сообщение> будет способно добавить к себе ещё одну запись, но при этом оно само будет лимитировано, чтобы помещаться в сообщении, которое формируется в Telegram'е. Когда ты попытаешься добавить в <Сообщение> ещё одну <Запись>, то проверка, которую проведёт операция <Добавить запись> покажет, что <Сообщение> уже заполнено и новая <Запись> в нём уже не помещается и что для неё нужно создавать новое сообщение.
Каким образом я могу раздробить базу данных на сообщения по 25 юзеров в каждом?
Отредактировано py.user.next (Янв. 15, 2023 23:31:05)
Офлайн