/* This file is part of »munin«. Copyright 2025 'Fenris Wolf' »munin« is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. »munin« is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with »munin«. If not, see . */ namespace _munin.targets.telegram_bot { /** */ export type type_parameters = { bot_token : string; chat_id : int; reminders : Array; }; /** */ async function send( parameters : type_parameters, labels : _munin.type_labels, event : _munin.type_event ) : Promise { await lib_plankton.telegram.bot_call_send_message( parameters.bot_token, parameters.chat_id, lib_plankton.string.coin( "*{{head}}*\n\n\{{title_label}} | {{title_value}}\n{{time_label}} | {{time_value}}{{macro_location}}", { "head": labels.head, "title_label": labels.title.toUpperCase(), "title_value": event.title, "time_label": labels.time.toUpperCase(), "time_value": lib_plankton.pit.timespan_format(event.begin, event.end), "macro_location": ( (event.location === null) ? "" : lib_plankton.string.coin( "\n{{location_label}} | {{location_value}}", { "location_label": labels.location.toUpperCase(), "location_value": event.location, } ) ), } ), { "parse_mode": "markdown", } ); } /** */ export function implementation_target( parameters : type_parameters ) : _munin.type_target { return { "reminders": parameters.reminders, "show": () => lib_plankton.string.coin( "telegram:{{chat_id}}", { "chat_id": parameters.chat_id.toFixed(0), } ), "send": (labels, event) => send(parameters, labels, event), }; } }