Многие из нас проводят время в профильных телеграм-группах. Власть над общением здесь принадлежит случайным людям со своими недостатками. Нередко встречаются конфликты и злоупотребления. Это побуждает задуматься, а можно ли поддерживать порядок иначе, так, чтобы не расцветал мошеннический спам и одновременно ни у кого не было абсолютной власти над адекватным собеседником?
И в моем случае эти размышления вылились в разработанную и протестированную систему которую уже сегодня можно подключить в ваш Telegram.
Прежде всего, нужно определить что является ключевым аспектом, валютой системы. Не карма и не баллы, не лайки и не рейтинг. Им стало само время. Что из этого следует?
У каждого пользователя копится время с момента написания первого сообщения.
Это аналог безусловного базового дохода. Минута за минутой, час за часом. Он необходим чтобы эмиссия системной валюты происходила без злоупотреблений, независимо от каких-либо центров управления.Абсолютно каждый может использовать часть накопленного времени, чтобы забанить другого пользователя в чате на это время.
Это электронный аналог второй поправки, необходимый для того чтобы власть не сосредоточилась в группе в одних руках.Каждый также может использовать накопленное время чтобы разбанить другого пользователя.
Обратимость бана защищает от злоупотреблений свободного оборота банхаммеров. Одновременно эта функция является обратным к эмисcии процессом. Время потраченное на выкуп из бана сгорает безвозвратно.Накопленное время можно передать другим людям, полностью или по частям.
Эта функция в перспективе обеспечивает подключенным группам свободный рынок обмена чем угодно.
Итак, как это работает в теории разобрались, а что необходимо для практического функционирования такой системы?
Простой способ подключения чата к системе.
- Реализована в виде ботаМаксимально удобный для Telegram команд UX
- Есть распознавание речи основанное на нормализованных семантических представлениях
Где примеры использования?
Бот понимает в запросах и русский и английский язык в свободной форме. Используются сокращения: d - дни, h - часы, m - минуты, s - секунды. Все уведомления публичны, но исчезают через 15 секунд, чтобы не засорять общий чат.
Довольно слов, покажите мне код!
Для бекенда использовался язык Kotlin + JVM, в качестве базы данных используется Redis-кластер. Весь код продокументирован и доступен на GitHub: demidko/timecobot
Чтобы начать использовать бота в вашей телеграм-группе просто добавьте его с правами администратора: @timecobot
Напишите пожалуйста свое мнение в комментариях, нужное ли это для сообщества дело и стоит ли развивать систему дальше? Что можно улучшить или поменять? Интересна ли подробная статья с кодом на тему как это реализовано внутри?
Всем удачного дня!
Коментарии на Hacker News