mirror of
https://github.com/SeCherkasov/util-linux-cal.git
synced 2026-03-30 16:01:50 +03:00
3.2 KiB
3.2 KiB
Holiday Highlighter Plugin
Плагин для cal, добавляющий подсветку официальных праздников через API isdayoff.ru.
Возможности
- Автоматическое определение страны по системной локали
- Кэширование данных для уменьшения количества запросов к API
- Поддержка нескольких стран: Россия, Беларусь, Казахстан, США, Узбекистан, Турция, Латвия
- Данные о типах дней: рабочие, выходные, сокращённые, официальные праздники
Сборка
# Сборка всего workspace
cargo build --release --workspace
# Только плагин
cargo build --release -p holiday_highlighter
Установка
Локально для пользователя
mkdir -p ~/.local/lib/cal/plugins
cp target/release/libholiday_highlighter.so ~/.local/lib/cal/plugins/
Системно
sudo mkdir -p /usr/lib/cal/plugins
sudo cp target/release/libholiday_highlighter.so /usr/lib/cal/plugins/
Использование
# Подсветка праздников для текущей страны
cal -H
# Год с праздниками
cal -y -H
# Три месяца с праздниками
cal -3 -H
Поддерживаемые страны
| Код | Страна | Локали для автоопределения |
|---|---|---|
| RU | Россия | ru_RU, ru_BY, ru_KZ, ru_UZ, ru_LV |
| BY | Беларусь | be_BY, ru_BY |
| KZ | Казахстан | kk_KZ, ru_KZ |
| US | США | en_US, en |
| UZ | Узбекистан | uz_UZ, ru_UZ |
| TR | Турция | tr_TR |
| LV | Латвия | lv_LV, ru_LV |
API
Плагин использует isdayoff.ru API:
Запрос за месяц
GET https://isdayoff.ru/api/getdata?year=2026&month=01&pre=1
Запрос за год
GET https://isdayoff.ru/api/getdata?year=2026&pre=1
Параметр pre=1 включает информацию о предпраздничных сокращённых днях.
Формат данных
Каждый символ в ответе представляет день месяца:
| Символ | Тип дня | Описание |
|---|---|---|
0 |
Рабочий | Обычный рабочий день |
1 |
Выходной | Суббота или воскресенье |
2 |
Сокращённый | Предпраздничный день |
8 |
Праздник | Официальный государственный праздник |
Переменные окружения
| Переменная | Описание |
|---|---|
LC_ALL |
Приоритетная локаль для определения страны |
LC_TIME |
Локаль для определения страны |
LANG |
Резервная локаль для определения страны |