Это бот созданный для пересылки сообщений из сферума в телеграмм.
Для начала необходимо установить на сервер подходящий дистрибутив linux с systemd, настоятельно рекомендуется ubuntu-server 24 (даллее инструкции для данного дистрибутива).
Скачиваем git (если не установлен):
sudo apt-get install git
Далее необходимо скопировать проект в папку пользователя.
git clone https://github.com/Dellno/antisferumbot.git
теперь необходимо создать виртуальное окружение
cd antisferumbot
sudo apt install -y python3-venv
python3 -m venv myenv
source myenv/bin/activate
теперь необходимо установить библиотеки для работы бота.
pip install -r requirements.txt
После этого необходимо настроить бота, делается это путём изменения файла settings.json
nano settings.json
| параметр | пример | на что влияет |
|---|---|---|
| remixdsid | "очень длинаая строка" | обязательный параметр, берётся из cockie файлов вашего браузера. (скачиваете плагин для просмотра заходите в сферум и смотрите этот пораметр плагином) |
| telegram_bot_token | "длинный набор букв" | берётся в телеграмме у @BotFather |
| chat_id | 2000000001 | обязательный параметр, можно посмотреть в ссылке браузера если зайти в нужный чат (https://web.vk.me/convo/тут будет айди чата?entrypoint=list_all) |
| targets | [1231131, 124312154] | не обязательный параметр, если указан то сообщения будут пересылаться только от пользователей, чьи айди указаны (посмотреть можно в самом сферуме) |
| start_msg | 0 | по стандарту стоит 0, можно указать номер сообщения в чате, с которого бот начнёт анализировать чат, советуется ставить на 10 меньше номера последнего сообщения |
| start_fraze | ["фраза", "вторая фраза"] | обязательно указать хотябы 1. Будет писать случайную из указанных фраз в телеграмм после команды /start, сигнализируя о том, что бот работает |
после редактирования файла необходимо нажать ctrl+x, потом нажать y, после enter.
далее прописываем команду pwd и записываем вывод в файле main.py в переменную bot_path (11 строчка).
nano main.py
bot_path = "вывод команды pwd + /"
после редактирования файла необходимо нажать ctrl+x, потом нажать y, после enter.
nano first_run.py
bot_path = "вывод команды pwd + /"
после редактирования файла необходимо нажать ctrl+x, потом нажать y, после enter.
теперь необходимо убедится что бот работает. Прописываем в терминале команду:
python3 first_run.py
Заходим в телеграм, добавляем нашего бота в нужный чат, пишем /start. если бот ответил одной из указанных ранее вами фраз, значит всë ок. нажимаем Ctrl+z (2 раза) чтобы выключить бота. также признаком корректной работы бота после про рисования команды /start является создание в директории с проектом файла "bot_memory.txt". (посмотретьдсодержимое директории можно в терминале командой ls.
теперь перезапускаем сервер командой sudo reboot , прописываем пароль и сервер перезагружается.
Теперь бот может работать, но т.к. это запросы к API, вполне нормально возникновения ошибок, которые приводят к крашу бота. Так сферум АПИ может выкидывать бота +- раз в 15 минут. Дабы не перезапускать бота каждые 15 минут в ручную, мы создадим для этого "сервис", который будет делать это за нас, даже после перезагрузки сервера.
для начала прописываем в терминале команду:
sudo nano /etc/systemd/system/asbot.service
вводим пароль администратора, и в открывшемся, уже знакомом нам редакторе пишем:
[Unit]
Description=My test service
After=multi-user.target
[Service]
User=имяпользователя
Group=имяпользователя
Type=simple
Environment=PYTHONPATH=/home/имяпользователя/antisferumbot
Restart=always
RestartSec=5s
ExecStart=результат_вывода_команды_pwd/myenv/bin/python3 результат_вывода_команды_pwd/main.py
[Install]
WantedBy=multi-user.target
после редактирования файла необходимо нажать ctrl+x, потом нажать y, после enter.
теперь необходимо выполнить следующие команды :
sudo systemctl daemon-reload
sudo systemctl enable asbot.service
sudo systemctl start asbot.service
если после ввода команд просит ввести пароль, вводим.
теперь бот запущен и добавлен в автозагрузку, поверить это можно всë этой же командой /start в телеграмм чате с ботом.
если же бот не запустился на данном этапе, проверить его состояние можно командой
sudo systemctl status asbot.service
в случае неудачи будут выведены коды ошибок.