Разработать тг бота для выдачи аккаунтов

10 000 руб. за проект
30 октября 2024, 11:11 • 31 отклик • 208 просмотров
Главная суть бота – выдача 10 рандомных аккаунтов из большой БД по ключевым фильтрам. База данных состоит из более чем 3000 данных аккаунтов на различных площадках. Единовременно использовать бота будут максимум 10 человек, 3 из которых это админы.

Путь пользователя (пока что предварительно, так как полноценное ТЗ ещё формируется) выглядит следующим образом:
1. Определение нового пользователя в боте (поиск по базе с ID) и распределение на default_user (пользователь с ограниченными правами) и на super_user (проще говоря, админ).
2.1 В случае с обычным пользователем, перво-наперво присылается приветственное сообщение о том, чем является этот бот и описывающий суть построения запросов в БД.
2.2 В случае с админом, нужны кнопки (inline или на клавиатуре не суть важно) импорта, экспорта, редактирования и статистики.
3.1 В случае использования бота обычным пользователем, предлагаем ему составить запрос к БД с помощью выбора из: площадки (20 площадок), пола (М, Ж, Не указан), тематики (Автомобили, Строительство, Медицина и тд), объекта (например, наименование автосалона), использован или нет (об этом в пункте 4). Каждый выбор должен сопровождать выбором логического элемента (И, ИЛИ, НЕ) и условной точкой (Закончен). Таким образом можно будет выбрать аккаунт, например, по 1 площадке, 2 любых полов, 3 тематик и НЕ по какому-то объекту.
3.2 В случае использования бота суперпользователем, импортировать и экспортировать БД нужно целиком, без привязки к номерам, площадкам и тд. Редактирование конкретного аккаунта должно происходить с занесением основных данных об аккаунте (площадка, логин, пароль). Статистика собирается следующим образом: площадка – общее количество аккаунтов на ней – использовано – не использовано.
4. После формирования запроса обычным пользователем, выбираются 10 (или меньше, если столько не набирается) рандомных аккаунтов, подходящих под запрос, отправляются отдельными сообщениями с inline-кнопками "Использовать", после нажатия на которую обновляется столбец used в БД (с 0 – не использовался, на 1 – использовался); высвечивается сообщение о том, что данные обновлены. В случае, если такой же аккаунт попался другому пользователю, но он не успел нажать "Использовать", проверяется ячейка в столбце used и высвечивается сообщение о том, что данный аккаунт сейчас используется. После успешного выбора аккаунта, ботом отправляется сообщение со списком "тематика + объект" (которые можно скопировать в 1 клик) и ожиданием того, что пользователь отправит ответное сообщение "тематика + объект", которые занесутся в поля category, object БД.
5. В случае, когда рандомно выбранные аккаунты, по той или иной причине, не подходят, должна быть кнопка обновления, которая выберет новые аккаунты, учитывая последний запрос.
6. За каждым пользователем, который взаимодействует с ботом, фиксируются все его запросы к базе данных, чтобы потом предлагать наиболее популярные запросы, не тратя время на составление с нуля.
7. Предусматривается отправка запроса сообщением к боту, используя "+" – "И", "/" – "ИЛИ", "-" – "НЕ", "." – "Закончен" в качестве логических элементов.
8. Дополнительно должны фиксироваться логи на каждого пользователя. Возможно, с использованием беседы, куда будут отправляться все запросы и изменения БД.

Бот должен поддерживать асинхронность и возможность использования, в моменте, 10-ю пользователями.