[add] conf:v7 [mod] custom strings
This commit is contained in:
parent
49b8b4189e
commit
eddae51d27
238
source/conf.ts
238
source/conf.ts
|
@ -352,6 +352,7 @@ namespace _munin.conf
|
||||||
* in hours
|
* in hours
|
||||||
*/
|
*/
|
||||||
reminders : Array<type_reminder_raw>;
|
reminders : Array<type_reminder_raw>;
|
||||||
|
language : string;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
|
||||||
|
@ -365,6 +366,7 @@ namespace _munin.conf
|
||||||
* in hours
|
* in hours
|
||||||
*/
|
*/
|
||||||
reminders : Array<type_reminder_raw>;
|
reminders : Array<type_reminder_raw>;
|
||||||
|
language : string;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@ -377,7 +379,73 @@ namespace _munin.conf
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
export type type_conf = type_conf_v6;
|
type type_conf_v7 = {
|
||||||
|
sources : Array<
|
||||||
|
(
|
||||||
|
{
|
||||||
|
kind : "ical_feed";
|
||||||
|
data : {
|
||||||
|
url : string;
|
||||||
|
filtration : {
|
||||||
|
category_whitelist : (null | Array<string>);
|
||||||
|
category_blacklist : (null | Array<string>);
|
||||||
|
title_whitelist : (null | Array<string>);
|
||||||
|
title_blacklist : (null | Array<string>);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
>;
|
||||||
|
targets : Array<
|
||||||
|
(
|
||||||
|
{
|
||||||
|
kind : "email";
|
||||||
|
data : {
|
||||||
|
smtp_host : string;
|
||||||
|
smtp_port : int;
|
||||||
|
smtp_username : string;
|
||||||
|
smtp_password : string;
|
||||||
|
sender : string;
|
||||||
|
receivers : Array<string>;
|
||||||
|
hide_tags : boolean;
|
||||||
|
/**
|
||||||
|
* in hours
|
||||||
|
*/
|
||||||
|
reminders : Array<type_reminder_raw>;
|
||||||
|
language : string;
|
||||||
|
strings : {
|
||||||
|
notification_head : string;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
{
|
||||||
|
kind : "telegram_bot";
|
||||||
|
data : {
|
||||||
|
bot_token : string;
|
||||||
|
chat_id : int;
|
||||||
|
hide_tags : boolean;
|
||||||
|
/**
|
||||||
|
* in hours
|
||||||
|
*/
|
||||||
|
reminders : Array<type_reminder_raw>;
|
||||||
|
language : string;
|
||||||
|
strings : {
|
||||||
|
notification_head : string;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
>;
|
||||||
|
settings : {
|
||||||
|
interval : float;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
export type type_conf = type_conf_v7;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -609,12 +677,118 @@ namespace _munin.conf
|
||||||
);
|
);
|
||||||
return {
|
return {
|
||||||
"sources": conf_v5.sources,
|
"sources": conf_v5.sources,
|
||||||
"targets": conf_v5.targets,
|
"targets": (
|
||||||
|
conf_v5.targets
|
||||||
|
.map(
|
||||||
|
target => {
|
||||||
|
switch (target.kind) {
|
||||||
|
case "email": {
|
||||||
|
return {
|
||||||
|
"kind": "email",
|
||||||
|
"data": {
|
||||||
|
"smtp_host": target.data.smtp_host,
|
||||||
|
"smtp_port": target.data.smtp_port,
|
||||||
|
"smtp_username": target.data.smtp_username,
|
||||||
|
"smtp_password": target.data.smtp_password,
|
||||||
|
"sender": target.data.sender,
|
||||||
|
"receivers": target.data.receivers,
|
||||||
|
"hide_tags": target.data.hide_tags,
|
||||||
|
"reminders": target.data.reminders,
|
||||||
|
"language": "deu",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "telegram_bot": {
|
||||||
|
return {
|
||||||
|
"kind": "telegram_bot",
|
||||||
|
"data": {
|
||||||
|
"bot_token": target.data.bot_token,
|
||||||
|
"chat_id": target.data.chat_id,
|
||||||
|
"hide_tags": target.data.hide_tags,
|
||||||
|
"reminders": target.data.reminders,
|
||||||
|
"language": "deu",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
// return target;
|
||||||
|
throw (new Error("unhandled target kind: " + String(target)));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
),
|
||||||
"settings": conf_v5.settings,
|
"settings": conf_v5.settings,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
function convert_from_v6(
|
||||||
|
conf_v6 : type_conf_v6
|
||||||
|
) : type_conf_v7
|
||||||
|
{
|
||||||
|
return {
|
||||||
|
"sources": conf_v6.sources,
|
||||||
|
"targets": (
|
||||||
|
conf_v6.targets
|
||||||
|
.map(
|
||||||
|
target => {
|
||||||
|
switch (target.kind) {
|
||||||
|
case "email": {
|
||||||
|
return {
|
||||||
|
"kind": "email",
|
||||||
|
"data": {
|
||||||
|
"smtp_host": target.data.smtp_host,
|
||||||
|
"smtp_port": target.data.smtp_port,
|
||||||
|
"smtp_username": target.data.smtp_username,
|
||||||
|
"smtp_password": target.data.smtp_password,
|
||||||
|
"sender": target.data.sender,
|
||||||
|
"receivers": target.data.receivers,
|
||||||
|
"hide_tags": target.data.hide_tags,
|
||||||
|
"reminders": target.data.reminders,
|
||||||
|
"language": target.data.language,
|
||||||
|
"strings": {
|
||||||
|
"notification_head": "{{core}}{{extra}}",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "telegram_bot": {
|
||||||
|
return {
|
||||||
|
"kind": "telegram_bot",
|
||||||
|
"data": {
|
||||||
|
"bot_token": target.data.bot_token,
|
||||||
|
"chat_id": target.data.chat_id,
|
||||||
|
"hide_tags": target.data.hide_tags,
|
||||||
|
"reminders": target.data.reminders,
|
||||||
|
"language": target.data.language,
|
||||||
|
"strings": {
|
||||||
|
"notification_head": "{{core}}{{extra}}",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
// return target;
|
||||||
|
throw (new Error("unhandled target kind: " + String(target)));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
),
|
||||||
|
"settings": conf_v6.settings,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
function schema_source_kalender_digital(
|
function schema_source_kalender_digital(
|
||||||
|
@ -959,6 +1133,21 @@ namespace _munin.conf
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"default": "deu"
|
"default": "deu"
|
||||||
},
|
},
|
||||||
|
"strings": {
|
||||||
|
"nullable": false,
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"notification_head": {
|
||||||
|
"nullable": false,
|
||||||
|
"type": "string",
|
||||||
|
"default": "[{{core}}] {{extra}}"
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"additionalProperties": false,
|
||||||
|
"required": [
|
||||||
|
],
|
||||||
|
"default": {},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
"additionalProperties": false,
|
"additionalProperties": false,
|
||||||
"required": [
|
"required": [
|
||||||
|
@ -1022,6 +1211,21 @@ namespace _munin.conf
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"default": "deu"
|
"default": "deu"
|
||||||
},
|
},
|
||||||
|
"strings": {
|
||||||
|
"nullable": false,
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"notification_head": {
|
||||||
|
"nullable": false,
|
||||||
|
"type": "string",
|
||||||
|
"default": "{{core}}{{extra}}"
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"additionalProperties": false,
|
||||||
|
"required": [
|
||||||
|
],
|
||||||
|
"default": {},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
"additionalProperties": false,
|
"additionalProperties": false,
|
||||||
"required": [
|
"required": [
|
||||||
|
@ -1147,7 +1351,7 @@ namespace _munin.conf
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
export function schema(
|
export function schema(
|
||||||
version : string = "6"
|
version : string = "7"
|
||||||
) : lib_plankton.conf.type_schema
|
) : lib_plankton.conf.type_schema
|
||||||
{
|
{
|
||||||
switch (version) {
|
switch (version) {
|
||||||
|
@ -1173,7 +1377,10 @@ namespace _munin.conf
|
||||||
};
|
};
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
case "2":
|
||||||
|
case "3":
|
||||||
|
case "4":
|
||||||
|
case "5":
|
||||||
{
|
{
|
||||||
return {
|
return {
|
||||||
"nullable": false,
|
"nullable": false,
|
||||||
|
@ -1192,6 +1399,24 @@ namespace _munin.conf
|
||||||
};
|
};
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
return {
|
||||||
|
"nullable": false,
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"sources": schema_sources(version),
|
||||||
|
"targets": schema_targets(version),
|
||||||
|
"settings": schema_settings(version),
|
||||||
|
},
|
||||||
|
"additionalProperties": false,
|
||||||
|
"required": [
|
||||||
|
"sources",
|
||||||
|
"targets",
|
||||||
|
],
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1211,7 +1436,8 @@ namespace _munin.conf
|
||||||
"3": {"target": "4", "function": convert_from_v3},
|
"3": {"target": "4", "function": convert_from_v3},
|
||||||
"4": {"target": "5", "function": convert_from_v4},
|
"4": {"target": "5", "function": convert_from_v4},
|
||||||
"5": {"target": "6", "function": convert_from_v5},
|
"5": {"target": "6", "function": convert_from_v5},
|
||||||
"6": null,
|
"6": {"target": "7", "function": convert_from_v6},
|
||||||
|
"7": null,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -1249,7 +1475,7 @@ namespace _munin.conf
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
return (conf_raw.content as type_conf_v6);
|
return (conf_raw.content as type_conf_v7);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,9 @@ namespace _munin.targets.email
|
||||||
hide_tags : boolean;
|
hide_tags : boolean;
|
||||||
reminders : Array<_munin.type_reminder>;
|
reminders : Array<_munin.type_reminder>;
|
||||||
language : string;
|
language : string;
|
||||||
|
strings : {
|
||||||
|
notification_head : string;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -165,17 +168,22 @@ namespace _munin.targets.email
|
||||||
summarize_event(parameters, events[0])
|
summarize_event(parameters, events[0])
|
||||||
:
|
:
|
||||||
lib_plankton.string.coin(
|
lib_plankton.string.coin(
|
||||||
"[{{head}}] {{count}} {{events}}",
|
parameters.strings.notification_head,
|
||||||
{
|
{
|
||||||
"head": lib_plankton.string.coin(
|
"core": lib_plankton.string.coin(
|
||||||
"{{event}}-{{reminder}}",
|
"{{event}}-{{reminder}}",
|
||||||
{
|
{
|
||||||
"event": get_translation(parameters, "core.event.event").toLowerCase(),
|
"event": get_translation(parameters, "core.event.event").toLowerCase(),
|
||||||
"reminder": get_translation(parameters, "core.reminder.reminder").toLowerCase(),
|
"reminder": get_translation(parameters, "core.reminder.reminder").toLowerCase(),
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
"count": events.length.toFixed(0),
|
"extra": lib_plankton.string.coin(
|
||||||
"events": get_translation(parameters, "core.event.events"),
|
"{{count}} {{events}}",
|
||||||
|
{
|
||||||
|
"count": events.length.toFixed(0),
|
||||||
|
"events": get_translation(parameters, "core.event.events"),
|
||||||
|
}
|
||||||
|
),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|
|
@ -29,6 +29,9 @@ namespace _munin.targets.telegram_bot
|
||||||
hide_tags : boolean;
|
hide_tags : boolean;
|
||||||
reminders : Array<_munin.type_reminder>;
|
reminders : Array<_munin.type_reminder>;
|
||||||
language : string;
|
language : string;
|
||||||
|
strings : {
|
||||||
|
notification_head : string;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -116,29 +119,34 @@ namespace _munin.targets.telegram_bot
|
||||||
parameters.bot_token,
|
parameters.bot_token,
|
||||||
parameters.chat_id,
|
parameters.chat_id,
|
||||||
lib_plankton.string.coin(
|
lib_plankton.string.coin(
|
||||||
"*{{head_core}}{{head_extra}}*\n\n{{events}}",
|
"*{{head}}*\n\n{{body}}",
|
||||||
{
|
{
|
||||||
"head_core": lib_plankton.string.coin(
|
"head": lib_plankton.string.coin(
|
||||||
"{{event}}-{{reminder}}",
|
parameters.strings.notification_head,
|
||||||
{
|
{
|
||||||
"event": lib_plankton.string.capitalize(get_translation(parameters, "core.event.event")),
|
"core": lib_plankton.string.coin(
|
||||||
"reminder": lib_plankton.string.capitalize(get_translation(parameters, "core.reminder.reminder")),
|
"{{label_event}}-{{label_reminder}}",
|
||||||
|
{
|
||||||
|
"label_event": lib_plankton.string.capitalize(get_translation(parameters, "core.event.event")),
|
||||||
|
"label_reminder": lib_plankton.string.capitalize(get_translation(parameters, "core.reminder.reminder")),
|
||||||
|
}
|
||||||
|
),
|
||||||
|
"extra": (
|
||||||
|
(events.length <= 1)
|
||||||
|
?
|
||||||
|
""
|
||||||
|
:
|
||||||
|
lib_plankton.string.coin(
|
||||||
|
" ({{count}} {{events}})",
|
||||||
|
{
|
||||||
|
"count": events.length.toFixed(0),
|
||||||
|
"events": get_translation(parameters, "core.event.events"),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
),
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
"head_extra": (
|
"body": (
|
||||||
(events.length <= 1)
|
|
||||||
?
|
|
||||||
""
|
|
||||||
:
|
|
||||||
lib_plankton.string.coin(
|
|
||||||
" ({{count}} {{events}})",
|
|
||||||
{
|
|
||||||
"count": events.length.toFixed(0),
|
|
||||||
"events": get_translation(parameters, "core.event.events"),
|
|
||||||
}
|
|
||||||
)
|
|
||||||
),
|
|
||||||
"events": (
|
|
||||||
events
|
events
|
||||||
.map(event => render_event(parameters, event))
|
.map(event => render_event(parameters, event))
|
||||||
.join("\n\n--------\n\n")
|
.join("\n\n--------\n\n")
|
||||||
|
|
Loading…
Reference in a new issue