Files

3.2 KiB
Raw Permalink Blame History

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 Резервная локаль для определения страны