/Muur

Muur bot for telegtram

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Muur

Muur bot for telegtram

Бот для Телеграма, реализация на основе Telebot

-= ОСТОРОЖНО, ГОВНОКОД! =-

На текущий момент умеет:

  • считать рейтинг в печеньках
    • поднимает на то количество, сколько плюсов поставлено
    • минусить можно только по одному за раз
    • помимо "+" поднимает рейтинг на "Спасибо", "Круто"
    • узнать свой рейтинг можно командой "/rating", чужой - запросив "/rating" в ответ на чужое сообщение
  • выкладывать по запросу гифки с GIPHY
    • команды по умолчанию: '!гифка', '!гиф', '!gif', '!gifka', 'gifka', 'gif', 'гифка', 'гиф'
      Пример: !гифка boobs
      если запроса после команды нет, отправляет рандомную гифку с котиком
  • говорить в третьем лице
    • команда "/me". Пример: "/me охреневает от происходящего" - будет заменено на сообщение от бота "Бармаглот охреневает от происходящего", оригинальное сообщение стирает
  • срабатывать на заданные в файлах json триггеры, в частности:
    • обниматься на триггер "обнять" в ответ на чужое сообщение
    • выдавать фразы в тему на "люди дебилы\долбо@бы\мудаки"
    • выдавать фразы на "деньги"
    • выдавать куки монстра на фразы с печеньками
    • выдавать кумамона на "слава сотоне"
    • выдавать всратого кота на "ЪУЪ"
    • играть в русскую рулетку на команду "револьвер" (хотя не все пистолеты там - револьверы, но каждый представленных по-своему уникален!)
    • выдавать рандомные фразы для общего поддержания штанов диалога
    • выдавать фидбэк на слово "тест"

      Подробнее триггеры можно посмотреть в самих файлах JSON

В планах:

  • переделать формат объектов json в более понятный
  • добавить больше возможностей для триггеров
  • вычистить код
  • исправить запросы к GIPHY на русском языке (в наст. момент там тупо прикручен гуглопереводчик, поэтому случаются казусы, например "усы" гугл упорно переводит как "poison")
  • прикрутить RuGPT2/3
  • больше стандартных триггеров

По форматированию JSONов: ( * - пока не реализовано)

IsReply:

  • 1 - отвечать только на реплай
  • 2 - отвечать и просто на сообщение, и на реплай

CaseDep

  • 1 - регистрозависимо, во всех остальных случаях - нет

IsReg:

  • 1 - если сообщение содержит искомый текст
  • 2 - если сообщение начинается с искомого текста *
  • 3 - если сообщение заканчивается на искомый текст *
  • 4 - регэксп *

Type:

  • 1 - Or (рандомный выбор)
  • 2 - And * (в принципе, сейчас это можно сделать через Next (см. ниже)

Next:

  • 'текст' - текст для следующего триггера, обрабатываемого отдельным файлом json
    HINT: лучше использовать какой-то специфический триггер, чтобы не не было случайных срабатываний. Плохой пример: "привет". Хороший пример: "!привет_"

Answers:

  • answ_poss: 0-100 - вероятность ответа на сообщение (никак не связано с вероятностью выбора варианта ответа, там тупой рандом)
  • answ_text: текст ответа
  • isit_pic: 1 - картинка, 2 - gif или видео
  • answ_pic_aft_text: картинка после текста ответа
  • answ_pic_bef_text: картинка до текста ответа *

Формат файла рейтингов:

Ratings, в нём объекты, для каждого из которых:

  • id - идетнтификатор пользователя,
  • rating - рейтинг