Funny and useful scripts
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

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).
  • Описание: Общий набор универсальных фраз. Шаблоны из этого списка используются в любое некруглое время, полностью заменяя собой почасовые блоки. Каждая строка содержит одновременно метки и для часов, и для минут, чтобы составить законченное предложение.