7.1 KiB
Описание структуры JSON-файла для информатора времени
Данный конфигурационный файл является универсальной языковой базой данных
для скрипта time2word. Архитектура файла спроектирована для динамического
вывода времени на основе четырёх различных триггеров и поддерживает систему
гибких текстовых подстановок.
1. Текстовые подстановки (Метки)
Внутри текстовых строк используются специальные метки в фигурных скобках {}.
При выводе времени вместо них автоматически подставляются нужные слова,
сгенерированные скриптом с помощью библиотеки num2words:
{h_word}— час текстом (например: «три», «десять»).{h_sfx}— обозначение часа («час», «часа», «часов»).{m_word}— минута текстом (например: «одиннадцать», «сорок»).{m_sfx}— обозначение минуты («минута», «минуты», «минут»).{time_of_day}— время суток («ночи», «утра», «дня», «вечера»).
2. Минимальный пример структуры файла
{
"midnight_phrases": [
"Полночь. Начинаются новые сутки."
],
"noon_phrases": [
"На часах полдень. Середина дня."
],
"hour_templates_by_period": {
"night": [
["Наступил первый час ночи. На приборах уже {h_word} {h_sfx}."],
["На курантах уже {h_word} {h_sfx} {time_of_day}."],
["Время {h_word} {h_sfx} {time_of_day}."],
["На часах {h_word} {h_sfx} {time_of_day}."],
["Уже {h_word} {h_sfx} {time_of_day}."]
],
"morning": [
["Шесть утра, подъем! На часах уже {h_word} {h_sfx}."],
["На курантах уже {h_word} {h_sfx} {time_of_day}."],
["Время {h_word} {h_sfx} {time_of_day}."],
["На часах {h_word} {h_sfx} {time_of_day}."],
["Уже {h_word} {h_sfx} {time_of_day}."],
["Стрелки показывают ровно {h_word} {h_sfx} {time_of_day}."]
],
"day": [
["Первый час после полудня. На часах уже {h_word} {h_sfx}."],
["На курантах уже {h_word} {h_sfx} {time_of_day}."],
["Время {h_word} {h_sfx} {time_of_day}."],
["На часах {h_word} {h_sfx} {time_of_day}."],
["Уже {h_word} {h_sfx} {time_of_day}."]
],
"evening": [
["День окончен, на курантах уже {h_word} {h_sfx}."],
["На курантах уже {h_word} {h_sfx} {time_of_day}."],
["Время {h_word} {h_sfx} {time_of_day}."],
["На часах {h_word} {h_sfx} {time_of_day}."],
["Уже {h_word} {h_sfx} {time_of_day}."],
["Стрелки показывают ровно {h_word} {h_sfx} {time_of_day}."]
]
},
"minute_phrases": [
"Точное время: {h_word} {h_sfx} {time_of_day} и {m_word} {m_sfx}."
]
}
3. Назначение ключей и привязка к сетке времени
Файл разделен на четыре основных блока в зависимости от того, какое время сейчас на часах.
Количество фраз внутри любого конечного списка не ограничено (одна-две штуки в примере — лишь демонстрационный вариант, списки можно расширять до любого объема).
midnight_phrases (Полночь)
- Время: Ровно 00:00.
- Описание: Набор готовых фраз для объявления начала новых суток.
noon_phrases (Полдень)
- Время: Ровно 12:00.
- Описание: Набор готовых фраз для объявления середины дня.
hour_templates_by_period (Почасовые блоки для ровного времени)
- Время: Начало любого часа, когда на часах ровно 00 минут (за исключением 00:00 и 12:00).
- Описание: Содержит четыре списка, разбитых по временам суток. Внутри каждого списка лежат отдельные вложенные списки с фразами для каждого конкретного часа.
Важное замечание к контенту: Каждый вложенный список жестко привязан к хронологическому порядку. При написании сложных сюжетных и ролевых реплик (например, для роли радиоведущего) продолжение фразы и контекст должны соответствовать логике именно этого часа (не стоит использовать контекст раннего утра для списков позднего утра).
night(Ночь) — включает в себя 5 последовательных списков фраз:- 1-й список: для 01:00
- 2-й список: для 02:00
- 3-й список: для 03:00
- 4-й список: для 04:00
- 5-й список: для 05:00
morning(Утро) — включает в себя 6 последовательных списков фраз:- списки для каждого часа отдельно с 06:00 до 11:00
day(День) — включает в себя 5 последовательных списков фраз:- списки для каждого часа отдельно с 13:00 до 17:00
evening(Вечер) — включает в себя 6 последовательных списков фраз:- списки для каждого часа отдельно с 18:00 до 23:00
minute_phrases (Фразы для некруглого времени)
- Время: Любая минута от 01 до 59 (например: 15:11, 08:45, 23:02).
- Описание: Общий набор универсальных фраз. Шаблоны из этого списка используются в любое некруглое время, полностью заменяя собой почасовые блоки. Каждая строка содержит одновременно метки и для часов, и для минут, чтобы составить законченное предложение.