110 lines
3.9 KiB
C#
110 lines
3.9 KiB
C#
using System.ComponentModel;
|
|
using System.Reflection;
|
|
|
|
namespace Pf2e.Scrapper.Processors.Attributes;
|
|
|
|
/// <summary>
|
|
/// Перечисление для групп обработчиков.
|
|
/// </summary>
|
|
public enum ProcessorGroupEnum
|
|
{
|
|
/// <summary>
|
|
/// Общий обработчик.
|
|
/// </summary>
|
|
[Description("Общие процессоры")]
|
|
General,
|
|
|
|
/// <summary>
|
|
/// Обработчик для подготовки данных с сайта <see href="https://aonprd.com/">Archives of Nethys Pathfinder 2e</see>.
|
|
/// </summary>
|
|
[Description("Архивы Нефиса: Подготовка")]
|
|
AonprdPreparation,
|
|
|
|
/// <summary>
|
|
/// Обработчик основных сущностей с сайта <see href="https://aonprd.com/">Archives of Nethys Pathfinder 2e</see>.
|
|
/// </summary>
|
|
[Description("Архивы Нефиса: Основные сущности")]
|
|
AonprdEntities,
|
|
|
|
/// <summary>
|
|
/// Обработчик подклассов с сайта <see href="https://aonprd.com/">Archives of Nethys Pathfinder 2e</see>.
|
|
/// </summary>
|
|
[Description("Архивы Нефиса: Подклассы")]
|
|
AonprdSubclasses,
|
|
|
|
/// <summary>
|
|
/// Обработчик для завершения обработки данных с сайта <see href="https://aonprd.com/">Archives of Nethys Pathfinder 2e</see>.
|
|
/// </summary>
|
|
[Description("Архивы Нефиса: Завершение")]
|
|
AonprdFinalization,
|
|
|
|
/// <summary>
|
|
/// Обработчик для подготовки данных из модуля <see href="https://github.com/foundryvtt/pf2e">pf2e</see> для FoundryVTT.
|
|
/// </summary>
|
|
[Description("Foundry EN: Подготовка")]
|
|
FoundryEnPreparation,
|
|
|
|
/// <summary>
|
|
/// Обработчик основных сущностей из модуля <see href="https://github.com/foundryvtt/pf2e">pf2e</see> для FoundryVTT.
|
|
/// </summary>
|
|
[Description("Foundry EN: Основные сущности")]
|
|
FoundryEnEntities,
|
|
}
|
|
|
|
/// <summary>
|
|
/// Перечисление для типов компендиумов обработчиков.
|
|
/// </summary>
|
|
public enum ProcessorCompendiumEnum
|
|
{
|
|
/// <summary>
|
|
/// Компедиум Архивов Нефиса.
|
|
/// </summary>
|
|
Aonprd,
|
|
|
|
/// <summary>
|
|
/// Компедиум Foundry EN.
|
|
/// </summary>
|
|
FoundryEn,
|
|
}
|
|
|
|
/// <summary>
|
|
/// Перечисление для типов фабрик обработчиков.
|
|
/// </summary>
|
|
public enum ProcessorFactoryTypeEnum
|
|
{
|
|
/// <summary>
|
|
/// Простая фабрика одиночного обработчика.
|
|
/// </summary>
|
|
Simple,
|
|
|
|
/// <summary>
|
|
/// Фабрика для создания обработчиков, которые могут обрабатывать типы данных компедиума.
|
|
/// </summary>
|
|
Compendium,
|
|
|
|
/// <summary>
|
|
/// Фабрика для создания обработчиков, которые могут обрабатывать итераторы данных.
|
|
/// </summary>
|
|
Iterator,
|
|
}
|
|
|
|
/// <summary>
|
|
/// Расширение для перечисления <see cref="ProcessorGroupEnum"/>.
|
|
/// </summary>
|
|
public static class ProcessorGroupEnumExtension
|
|
{
|
|
/// <summary>
|
|
/// Получает описание группы обработчика из атрибута <see cref="DescriptionAttribute"/>.
|
|
/// </summary>
|
|
/// <param name="group">Перечисление группы обработчика.</param>
|
|
/// <returns>Строка с описанием группы обработчика.</returns>
|
|
public static string GetDescription(this ProcessorGroupEnum group)
|
|
{
|
|
return group
|
|
.GetType()
|
|
.GetField(group.ToString())
|
|
?.GetCustomAttribute<DescriptionAttribute>()
|
|
?.Description ?? group.ToString();
|
|
}
|
|
}
|