Skip to content

Latest commit

 

History

History
65 lines (55 loc) · 5.85 KB

File metadata and controls

65 lines (55 loc) · 5.85 KB

Обработчик классификаторов

В Melon встроен специальный интерпритатор правил обработки, позволяющий создавать правила редактирования и распределения классификаторов контента.

Типы классификаторов

Тип Описание
classificator Общий тип и название для всех остальных типов. Указывается, когда изначальная принадлежность неизвестна.
genre Показывает, к какой группе относится это произвдение в зависимости от тех или иных сюжетных и стилистических признаков.
franchise Линейка продукции: литературные произведения, фильмы, телепередачи, компьютерные игры и прочее, связанная персонажами, антуражем, зачастую торговой маркой и состоящая из оригинального произведения и его производных.
person Указывает на наличие конкретного персонажа в данном произведении.
tag Маркер или ключевое слово, позволяющее читателям быстро определить наличие в книги тех или иных элементов.

Все правила описываются в простом текстовом файле Configs/tagger.ini. Расширение *.ini используется для частичной синтаксической подсветки и фактически не привязывает содержимое к способам разметки конфигурационных файлов.

Интерпретация происходит сверху вниз построчно, при этом выделаются следующие понятия:

  1. Правило – строка, описывающая способ обработки классификатора. Всегда начинается с определения оного.
  2. Секция – группа правил, находящихся между объявлением секции (заключается в квадратные скобки) и другим объявлением либо концом файла. Любая секция имеет приоритет над правилами вне секций, потому при срабатывании правила в секции остальные проверки прерываются.
  3. Директива – определённый для секции или группы правил вне секций параметр, определяющий частично или полностью поведение операций. Всегда начинается с символа @.

Пример синтаксиса

# Классификатор "Исекай" привести к нижнему регистру и определить как жанр.
* "Исекай" -low -g
# Жанр "кровососы" переименовать и определить как тег.
genre "кровососы" rename "вампиры" -t

# Секция правил для определённого источника.
[site]
# Директива: приводить все классификаторы к нижнему регистру.
@LOW
# Удалить персонажа.
person "Василий" -del

Поддерживаемые директивы

Директива Описание
FRANCHISES Определяет следующие классификаторы как франшизы.
GENRES Определяет следующие классификаторы как жанры.
PERSONS Определяет следующие классификаторы как персонажей.
TAGS Определяет следующие классификаторы как теги.
LOW Приводить классификаторы к нижнему регистру.
UP Приводить классификаторы к верхнему регистру.
IGNORE Игнорировать правила.
DROP Сбрасывает все активные директивы.

При обработке каждого классификатора создаётся структура, которая после содержит следующие данные:

  1. Название классификатора.
  2. Тип классификатора.
  3. Состояние: требуется ли удалить классификатор.
  4. Состояние: было ли найдено правило для этого классификатора.

Пример данных

{
	"name": "название жанра",
	"type": "genre",
	"delete": false,
	"rule": true
}

При отсутствии изменений выводятся оригинальные данные. Все поля обязательно присутствуют в каждой структуре.

Дополнительные сведения об использовании обработчика классификаторов через CLI можно получить посредством команды melon help tagger.