@Nika980

Как написать бот для создания ботов?

хочу сделать бота, что через него можно было делать других ботов, с моим меню, только чтобы пользователи могли использовать свое имя пользователя и название. От них требовался только токен. Как так сделать? Скиньте инструкцию, если не трудно, а то гугл меня не понимает, вообще другое что-то находит
  • Вопрос задан
  • 108 просмотров
Пригласить эксперта
Ответы на вопрос 4
Dr_Elvis
@Dr_Elvis
В гугле забанен
не задумывался над таким, но тут очень много нюансов.
Общий алгоритм думаю такой:
1) при получении команды в вашем боте на копирование бота нужно скопировать заранее подготовленную папку с ботом-шаблоном куда нибудь на сервер в отдельную папку
2) изменить в файлах настройках токен(либо добавить его в базу откуда будет он браться)
3) создать все таблицы БД с каким нибудь префиксом, чтобы отличать одного бота от другого и чтобы у каждого были свои таблицы и данные
4) создать и запустить сервис(например systemd)

Крупными мазками - примерно так. Но вот нюансы известны только вам, так как бот ваш. Использует ли вообще ваш бот БД? Может он использует тот же Redis? использует ли он какое то внешнее api? и т.д.
Если бот простейший - можно сделать, если чуть посложнее - то придется много факторов учесть. Для образовательных целей - хорошая задумка, много чего придется изучить чтобы реализовать. а так... оно того не стоит.
Ответ написан
Комментировать
Griboks
@Griboks
Вообще не проблема, только вы сайтом ошиблись. Вам нужно на фриланс.
Ответ написан
Комментировать
@PySher
1. Создайте шаблон бота, который может быть персонализирован. Этот шаблон будет использоваться для создания других ботов. Шаблон может содержать меню, настройки и другие функции, которые будут доступны для пользователя.

2. Создайте API, который будет использоваться для создания новых ботов. API должен принимать запросы от пользователей и генерировать новые токены для создания новых ботов.

3. Создайте скрипт для создания новых ботов. Этот скрипт должен использовать токен, который был создан в API и шаблон бота, чтобы создать нового бота.

4. Реализуйте авторизацию для пользователей, чтобы пользователи могли использовать свои имена пользователя и названия для своих ботов. Вы можете использовать базу данных для хранения информации об именах пользователей и токенах ботов.

5. Создайте пользовательский интерфейс для взаимодействия с ботом. Этот интерфейс должен позволять пользователям создавать новые боты, изменять настройки и использовать другие функции.

Естественно, кода никто не даст
Ответ написан
Комментировать
shurshur
@shurshur
Сисадмин, просто сисадмин...
Конечно же можно. Но это весьма нетиповая задача, и поэтому нельзя ожидать готовых решений.

Как одно из простейших, можно сделать бота на вебхуках и обойтись одним скриптом. При запуске инициализируем управляющего бота и по очереди всех клиентских ботов, вызываем от них метод set_webhook. Например, делаем что-то типа site.ru/webhook/control и site.ru/webhook/{bot_token}. Затем запускаем основной метод используемого фреймворка (например, flask или aiohttp).

Описываем два обработчика, /webhook/control для управляющего бота и /wehook/{bot_token} для клиентских ботов. В управляющем обрабатываем запросы на добавление/изменение/удаление. В клиентском из пути в запросе берём токен бота, создаём объект бота с токеном (вариант - можно держать готовый словарь из объектов бота с ключом по токену, маленькая оптимизация) и вызываем от него метод process_new_updates (или какой там используется в любимой библиотеке).

Это общий план, не руководство к обязательному исполнению. Разумеется, многое может сильно зависеть от задачи. Например, если выполняемые ботом операции делают много процессорных операций, то может быть будет лучше запускать ботов отдельными скриптами или использовать треды. Если требуют времени, но зависят от ввода-вывода (базы данных, сторонние API итд) - asyncio. Нужно много памяти/процессора - запускать в kubernetes/swarm/виртуалках/итд. Сложный проект может потребовать сложных решений.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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