- Перейдите в папку с ботом
- Установить зависимости из файла
requirements.txt
.
Например, выполнив командуpip3 install -r requirements.txt
. Это автоматически установит все нужные модули. - Запустите бота, чтобы он создал файл
settings.py
(после чего он выключится)
Например, выполнив командуpython3 vbot.py
(илиpython
, илиpython3.6
) - В
settings.py
заменитеTOKEN
на access_token группы илиLOGIN
иPASSWORD
на логин и пароль аккаунта ВК соответственно. И уберите # перед введёнными данными
Если ввести и то и другое - бот будет работать как группа, но сможет использовать медоты VK API пользователя.
Можно вводить несколько аккаунтов, но отвечать бот будет со всех без разбора, так что реккомендуется вводить только 1 группу и 1 пользователя. - Там же в
settings.py
вы можете ввести PROXY в указанном формате, но не гарантированно, что ВК пустит вас без подтвержения телефонного номера с этого PROXY, что бот автоматически не делает. - Укажите данные базы данных PostgreSQL в DATABASE_SETTINGS в указанном формате. Если оставить DATABASE_SETTINGS = (), то не будут работать плагины, которым нужна БД. Создать свою БД можно, например, на Heroku
- Запустите
python3 vbot.py
(илиpython
, илиpython3.6
). - Бота можно бесплатно захостить на Heroku. Гайд, Еще один гайд.
По умолчанию бот отзывается на префикс: !
.
Сменить их можно в settings.py
на 35 строке.
- Приветствие (Плагин приветствия)
- Список плагинов (Список загруженных плагинов)
- Музыка (Список музыки из ваших рекомендаций в ВК)
- Случайное число (Случайное число в разных диапазонах)
- Случайные мемы (Берутся из паблика, указанного в плагине memes.py)
- Ближайшие дни рождения в группе (Берутся из паблика, указанного в плагине birthday.py)
- Курс валют (Отображение основных курсов валют)
- Список команд (Список всех команд бота с описанием, как их использовать)
- Шар восьмерка (Решает за вас)
- Время (Показывает текущую дату и время)
- Статистика бота (Показывает данные о счетчиках аккаунта)
- Послать сообщение (Посылает сообщение другому пользователю, в том числе анонимное)
- Блокнот (Может запоминать и вспоминать строки)
- Рассказать шутку (рассказывает случайный анекдот)
- Выключение (Выключает бота, если команду послал администратор)
- Поиск видео (Ищет видео в ВК по запросу пользователя)
- Скриншот сайта (делает скриншот сайта)
- Погода (показывает погоду в Москве или указанном городе)
- Перечеркиватель (перечеркивает строку)
- Автоматическое добавление друзей (принимает входящие заявки в друзья раз в 10 секунд)
- Новости (показывает последние новости из Yandex)
Для того, чтобы узнать ID пользователя или группы, используйте https://vk.com/linkapp
В папке 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 хранятся модели бд.
Если данные для БД не введены, то бот будет использовать словарь для базовых функций. Подробнее: database.py, fake_database.py.
Плагины размещаются в папке plugins
. Если два плагина имеют одинаковые команды - они обрабатываются в обоих плагинах.
Плагины могут работать со всеми методами API ВКонтакте.
Проект открыт, любой может отправить свой Pull request на рассмотрение! Мы обязательно изучим, обсудим и, возможно, примем изменения.
Разработчиков этого бота можно найти в вк: