2026-03-14 22:51:43 +03:00
2026-03-14 22:51:43 +03:00
2026-03-14 22:51:43 +03:00
2026-03-14 22:51:43 +03:00
2026-03-14 22:51:43 +03:00
2026-03-14 22:51:43 +03:00
2026-03-14 22:51:43 +03:00
2026-03-14 22:51:43 +03:00

tg-holy-bot

Телеграммный бот для канала с праздниками. Раз в сутки забирает список праздников с к сайта celebratoday.com и показывает его на канальчике в телеграме.

Как это собрать?

Понадобится компилятор go версии 1.25.3 или более новый.

Сам процесс сборки простой, достаточно запустить make или gmake, в зависимости от платформы:

make

и через некоторое время мы получаем бинарник tg-holy-bot. Это и есть наше приложение.

Как это запустить?

Приложение тестировалось на alpine linux x86_64 3.16, но должно работать на любом (более свежем) linux-е.

Предполагается, что конфиг написан в формате human json, который допускает коментарии и некоторые другие вольности в форматировании json-а. Конфиг ищется последовательно по следующим путям по принципу "кто первый того и тапки":

~/.tg-holy-bot.json
/etc/tg-holy-bot.json
data/config.json

В каталоге contrib находится скрипт для alpine linux, системы инициализации openrc. Этот скрипт достаточно положить в /etc/init.d/tg-holy-bot. После чего скопировать бинарник в каталог /var/lib/tg-holy-bot, положить конфиг в одну из дефолтных локаций (тестировалась /var/lib/tg-holy-bot/data/config.json) и после этого сервис запускается командой:

service tg-holy-bot start

В автозагрузку его можно прописать через команду:

rc-update add tg-holy-bot default

Nota Bene

Go не поддерживает системный вызов fork() из-за чего демонизация программ на гошке средствами самой гошки - это в некотором роде проблема. Решается она с помощью утилиты daemonize.

Соответствено, если для запуска этой программы предполагается использовать возможности демонизации, то можно воспользоваться этой программой.

В alpine linux есть средства openrc для супервайзинга foreground-сервисов.

Description
Telegram bot for holiday announcement channel
Readme 318 KiB
Languages
Go 88.6%
Makefile 9.3%
Shell 2.1%