Skip to content
This repository has been archived by the owner on Feb 15, 2024. It is now read-only.
/ dsn Public archive

Telegram bot that provides handy utiltities for my college groupmates in our group chat

License

Notifications You must be signed in to change notification settings

d1snin/dsn

Repository files navigation

wakatime License Java CI with Gradle

dsn

Данный проект реализует достаточно примитивную логику и используется только в моих локальных кругах. Приложение запускается на серверной машине и использует Телеграм-бота для оповещения студентов моей группы о том, кто сегодня дежурит, так что мне не приходится лезть в журнал каждое божье утро.

Содержание

Фичи

  • Удобный UI/UX в виде Телеграм-бота. Доступ к мутирующим командам имеет только владелец группы.
  • Автоматическое оповещение о дежурных по cron-джобе. Cron-выражение настраивается. Возможность отключения оповещений присутствует.
  • Возможность переключить дежурных через команду.
  • Возможность просмотреть все дежурные пары и текущую пару.
  • Возможность запланировать дежурство текущей пары на следующую итерацию.

Конфигурация

Приложение конфигурируется через .env файл, который загружается в переменные среды.

Откройте .env.tmp и начните редактировать конфиг.

Доступны следующие переменные среды:

Переменная Описание
DSN__REDIS__ENDPOINT Адрес Redis-сервера вида <host>:<port>.
DSN__BOT__TOKEN Токен Telegram-бота.
DSN__BOT__USER_AUTHENTICATION_TOKEN Токен авторизации пользователя. Любой набор символов.
DSN__ANNOUNCING__CRON Cron-выражение по которому срабатывает джоба объявления новых дежурных.
DSN__DUTY_PAIRS Дежурные пары. Формат следующий: student_1,student_2;student_3,student_4

Сохраните файл как .env, отбросив окончание .tmp.

Запуск

Приложение запускается с использованием Docker Compose:

./gradlew installDist
docker-compose -f ./docker/docker-compose.yml up --build

Конфигурация располагается в директории ./docker

Использование

Команды бота имеют описание и интуитивно понятны. Приложение поддерживает только одну инициализированную чат-группу. Инициализировать можно только групповой чат. Привилегированным пользователем становится тот, кто инициализировал чат командой /init. Привилегированный пользователь вправе использовать мутирующие команды.

Поведение

Обратитесь к документу на английском языке: CODE_OF_CONDUCT.md

Лицензия

   Copyright 2022-2023 Mikhail Titov

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

About

Telegram bot that provides handy utiltities for my college groupmates in our group chat

Resources

License

Code of conduct

Stars

Watchers

Forks

Languages