Геймификация в чатах Телеграм (Игра на активность, Кармабот)

Бот предназначен для администрирования групп в Телеграм (аналог Кармабота)

Как настроить шаблон

Для начала установим шаблон из раздела "Шаблоны", где выберем тип шаблока "Геймификация в чатах Телеграм". Выберите лист конструктора, на который необходимо установить шаблон:

Общий вид шаблона в конструкторе выглядит следующим образом:

После установки шаблона в настройках проекта нужно ввести данные:

Константы проекта

no_authority - фразы, отправляемые при попытке использовать простым пользователем команд админа

add_for_thanks_user - сколько баллов начислять за Спасибо

add_for_thanks_admin - сколько баллов начислять за поощрение от админа

tg_owners_id - массив идентификаторов пользователей, которые будут иметь право добавлять админов

tg_stickers - массив идентификаторов стикеров, отправляемые при начислении баллов

tg_sticker_ban - массив идентификаторов стикеров, отправляемые при бане или штрафе

Общие переменные

tg_group_id - идентификатор группы, в которой работает бот

tg_admins - массив идентификаторов пользователей, которые будут иметь право использовать команды админа

tg_group_name - имя группы, которое заканчивается на bot

После первого начисления баллов, создается переменная tg_thanks_score_data, в которой сохраняются все пользователи и их баллы.

Пример: {"total_thanks":20,"326659632":{"name":"Constantin","user_name":"сonstantin","score":5},"403051597":{"name":"Timm","user_name":"dbeing","score":15,"banned":false}}

total_thanks - всего баллов у всех пользователей

Все тексты в поле Текст сообщения и фразы в поле Условие можно редактировать, под свои нужды.

Кроме блоков Назад и Вперед, в них поле Условие редактировать нельзя!

Команды админов

Все тексты и фразы, на которые будет реагировать бот, можно менять в соответствующих блоках.

Для использования команды нужно процитировать сообщение пользователя с указанным ключевым словом.

админ - команда суперадмина из переменной tg_owners_id, добавит цитируемого пользователя в массив админов tg_admins

бан - забанит пользователя и удалит из чата (дополнительно отправляется случайный стикер из переменной tg_sticker_ban в настройках проекта, можно удалить отправку в поле Калькулятор)

разбанить - разбанит пользователя, но в чат он автоматически не вернется

штраф - запрещает пользователю писать сообщения и совершать другие действия до истечения срока в минутах, по умолчанию 1440 - 24 часа

(дополнительно отправляется случайный стикер из переменной tg_sticker_ban в настройках проекта, можно удалить отправку в поле Калькулятор)

Как отправить стикер и где его добыть можно узнать ТУТ

минус 12 - отнимет указанное количество баллов, 12 - пример, у цитируемого пользователя

обнулить - сбросит на 0 баллы цитируемого пользователя

удалить - удалит цитируемое и своё сообщение

Реакции на фразы от пользователей

Рассмотрим блоки, которые отвечают за реакции на сообщения пользователей

Благодарочка - блок с фразами и сообщением, за которые начисляется количество баллов из переменной add_for_thanks_user цитируемому пользователя, по умолчанию за Спасибо

Без цитирования - если фразы из блока Благодарочка отправили без цитирования пользователя

без прав - случайная фраза из переменной no_authority при попытке не админом использовать команду админа

Сам себя - фраза при попытке процитировать свое сообщение и начислить баллы самому себе

Удаление по ключевику - удаляет сообщение, если в нем есть фраза (например, можно использовать для удаление нецензурных слов)

Реакция на сообщения в личку бота

Данные пользователя - выводит место и количество баллов пользователя

Рейтинг в боте - выводит сообщение с инлайн клавиатурой стрелками, для навигации по списку пользователей в рейтинге

Назад и Вперед - блоки отлавливают нажатие по кнопкам из сообщения со списком рейтинга, их фразы - Условия менять нельзя

Добавлен блок, который начисляет балл за ответ на сообщение без благодарности.

Использовать аккуратно.

Дополнительная функция

Функция tg_get_top(count=99999999, shift=0, humanize=False, delimiter=None)

На вход принимает следующие 4 параметра:

count - сколько пользователей вернуть,

shift - с какого места рейтинга сделать выборку (0 - список начинается с лидера и так по нисходящей по очкам, т.е. 3 - выборка будет с 4-го места в рейтинге и ниже),

humanize - 0 - вернет массив со словарями пользователей, 1 вернет список для вывода пользователю,

delimiter - это разделитель между именем пользователя и его результатом (если предыдущий параметр humanize=1).

Last updated