- Перейдите в папку с ботом
- Установить зависимости из файла
requirements.txt
Возможные команды для установки:
pip3 install -r requirements.txt
python -m pip install -r requirements.txt
python3.6 -m pip install -r requirements.txt
- Запустите бота, чтобы он создал файл
settings.py
(после чего он выключится)
Возможные команды для запуска(из консоли, из папки с ботом):
python3 vbot.py
python vbot.py
python3.6 vbot.py
- В
settings.py
заменитеTOKEN
на access_token группы илиLOGIN
иPASSWORD
на логин и пароль аккаунта ВК соответственно. И уберите#
перед введёнными данными
Если ввести и то и другое - бот будет работать как группа, и сможет использовать методы VK API пользователя.
Можно вводить несколько аккаунтов, но отвечать бот будет со всех без разбора, так что рекомендуется вводить только 1 группу и 1 пользователя максимум!
Без данных пользователя некоторые плагины могут не работать! Например, !скажи не будет работать! - Там же в
settings.py
вы можете ввести PROXY в указанном формате, но не гарантированно, что ВК пустит вас без подтверждения телефонного номера с этого PROXY, что бот автоматически не делает. - Укажите данные базы данных PostgreSQL или MySQL в DATABASE_SETTINGS в указанном формате. Создать свою БД можно на вашем сервере или, например, на Heroku
- Можете запускать бота, как в п.3. Теперь бот должен работать!
- Бота можно бесплатно захостить на Heroku. Гайд, Еще один гайд.
Текущая версия бота: 5.0
По умолчанию бот отзывается на префикс: !
.
Сменить их можно в settings.py
на 32 строке.
- Приветствие (плагин приветствия)
- Список плагинов (список загруженных плагинов)
- Музыка (список музыки из ваших рекомендаций в ВК)
- Случайное число (случайное число в разных диапазонах)
- Случайные мемы (берутся из паблика, указанного в плагине memes.py)
- Ближайшие дни рождения в группе (берутся из паблика, указанного в плагине birthday.py)
- Курс валют (отображение основных курсов валют)
- Список команд (список всех команд бота с описанием, как их использовать)
- Шар восьмерка (решает за вас)
- Время (показывает текущую дату и время)
- Статистика бота (показывает данные о счетчиках аккаунта)
- Послать сообщение (посылает сообщение другому пользователю, в том числе анонимное)
- Блокнот (может запоминать и вспоминать строки)
- Рассказать шутку (рассказывает случайный анекдот)
- Контроль бота (только для админов)
- Поиск видео (Ищет видео в ВК по запросу пользователя)
- Скриншот сайта (делает скриншот сайта)
- Погода (показывает погоду в Москве или указанном городе)
- Перечёркиватель (перечеркивает строку)
- Автоматическое добавление друзей (принимает входящие заявки в друзья раз в 10 секунд)
- Новости (показывает последние новости из Yandex)
- Объявление (не рассылка)(позволяет администраторам оставлять сообщение, которое могут прочитать только определённые люди)
- Переписка с ботом (пользователи могут пообщаться с ботом от ChatterBot! Работает только при USE_CHATTER = False)
VBot так-же позволяет развлекать пользователей беседами.
Инструкции по написанию логики бесед вы можете найти в chat/chat.py, а так-же в настройках.
Вы можете сами описание поведение бота, или воспользоваться ChatterBot.
Настроить ChatterBot вы можете в chat/chatter.py внизу(класс ChatterBot).
Миграции производятся с помощью файла migrate.py
в папке scripts
- Для того, чтобы узнать ID пользователя или группы, используйте https://vk.com/linkapp
- Чтобы очистить списки администраторов, белый лист, чёрный список, используйте программу
clear_lists.py
в папкеscripts
В папке plugins есть пример плагина в файле example.py, отвечающий на команду !тест
.
В нём подробно расписана структура плагина. Для примера работы plugin.data или plugin.temp_data
вы можете посмотреть memo.py, weather.py. Для примера цикличных задач friends.py.
Там есть и другие плагины, код которых можно просмотреть для понимания того, что можно сделать с помощью бота.
Каждый плагин должен иметь экземпляр класса Plugin (из plugin_system) под именем (обязательно) plugin. Все команды, на которые подписывается плагин, должны быть в нижнем регистре.
Вот пример простого плагина:
# Импортируем класс Plugin
from plugin_system import Plugin
# Создаём объект класса, через него мы будем "подписываться" на команды
plugin = Plugin('Плагин для еды')
# Использование async и await обязательно, т.к. бот асинхронный
@plugin.on_command('еда')
async def test(msg, args):
# Отвечаем пользователю
await msg.answer('Где еда?!')
Для хранения данных используется peewee-async.
После импорта всего из database(именно таким образом)
from database import *
Вы можете использовать db, который является экземпляром peewee_async.Manager. В database.py хранятся модели бд.
Плагины размещаются в папке plugins
. Если два плагина имеют одинаковые команды - они обрабатываются в обоих плагинах.
Плагины могут работать со всеми методами API ВКонтакте.
Не буду раскрывать все карты, но это будет легендарное обновление. В обновлении будет: большое количество исправлений, документация возможностей бота, графический интерфейс для работы с ботом, проверка пересылаемых сообщений на команды, новые плагины, настройки плагинов и многое другое!
Работа серьёзная, поэтому торопиться не буду, всё нужно доработать, всё нужно протестировать.
Проект открыт, любой может отправить свой Pull request на рассмотрение!
Мы обязательно изучим, обсудим и, возможно, примем изменения.
Материальная помощь:
QIWI: +79857398175
Можете к переводу прикреплять идеи плагинов или новых возможностей бота. Возможно, они появятся в будущих обновлениях.
Разработчиков этого бота можно найти в вк: