From 566018e71c831fef32f20343079d4b76b8266b83 Mon Sep 17 00:00:00 2001 From: fenopy Date: Wed, 3 Jun 2026 07:11:49 -0500 Subject: [PATCH] feat: add "start" notification --- kobrax_moonraker_bridge.py | 6 ++++-- web/themes/default/app.js | 4 ++-- web/translations/de.json | 5 +++-- web/translations/en.json | 5 +++-- web/translations/es.json | 5 +++-- web/translations/zh-cn.json | 5 +++-- 6 files changed, 18 insertions(+), 12 deletions(-) diff --git a/kobrax_moonraker_bridge.py b/kobrax_moonraker_bridge.py index 8874a3c..0d0de14 100644 --- a/kobrax_moonraker_bridge.py +++ b/kobrax_moonraker_bridge.py @@ -988,7 +988,9 @@ class KobraXBridge: # Benachrichtigungen bei Statuswechsel (filename vor Cleanup holen) if kobra_state and kobra_state != self._prev_kobra_state: _notif_filename = d.get("filename", self._state.get("filename", "")) - if kobra_state == "finished": + if kobra_state == "printing": + self._notify("started", _notif_filename) + elif kobra_state == "finished": self._notify("finished", _notif_filename) elif kobra_state == "failed": self._notify("failed", _notif_filename) @@ -3841,7 +3843,7 @@ class KobraXBridge: cfg.remove_section("notifications") incoming_notifs = data.get("notifications") if isinstance(incoming_notifs, list): - valid_events = {"finished", "failed", "cancelled", "paused"} + valid_events = {"started", "finished", "failed", "cancelled", "paused"} entries = [] for entry in incoming_notifs: if not isinstance(entry, dict): diff --git a/web/themes/default/app.js b/web/themes/default/app.js index cf03d31..cc8af9b 100644 --- a/web/themes/default/app.js +++ b/web/themes/default/app.js @@ -312,7 +312,7 @@ function applyLang(){ setText('modal-sec-print',T.settings_print); setText('modal-sec-poll',T.settings_poll); setText('modal-sec-notifications',T.settings_notifications); - setText('notif-hint',T.settings_notifications_hint); + var nhEl=document.getElementById('notif-hint');if(nhEl && T.settings_notifications_hint)nhEl.innerHTML=T.settings_notifications_hint; setText('lbl-notif-add',T.settings_notif_add); setText('modal-sec-version',T.settings_version); // Custom-Profile-Import (Issue #41) @@ -888,7 +888,7 @@ function drawChart(id,_,series){ // ── Notifications ── var _notifRows=[]; -var _NOTIF_EVENTS=['finished','failed','cancelled','paused']; +var _NOTIF_EVENTS=['started','finished','failed','cancelled','paused']; function notifRenderList(entries){ _notifRows=entries.map(function(e){return {url:e.url||'',events:e.events||[]};}); notifRefreshDOM(); diff --git a/web/translations/de.json b/web/translations/de.json index b842725..29df2eb 100644 --- a/web/translations/de.json +++ b/web/translations/de.json @@ -245,7 +245,7 @@ "ss_name": "A–Z Name", "ss_dur": "⏱ Druckzeit", "settings_notifications": "Benachrichtigungen", - "settings_notifications_hint": "Benachrichtigungen über Apprise-URLs senden (discord://, telegram://, gotify://, slack://, …)", + "settings_notifications_hint": "Benachrichtigungen über Apprise-URLs senden (discord://, telegram://, gotify://, slack://, …)", "settings_notif_add": "Benachrichtigung hinzufügen", "settings_notif_empty": "Keine Benachrichtigungen konfiguriert.", "settings_notif_test": "Test", @@ -254,5 +254,6 @@ "settings_notif_ev_finished": "Fertig", "settings_notif_ev_failed": "Fehler", "settings_notif_ev_cancelled": "Abgebrochen", - "settings_notif_ev_paused": "Pausiert" + "settings_notif_ev_paused": "Pausiert", + "settings_notif_ev_started": "Gestartet" } diff --git a/web/translations/en.json b/web/translations/en.json index f00ecd6..95238d6 100644 --- a/web/translations/en.json +++ b/web/translations/en.json @@ -245,7 +245,7 @@ "ss_name": "A–Z Name", "ss_dur": "⏱ Print time", "settings_notifications": "Notifications", - "settings_notifications_hint": "Send notifications via Apprise URLs (discord://, telegram://, gotify://, slack://, …)", + "settings_notifications_hint": "Send notifications via Apprise URLs (discord://, telegram://, gotify://, slack://, …)", "settings_notif_add": "Add notification", "settings_notif_empty": "No notifications configured.", "settings_notif_test": "Test", @@ -254,5 +254,6 @@ "settings_notif_ev_finished": "Finished", "settings_notif_ev_failed": "Failed", "settings_notif_ev_cancelled": "Cancelled", - "settings_notif_ev_paused": "Paused" + "settings_notif_ev_paused": "Paused", + "settings_notif_ev_started": "Started" } diff --git a/web/translations/es.json b/web/translations/es.json index a455ec4..0cf5201 100644 --- a/web/translations/es.json +++ b/web/translations/es.json @@ -245,7 +245,7 @@ "ss_name": "A–Z Nombre", "ss_dur": "⏱ Tiempo de impresión", "settings_notifications": "Notificaciones", - "settings_notifications_hint": "Enviar notificaciones via URLs de Apprise (discord://, telegram://, gotify://, slack://, …)", + "settings_notifications_hint": "Enviar notificaciones via URLs de Apprise (discord://, telegram://, gotify://, slack://, …)", "settings_notif_add": "Añadir notificación", "settings_notif_empty": "No hay notificaciones configuradas.", "settings_notif_test": "Probar", @@ -254,5 +254,6 @@ "settings_notif_ev_finished": "Terminado", "settings_notif_ev_failed": "Error", "settings_notif_ev_cancelled": "Cancelado", - "settings_notif_ev_paused": "Pausado" + "settings_notif_ev_paused": "Pausado", + "settings_notif_ev_started": "Iniciado" } diff --git a/web/translations/zh-cn.json b/web/translations/zh-cn.json index f0a8cca..c6b27d6 100644 --- a/web/translations/zh-cn.json +++ b/web/translations/zh-cn.json @@ -245,7 +245,7 @@ "ss_name": "A–Z 名称", "ss_dur": "⏱ 打印时间", "settings_notifications": "通知", - "settings_notifications_hint": "通过 Apprise URL 发送通知 (discord://, telegram://, gotify://, slack://, …)", + "settings_notifications_hint": "通过 Apprise URL 发送通知 (discord://, telegram://, gotify://, slack://, …)", "settings_notif_add": "添加通知", "settings_notif_empty": "未配置通知。", "settings_notif_test": "测试", @@ -254,5 +254,6 @@ "settings_notif_ev_finished": "完成", "settings_notif_ev_failed": "失败", "settings_notif_ev_cancelled": "已取消", - "settings_notif_ev_paused": "已暂停" + "settings_notif_ev_paused": "已暂停", + "settings_notif_ev_started": "开始打印" }