GloverV
но сталкиваюсь с проблемой лимита символов в тг
Лимиты указаны на сайте
https://telegram.orghttps://core.telegram.org/bots/api#sendmessagetext String Yes Text of the message to be sent, 1-4096 characters after entities parsing
xam1816
def split_data(text, len_package):
Не, там надо по разным сообщениям распределить текст. Соответственно, если просто его нарезать по количеству символов, то слова будут разделяться посередине. Ну, например, имя пользователя username разделится на user и name или на use и rname. Поэтому надо сделать такую разделялку, которая делит по целым записям. То есть там надо учитывать записи, границы записей должны быть, длину записи сравнивать с длиной максимального сообщения и так далее.
GloverV
Каким образом я могу раздробить базу данных на сообщения по 25 юзеров в каждом?
Тебе придётся создать свою структуру <Сообщение> и заполнять её записями <Запись> через операцию <Добавить запись>. И вот это <Сообщение> будет способно добавить к себе ещё одну запись, но при этом оно само будет лимитировано, чтобы помещаться в сообщении, которое формируется в Telegram'е. Когда ты попытаешься добавить в <Сообщение> ещё одну <Запись>, то проверка, которую проведёт операция <Добавить запись> покажет, что <Сообщение> уже заполнено и новая <Запись> в нём уже не помещается и что для неё нужно создавать новое сообщение.
Довольно сложно это для новичка. Там надо сделать классы Message и Record, где класс Message хранит у себя внутри список объектов Record и имеет операцию add_record(), которая умеет проверять длины. А чтобы получить длину записи, класс Record должен иметь операцию get_size(), которая возвращает размер в байтах того текста, который получится из этой записи в итоге. Естественно, у Message также должен быть метод to_string(), который у себя внутри составляет какую-то строку и при этом вызывает метод to_string() у каждой записи из списка записей. То есть у Record тоже должен быть свой метод to_string().
В результате ты должен накопить записи из базы данных где-то, получится список записей. Потом начать составлять сообщения с этими записями из списка записей. Когда сообщения заполненяются до лимитированных пределов, ты эти сообщения складываешь куда-то, в какой-то список сообщений, и начинаешь новые сообщения, складывая следующие записи туда. И вот когда у тебя будет список сообщений готовый, когда все записи закончатся, тогда ты этот список сообщений начинаешь отправлять в Telegram, отправляя сообщения из этого списка одно за другим. При этом каждое сообщение отправляется специальным отправителем Sender, который знает, как в Telegram сообщения отправлять.