Геймификация в чатах Телеграм (Игра на активность, Кармабот)
Бот предназначен для администрирования групп в Телеграм (аналог Кармабота)
Last updated
Бот предназначен для администрирования групп в Телеграм (аналог Кармабота)
Last updated
Для начала установим шаблон из раздела "Шаблоны", где выберем тип шаблока "Геймификация в чатах Телеграм". Выберите лист конструктора, на который необходимо установить шаблон:
Общий вид шаблона в конструкторе выглядит следующим образом:
После установки шаблона в настройках проекта нужно ввести данные:
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).