Как сделать бота в вк для беседы: гайд для старта на платформе / Хабр

Содержание

vk-admin-bot/commands.md at master · Anton3/vk-admin-bot · GitHub

Боты

Бот-админ выполняет все команды. Можно писать команды ему команды в личку. В беседе нужно дать «доступ ко всей переписке». Выбирайте одного любого:

  1. Бот Борис
  2. Бот Тор (англ. Thor)

Бот-помощник является инструментом бота-админа в управлении беседой. Нужно дать ему администратора беседы. Выбирайте одного любого:

  1. Ян Молотов

Требуемые права

  • 👑admin — все команды; не путать с администраторами бесед ВК
  • 🔑supermoderator — все команды, кроме самых опасных
  • 🔨moderator — может исключать участников и управлять ими
  • 🧑 Участник беседы — нет особых прав
  • 🤖 Команду можно писать в личку боту

Используемые обозначения

  • Все команды начинаются или с /, или с .
  • /команда <аргумент>
    Здесь внутри <> приводится название/описание аргумента. На месте <аргумент> надо написать то, что требует данная команда
  • Сами угловые скобки <> писать не надо. Только то, что внутри
  • 👤 — ссылка на профиль пользователя, с которым надо выполнить какое-то действие, например, vk.com/id1. Также можно использовать упоминание, или вместе с командой переслать его сообщение.
  • 👥 — Можно указать нескольких пользователей сразу
  • 🕒 — Целое число и одна из букв смчд. Примеры: 30м,
  • <игра> — или кр (то есть Clash Royale), или бс (то есть Brawl Stars)
  • #тег — тег игрока или клана в игре

Общие команды

  • 🤖/начать Получить ссылки на основные команды и страницы
  • 🧑🤖/команды
    Получить ссылку на эту страницу
  • 🧑🤖/пинг Проверить, работает ли бот
  • 🧑/напиши <текст> Бот напишет, что прикажете. В начале сообщения бот добавит значок ✍, в котором содержится ссылка на вас
  • 🧑/онлайн Список участников, которые сейчас онлайн, и их приложения ВК
  • 🧑/неактив 🕒 Список участников, не писавших сообщения в последнее время
  • 🤖/новыйчат <ссылка на юзербота> Создать новую беседу с ботом
  • 🤖/рассылка 🕒 <ссылка на бота-группу> <текст> Рассылка среди бесед с ботом (вы должны быть в контактах группы бота)

Приглашение и исключение из беседы

  • 🔨/кик 👥 Кикнуть из беседы. Кик бессрочный. Кикнутого можно пригласить обратно
  • 🔨/киксобак Кикнуть удалённых и забаненных в ВК пользователей
  • 🔨/кикнеактив 🕒 Кикнуть участников, не писавших сообщения за указанный срок. Учитываются только сообщения, написанные в присутствие бота!
  • 🔨/кикновых 🕒 Кикнуть участников, зашедших в беседу недавно, в течение указанного срока
  • 🔨/пригласи 👥 Пригласить в беседу. История переписки (последние 1000 сообщений) будет видна новичку
  • 🔨/бан 🕒 👥 Забанить на определённый срок. Во время бана пользователя нельзя пригласить в беседу. Если он добавил в друзья бота-помощника, то этот бот его вернёт. При повторном применении /ban к уже забаненному пользователю, он перебанивается, начиная с текущего момента
  • 🔨/бан вечный 👥 Забанить навсегда. Такой пользователь не будет автоматически разбанен
  • 🔨/разбан 👥 Разбанить и пригласить в беседу
  • 🔨/мут 🕒 👥
    Заглушить на определённый срок. Пользователь сможет читать, но не писать в беседе
  • 🔨/мут вечный 👥 Бессрочное заглушение
  • 🔨/размут 👥 Отменить заглушение
  • 🧑/банлист Посмотреть список пользователей в бане и муте

Роли

Управление ролями:

  • 🧑/роли Показать список ролей беседы
  • 🧑/всероли Список всех обладателей каждой из ролей
  • 🔑/новаяроль <название роли> Создать новую роль
  • 🔑/удалироль <название роли> Удалить роль
  • 🔑/переименовать <старое название роли> <новое название роли> Поменять название роли
  • 🔑/переместить <роль> <номер> Передвинуть роль в списке ролей на позицию с указанным номером

Выдача ролей:

  • 🧑/кто 👤 Показать роли участника
  • 🧑
    /роль <роль>
    Показать список участников с указанной ролью
  • 🔨/позвать <роль> Призвать в беседу участников с указанной ролью
  • 🔨/дать <роль> 👥 Выдать указанную роль пользователям
  • 🔨/забрать <роль> 👥 Забрать указанную роль у пользователей
  • 🧑/уволиться Снять с себя все роли (админы, осторожно!)

Особые роли: admin, supermoderator, moderator, normal. Особым ролям также можно давать «человеческие» названия. По умолчанию:

  • создатель = admin 👑
  • админ = supermoderator 🔑
  • модер = moderator 🔨
  • участник = normal 🧑

Особые роли не отображаются в общем списке ролей, вместо этого их можно найти в списке

/начальники. Для выдачи особых ролей также есть сокращённые команды.

  • 🧑/начальники Посмотреть руководящие роли и их обладателей
  • 👑/создатель 👥 = /дать создатель
  • 👑/админ 👥 = /дать админ
  • 🔑/модератор 👥 = /дать модератор
  • 🔨/участник 👥 = /дать участник

При переименовании особых ролей, соответствующие команды также переименовываются.

Чтобы иметь право кикнуть участника беседы или управлять его ролями, привязками к аккаунтам или описанием, вы должны иметь административную роль выше него. Исключение: admin

может кикать и управлять другими admin.

Внимание: прежде чем выдавать роль admin (создатель), учтите, что обладатель такой роли может удалить всю информацию беседы через /сброс и кикнуть всех остальных участников!

Когда бот-юзер получает Администратора беседы (выдаётся через версию для ПК), он выдаёт роль admin Создателю беседы и роли supermoderator другим Администраторам беседы. Если вы неосторожно поснимали все руководящие роли и слишком поздно осознали свою ошибку, вернуть их может Создатель беседы, если кикнет бота-юзера, добавит и снова выдаст Администратора беседы.

Настройка названия, фото, закрепа

  • 👑/имябеседы <новое имя>
  • 👑/фотобеседы <прикрепить фото>
  • 🔨/закреп <переслать сообщение> Закрепить
  • 🔨/закреп Открепить

Удаление сообщений

  • 🔨/удали <переслать сообщения> Удалить пересланные сообщения
  • 🔨/удали 🕒 <переслать сообщения> Удалить пересланные сообщения по таймеру
  • 🧑/удали 🕒 <переслать сообщения> Удалить свои сообщения по таймеру
  • 🧑/оставь <переслать сообщения> Не удалять сообщения
  • 🔑/чистка 🕒 Удалить сообщения за указанный интервал времени
  • 🔑/чистка 🕒 👥 Удалить сообщения указанных пользователей за указанный интервал времени
  • 🔑/антимат Переключить удаление сообщений с руганью. Слова, считающиеся ругательствами, можно посмотреть здесь
  • 🔑/антиголосовые Переключить удаление голосовых сообщений
  • 🔑/антиграффити Переключить удаление граффити
  • 🔑/антикофи Переключить удаление шифровок от Coffi
  • 🔑/антиссылки Переключить удаление всех ссылок от не-модеров
  • 🔑/антифото Переключить удаление всех фото и видео от не-модеров
  • 🔑/антифлуд Если от одного не-модера идут 2 сообщения с кучей эмодзи подряд или 2 стикера подряд или дубль, старое такое сообщение удаляется
  • 🔑/антикофи Переключить удаление шифровок от Coffi
  • 🔑/чистаяистория 🕒 Удалять стикеры и прочий «мусор» через указанный срок после его написания
  • 🔑/чистаяистория Отключить «чистую историю»

Борьба со спамом командами

  • 🧑/лс <команда> Модификатор команды: ответить личным сообщением. Пример: /лс начальники
  • 🧑/тут <команда>
    Модификатор команды: ответить в беседе и не удалять ответ. Пример: /тут начальники
  • 🧑/тут 🕒 <команда> Модификатор команды: удалить ответ через указанное время. Пример: /тут 1м начальники
  • 🧑/тут 🕒 <продолжение сообщения> Удалить текущее сообщение через указанное время. Пример: /тут 1м лол
  • 🔑/автоудаление 🕒 Автоматически удалять некритичные команды через определённое время. Рекомендуется от 2m до 30m, в зависимости от активности беседы
  • 🔑/автоудаление Выключить автоудаление
  • 🔑/всевличку Переключить ответы на команды в ЛС. Ответы на не-административные команды будут посылаться в личку тому, кто написал команду
  • 🧑/лог Посмотреть последние модерские команды, выполненные в беседе
  • 🧑/лог <число> Показать указанное число последних модерских команд
  • 🧑
    /лслог <административная роль>
    Присылать все команды, требующие роль, начиная с указанной, в личку. Полезно админам, чтобы присматривать за модераторами
  • 🧑/лслог Не присылать команды из этой беседы в личку

Настройка беседы

  • 🧑/настройки Показать текущие значения настроек беседы

Настройки, которые не вошли в другие категории команд:

  • 👑/префикс <префиксы> Сменить префикс бота в беседе. Допустимы символы, которые можно найти на клавиатуре. Можно указать несколько вариантов через пробел. По умолчанию: / .. Какой бы ни был префикс, бот будет отзываться на команды, если его упомянуть в начале сообщения

  • 🔑/приветствие <текст/пересылки> Задать сообщение, которое нужно посылать при добавлении в беседу. Оно будет самоудаляться через 2м

  • 🔑/приветствие Убрать приветствие

  • 🔑/автокик Кикать участников, покидающих беседу, чтобы они не могли вернуться, когда их не ждут

  • 🔑/фиксинвайт Добавлять людей в беседу могут только модераторы

  • 🔑/вминуту <число> Указать ограничение на число сообщений в минуту для не-модеров. При включённом /антирейд кикает за превышение лимита в минуту на 5 сообщений

  • 🔑/вминуту Снять ограничение

  • 🔑/антиподряд <число> Указать ограничение на число сообщений подряд для не-модеров

  • 🔑/антиподряд Снять ограничение

  • 🔑/тишина В беседе могут писать только модераторы, остальные сообщения удаляются

  • 👑/удалятьвсе 🕒 Все сообщения (даже от модераторов) будут удаляться через указанный срок

  • 👑/удалятьвсе Выключить удаление всех сообщений

  • 🔑/антирейд Бот будет кикать за 5 нарушений подряд (см. /вминуту, /антиграффити, /антиссылки, /антифото), а также за очень большие сообщения и за сообщения с кучей эмодзи. По умолчанию настройка включена

  • 🔑/антибот <слово> Все участники (кроме модеров) должны будут написать указанное вами слово, чтобы общаться в беседе. За игнорирование требования 4 раза подряд — кик

  • 🔑/антибот Выключить «антибот»

  • 🔑/антипризыв Если включено, то массовый призыв (через @all и подобные) можно делать только модерам. За нарушение — кик. По умолчанию настройка включена

  • 👑/приглассылка Получить ссылку на приглашение в беседу (только если бот-юзер — создатель беседы)

  • 👑/приглассылка сброс Сгенерировать новую ссылку

  • 👑/сброс Удалить всю информацию о беседе и деактивировать ботов

Приват

Приват — это мягкая форма мута, когда все сообщения от участника удаляются через заданный срок. Приват можно накладывать и снимать с самого себя!

  • 🧑/приват Список участников в привате
  • 🔨/приват 🕒 👥 Отправить участников в приват, сообщения от них будут удаляться спустя указанный срок
  • 🔨/приват 👥 Снять приват с участников

Описания

Описание пользователя, если оно у него имеется, выводится в /кто.

  • 🔑/описание 👥 <текст> Задаёт описание
  • 🔑/описание 👥 Удаляет описание

Рейтинг

Рейтинг участника беседы на текущий момент состоит из количества отправленных сообщений и их среднего размера (в символах)

  • 🧑/рейтинг 🕒 👤 Рейтинг пользователя (по умолчанию, ваш) в беседе за указанное время (по умолчанию, за всё время). Показывает число написанных слов и дату первого сообщения
  • 🧑/рейтинги 🕒 Список пользователей с самым большим рейтингом в беседе за указанное время (по умолчанию, за всё время)

Макросы

Макросы — это пользовательские команды. Структура макросов описана здесь.

  • 🧑/макросы Список всех макросов
  • 🧑/макрос <название> Показать определение макроса
  • 👑/новыймакрос <название> <определение> Создать макрос
  • 🔑/удалимакрос <название> <определение> Удалить макрос

Событие — это макрос, который вызывается с правами того, кто его создал. Если создать макрос с нужным именем, то можно задавать свою реакцию на происходящее в беседе.

  • /заход <пригласивший> <приглашённый> Вызывается при приглашении нового пользователя в беседу

Макросы, доступные по умолчанию:

  • 🔑/заметка <имя> <текст> Создать команду с указанным именем, которая будет посылать указанный текст
  • 🔑/новыеправила <текст> Задать, что должен выдавать бот в /правила. Картинки и документы тоже допускаются
  • 🧑/правила Написать то, что было сохранено в /новыеправила
  • 🧑/алиас <имя алиаса> <имя команды> Создать команду, которая будет делать то же самое, что и указанная команда. Пример: /алиас к кто
  • 🔨/спам 👥 = /бан перм + /чистка 1д
  • 🔑/сохрзакреп <пересланное сообщение> Сохранить сообщение
  • 🔨/загрзакреп Закрепить сохранённое сообщение
  • 🧑/о <продолжение сообщения> Удалить текущее сообщение через 20с
  • 🧑/оф <продолжение сообщения> Удалить текущее сообщение через 1м
  • 🧑/офф <продолжение сообщения> Удалить текущее сообщение через 2м
  • 🧑/оффф <продолжение сообщения> Удалить текущее сообщение через 3м
  • 🔨 = /кик
  • 🔨 = /мут
  • 🔨 = /бан
  • 🔨 = /размут + /разбан
  • 🔑 = /чистка
  • 🔨 = /удали

Управление другими ботами

  • Приглашать и кикать ботов можно так же, как и пользователей
  • Ботам точно так же можно назначать роли и т. д.
  • Если модер приглашает бота, ему автоматически выдаётся право чтения переписки
  • 🔨/читать 👥 Выдать право чтения переписки
  • На сообщения от имени сообществ будет такая же реакция, что и на пользователей, то есть на эти сообщения может сработать /антимат, /вминуту, /антирейд и т.д.
  • На команды от имени сообщества будет ответ, только если сообщество имеет административную роль не ниже supermoderator

Серверы

Беседы можно объединять в серверы. В составе серверов, беседам присваиваются короткие имена (также известны как каналы; не путать с заголовком беседы), которые используются в командах.

  • 👑/сервер <имя-сервера> Создать новый сервер на базе текущей беседы. Имя сервера может содержать только буквы, цифры, дефисы и подчёркивания (но не пробелы), и иметь длину от 1 до 30 символов. Также имя сервера не может совпадать с именами уже созданных серверов. Новый сервер после создания будет состоять из одной беседы с именем main — текущей беседы
  • 👑/всервер <имя-сервера> <имя-канала> Присоединить беседу к существующему серверу, а также задать короткое имя беседы

После присоединения к серверу можно выполнять следующие команды:

  • 🧑/каналы Показывает название сервера и всех бесед. Текущая беседа помечена [*]
  • 👑/имяканала <новое-имя-канала> Изменить короткое имя текущей беседы
  • 👑/имясервера <новое-имя-сервера> Изменить название сервера
  • 👑/изсервера Отсоединить беседу от сервера

Основные функции серверов:

  • Сервер играет роль хранилища тегов, привязанных к пользователям. В разных серверах может быть разный набор тегов
  • 🧑/в <имя-канала> <команда> Выполнить команду в другой беседе сервера. Например, /в main кик https://vk.com/id1 кикнет пользователя из беседы с коротким именем main, но не из текущей беседы

Привязка акканутов CR и BS

Модераторы бесед могут привязать к любому пользователю ВК его аккаунты Clash Royale

  • 🔨/привязать <игра> #тег-игрока 👤 Привязать пользователю аккаунт CR или BS
  • 🔨/отвязать <игра> #тег-игрока 👤 Отвязать от пользователя аккаунт CR или BS
  • 🔨/отвязатьвсе 👤 Отвязать от пользователя все аккаунты

После этого можно будет легко смотреть, кто он такой, через другие команды.

  • 🧑🤖/кто 👤 Показать роли и краткое описание аккаунтов пользователя
  • 🧑🤖/теги 👤 Показать теги аккаунтов указанного пользователя
  • 🧑🤖/профили 👤 Показать подробную информацию по аккаунтам указанного пользователя
  • 🧑🤖/профиль <игра> #тег-игрока Показать аккаунт без привязки
  • 🧑🤖/кубки 👤 Показать количество трофеев на аккаунтах указанного пользователя
  • 🧑🤖/сундуки 👤 Показать будущие сундуки на аккаунтах CR указанного пользователя

Эти команды можно применять к самому себе, если не указывать пользователя.

Списки аккаунтов CR и BS

  • 🧑/всетеги Список всех аккаунтов всех участников беседы
  • 🧑/всекланы Список кланов, в которых состоят все участники беседы
  • 🧑/всекубки Список рекорда по кубкам всех участников беседы

Настройка беседы для CR и BS

  • 🔑/скрытьрояль Если включено, команды, связанные с CR, недоступны, и в /кто не отображаются профили CR
  • 👑/кланбеседы <игра> #тег-клана Задать клан беседы. Командам из раздела «Управление кланами CR» необязательно будет указывать клан
  • 👑/кланбеседы Убрать клан по умолчанию
  • 🔑/новостиклана Показывать предупреждение о полном клане и несоответствующем пороге для клана беседы

Подтверждение аккаунтов CR и BS

Пользователь может самостоятельно привязать и подтвердить себе аккаунт. Рядом с подтверждёнными аккаунтами в /кто отображается значок ✅.

  • 🤖/явладелец <игра> #тег-игрока Подтвердить ваше владение аккаунтом. Бот потребует создать с этого аккаунта клан со специальным названием и описанием. В CR эта операция стоит 1000 золота, в BS бесплатно. Внимание: после выполнения всех указаний нужно повторить команду!
  • 🤖/яневладелец <игра> #тег-игрока Отменить подтверждение аккаунта

Другие команды CR и BS

  • 🧑🤖/владелец <часть ника> Поиск пользователя ВК по привязанному к нему нику
  • 🧑🤖/колоды cr #тег-игрока Ссылки на колоды CR, которые игрок использовал в последнее время, вместе с описанием, против каких колод эта дека хороша и плоха
  • 🤖/война Помощь в выборе колоды для КВ

Управление кланами Clash Royale

  • 🧑🤖/клан <игра> #тег-клана Краткая сводка по клану
  • 🔨🤖/снимокклана <игра> #тег-клана Текущие кубки и донат всех игроков клана
  • 🔨🤖/историяклана <игра> #тег-клана <число недель> Кубки и донат всех игроков на момент нескольких недель назад. Чтобы включить запись истории вашего клана, напишите оператору бота
  • 🔨🤖/весьдонат <игра> #тег-клана Донат всех игроков клана на протяжении последних 6 недель. Слева новые недели, справа старые, текущей недели нет
  • 🧑🤖/донатеры <игра> #тег-клана Донат топ-10 игроков (по донату) на протяжении последних 6 недель. Слева новые недели, справа старые, текущей недели нет
  • 🧑🤖/недокубки <игра> #тег-клана Список участников клана (без стариков и соруков) с наименьшими кубками, которые не участвуют в КВ и которых можно сейчас кикать. Наверху списка кубки меньше, снизу больше
  • 🧑🤖/лузеры <игра> #тег-клана Список игроков клана с наименьшим процентом выигранных КВ в этом клане. Формат: [кубки] выиграно/всего
  • 🧑🤖/победители <игра> #тег-клана Список игроков клана с наибольшим процентом выигранных КВ в этом клане. Формат: [кубки] выиграно/всего
  • 🧑🤖/качклана <игра> #тег-клана Список игроков клана с худшей прокачкой для КВ. За карту 12+ уровня даётся 2 балла, за карту 11 уровня даётся 1 балл. Формат: ник [кубки] рейтинг
  • 🧑🤖/недокач <игра> #тег-клана Список 10 игроков клана с худшей прокачкой для КВ. За карту 12+ уровня даётся 2 балла, за карту 11 уровня даётся 1 балл. Формат: ник [кубки] рейтинг
  • 🧑🤖/историякв <дата день/месяц/год> <время часы/минуты> <игра> #тег-клана Снимок состояния КВ в клане на указанный момент времени. Чтобы включить запись истории вашего клана, напишите оператору бота
  • 🧑🤖/денькв <дней назад> <игра> #тег-клана Слава, набранная участниками клана за последний день, или, если указано число, то за день N дней назад

Если для беседы задан клан по умолчанию (/кланбеседы), то <игра> #тег-клана можно не указывать.

Для команд /историяклана, /донатеры, /весьдонат требуется история клана. Чтобы включить запись истории вашего клана, напишите в беседу «Поддержка Ботов».

Как сделать бота, чтобы он все чат-логи сервера кидал в беседу/группу и т.п. ВК? | BLASTHACK