-
Notifications
You must be signed in to change notification settings - Fork 3
Юзер гайд
Самое простое - установить все из pip:
pip3 install errbot
pip3 install vk_api
Это все, что понадобится для бота. Для подробной информации: http://errbot.io/en/latest/user_guide/setup.html#installation
Дальше, нужно установить бот в директорию.
mkdir ~/vk-bot
cd ~/vk-bot
errbot --init
В папке появится две папки: data и plugins, а так же config.py. Заходим в config.py и добавляем строку:
- Если используются логин/пароль: BOT_IDENTITY = {'login':'логин', 'password':'пароль'}
- Если используется токен: BOT_IDENTITY = {'token':'токен'}
Дальше, добавляем следующую строку: BOT_ADMINS = ('10399749', )
Вместо цифр заменяем на свой айди в ВК.
Так же вписываем: BACKEND = 'VK' BOT_EXTRA_BACKEND_DIR = '/путь_до_папки_с_ботом/errbot-vk/'
Теперь можно проверять работу, в той же директории пишем команду:
errbot
В базе бота уже включены некоторые команды, такие как !help, !echo и т.д.
Заходим в папку plugins/err-example, заходим в example.py, видим вот такой файл:
from errbot import BotPlugin, botcmd
class Example(BotPlugin):
"""
This is a very basic plugin to try out your new installation and get you started.
Feel free to tweak me to experiment with Errbot.
You can find me in your init directory in the subdirectory plugins.
"""
@botcmd # flags a command
def tryme(self, msg, args): # a command callable with !tryme
"""
Execute to check if Errbot responds to command.
Feel free to tweak me to experiment with Errbot.
You can find me in your init directory in the subdirectory plugins.
"""
return 'It *works* !' # This string format is markdown.
Это простой плагин, который отвечает сообщением 'It works!', если пользователь написал !tryme.
В боте уже включены некоторые функции, которые упрощают связь с ВК.
-
Отправить ответ на сообщение
self._bot.send_reply(msg, vk_message)
Пример:
@re_botcmd(pattern="^(правда)+.*", prefixed=False)
def truth_or_false(self, mess, match):
pravdamsg = []
goodmsg = ["🎱Абсолютно!", "🎱Абсолютно точно!", "🎱Верно!", "🎱Правда!", "🎱Конечно же да!", "🎱Бесспорно.", "🎱Думаю да."]
neutralmsg = ["🎱Возможно.", "🎱Не уверен.", "🎱Лучше не рассказывать.", "🎱Весьма сомнительно."]
badmsg = ["🎱Скорее всего нет.", "🎱Врядли.", "🎱Что-то мне подсказывает, что нет.", "🎱Конечно нет.", "🎱Перспективы не очень хорошие.", "🎱Неправда. "]
pravdamsg = goodmsg + neutralmsg + badmsg
pravdafinal = random.choice(pravdamsg)
vk_message = str(pravdafinal)
self._bot.send_reply(mess, vk_message)
-
Получить данные о групповом чате
chat = self._bot.get_chat_query(mess.to-2000000000)
Пример:
@re_botcmd(pattern="^(кто)+.*", prefixed=False)
def whois(self, mess, match):
if mess.to > 2000000000:
chat = self._bot.get_chat_query(mess.to-2000000000)
chat_users = chat["users"]
done = False
while done is False:
user = random.choice(chat_users)
if user["last_name"] == "":
continue
else:
done = True
return_msg = "Я думаю, что это {} {}.".format(user["first_name"], user["last_name"])
self._bot.send_reply(mess, return_msg)
else:
return "Я думаю, что это вы."
-
Отправить вложение
msg.extras["attachment"] = "photo10399749_456240725"
Пример:
@botcmd
def pics(self, mess, args):
#print(self.get("pics_album", None))
photos = self._bot.get_photo_by_album_id(163328612, 215397085)
photo = random.choice(photos["items"])
mess.extras["attachment"] = "photo{}_{}".format(photo["owner_id"], photo["id"])
mess.extras["fwd_off"] = True
self._bot.send_reply(mess, "")
-
Отправка множественных сообщений
yield "Привет!"
Пример:
@botcmd
def longcompute(self, mess, args):
yield "Going to sleep"
sleep(10)
yield "Waking up"
Вся документация есть на сайте http://errbot.io/en/latest/user_guide/plugin_development/
Если есть какие-нибудь вопросы, не стесняйтесь, пишите: https://vk.com/ax3effect