Browse Source
Added a description of the structure of the JSON file used in the `time2word` script.master
2 changed files with 124 additions and 0 deletions
@ -0,0 +1,120 @@ |
|||
# Описание структуры JSON-файла для информатора времени |
|||
|
|||
Данный конфигурационный файл является универсальной языковой базой данных |
|||
для скрипта `time2word`. Архитектура файла спроектирована для динамического |
|||
вывода времени на основе четырёх различных триггеров и поддерживает систему |
|||
гибких текстовых подстановок. |
|||
|
|||
--- |
|||
|
|||
## 1. Текстовые подстановки (Метки) |
|||
Внутри текстовых строк используются специальные метки в фигурных скобках `{}`. |
|||
При выводе времени вместо них автоматически подставляются нужные слова, |
|||
сгенерированные скриптом с помощью библиотеки `num2words`: |
|||
* `{h_word}` — час текстом (например: *«три»*, *«десять»*). |
|||
* `{h_sfx}` — обозначение часа (*«час»*, *«часа»*, *«часов»*). |
|||
* `{m_word}` — минута текстом (например: *«одиннадцать»*, *«сорок»*). |
|||
* `{m_sfx}` — обозначение минуты (*«минута»*, *«минуты»*, *«минут»*). |
|||
* `{time_of_day}` — время суток (*«ночи»*, *«утра»*, *«дня»*, *«вечера»*). |
|||
|
|||
--- |
|||
|
|||
## 2. Минимальный пример структуры файла |
|||
```json |
|||
{ |
|||
"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). |
|||
* **Описание**: Общий набор универсальных фраз. Шаблоны из этого списка |
|||
используются в любое некруглое время, полностью заменяя собой почасовые |
|||
блоки. Каждая строка содержит одновременно метки и для часов, и для минут, |
|||
чтобы составить законченное предложение. |
|||
|
|||
Loading…
Reference in new issue