Привет всем. Возник вопрос. Есть у меня бот, который задан под определённую задачу. Можно ли сделать так, чтобы я мог по этой основе делать множество других как в специальных сайтах по созданию ботов. Пример: пользователь отправляет команду, вводит некоторые данные, свой API ключ от аккаунта и на его аккаунт привязывается бот. И так с множество другими пользователями. Как сделать такое, чтобы не создавать кучу папок с одними и теми же файлами. Так же было бы интересно узнать как делать в такой системе обновления. К примеру сделал обновление в основном коде, а он обновится у всех пользователей.
Код можно запускать из одного места и файлов, аргументами запуска в командной строке определять идентификатор владельца инстанса, все файлы с данными или что у вас там пусть хранятся в подкаталогах с именем равным этому идентификатору (но лучше конечно в базе данных хранить, тупо будет удобнее).
Осторожно с обновлениями, точнее с перезапуском бота при обновлениях или обслуживании. Вам нужно либо делать бот таким чтобы можно было безопасно в любой момент его 'остановить' (нужно понимать что ни одна операция с файлами на диске не мгновенна), т.е. вводить механизмы по временной их остановке с ожиданием окончания критичных процессов на это время (и соответствующий мониторинг для вас, чтобы можно было оценить чего ждете).
Делал подобную логику. Один файл бота для всех (копипастить кучу не нежно), рядом с файлом бота ложил обычый json куда с админки пользователя прилетают и сохраняются личные токены ботов. В файле бота перед стартом читаю этот json и циклом прохожусь и создаю бота под каждый токен - и все) Чтобы бот перезагружался если прилетает новый токен от пользователя я на ноде через pm2 менеджер настроил наблюдение за изменением в файле.