From 810b1cb4a4682637966a217c2bdbfdf5b59f1d83 Mon Sep 17 00:00:00 2001 From: wuyuanhong <953829392@qq.com> Date: Fri, 6 Jun 2025 11:22:04 +0800 Subject: [PATCH 1/3] fix: change message push controls master switch in settings and sub switch in streamcard (default True) --- app/core/record_manager.py | 2 +- app/ui/components/recording_dialog.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/core/record_manager.py b/app/core/record_manager.py index 07a0dd9..b568549 100644 --- a/app/core/record_manager.py +++ b/app/core/record_manager.py @@ -269,7 +269,7 @@ async def check_if_live(self, recording: Recording): recording.title = f"{recording.streamer_name} - {self._[recording.quality]}" recording.display_title = f"[{self._['is_live']}] {recording.title}" - if self.settings.user_config["stream_start_notification_enabled"] or recording.enabled_message_push: + if self.settings.user_config["stream_start_notification_enabled"] and recording.enabled_message_push: push_content = self._["push_content"] begin_push_message_text = self.settings.user_config.get("custom_stream_start_content") if begin_push_message_text: diff --git a/app/ui/components/recording_dialog.py b/app/ui/components/recording_dialog.py index e3b67f1..59d74cf 100644 --- a/app/ui/components/recording_dialog.py +++ b/app/ui/components/recording_dialog.py @@ -130,7 +130,7 @@ async def on_segment_setting_change(e): scheduled_recording = initial_values.get("scheduled_recording", False) scheduled_start_time = initial_values.get("scheduled_start_time") monitor_hours = initial_values.get("monitor_hours", 5) - message_push_enabled = initial_values.get('enabled_message_push', False) + message_push_enabled = initial_values.get('enabled_message_push', True) async def on_scheduled_setting_change(e): selected_value = e.control.value From 63fd83d085874d7977a82dc333f15f3cdf8ccb77 Mon Sep 17 00:00:00 2001 From: wyh <953829392@qq.com> Date: Fri, 6 Jun 2025 22:19:59 +0800 Subject: [PATCH 2/3] feat: add Live recording completed message push --- app/core/stream_manager.py | 16 +++++++++++++++- locales/en.json | 1 + locales/zh_CN.json | 1 + 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/core/stream_manager.py b/app/core/stream_manager.py index 3a76077..e945e62 100644 --- a/app/core/stream_manager.py +++ b/app/core/stream_manager.py @@ -13,7 +13,7 @@ from ..utils.logger import logger from . import ffmpeg_builders, platform_handlers from .platform_handlers import StreamData - +from ..messages.message_pusher import MessagePusher class LiveStreamRecorder: DEFAULT_SEGMENT_TIME = "1800" @@ -264,7 +264,21 @@ async def start_ffmpeg( else: self.recording.recording = False logger.success(f"Live recording completed: {record_name}") + if self.settings.user_config["stream_end_notification_enabled"] and self.recording.enabled_message_push: + push_content = self._["push_content_end"] + end_push_message_text = self.settings.user_config.get("custom_stream_end_content") + if end_push_message_text: + push_content = end_push_message_text + + push_at = datetime.today().strftime("%Y-%m-%d %H:%M:%S") + push_content = push_content.replace("[room_name]", self.recording.streamer_name).replace( + "[time]", push_at + ) + msg_title = self.settings.user_config.get("custom_notification_title").strip() + msg_title = msg_title or self._["status_notify"] + msg_manager = MessagePusher(self.settings) + self.app.page.run_task(msg_manager.push_messages, msg_title, push_content) try: self.recording.update({"display_title": display_title}) await self.app.record_card_manager.update_card(self.recording) diff --git a/locales/en.json b/locales/en.json index 7f93ec3..f4e267c 100644 --- a/locales/en.json +++ b/locales/en.json @@ -76,6 +76,7 @@ "live_room": "Live Room", "recorded": "Recorded", "push_content": "Live room status update: [room_name] is live, time: [time]", + "push_content_end": "Live room status update: [room_name] is live completed, time: [time]", "status_notify": "Live room status update notification", "STOPPED_MONITORING": "Monitoring Stopped", "MONITORING": "Monitoring In Progress", diff --git a/locales/zh_CN.json b/locales/zh_CN.json index 2eeb01d..41cb16e 100644 --- a/locales/zh_CN.json +++ b/locales/zh_CN.json @@ -76,6 +76,7 @@ "live_room": "直播间", "recorded": "已录制", "push_content": "直播间状态更新:[room_name] 正在直播中,时间:[time]", + "push_content_end": "直播间状态更新:[room_name] 直播已结束,时间:[time]", "status_notify": "直播间状态更新通知", "platform_not_supported_tip": "暂不支持该平台录制", "STOPPED_MONITORING": "直播间已停止监控", From 4c1ae946d657c389676b390b5b47bbbc99329a0f Mon Sep 17 00:00:00 2001 From: wyh <953829392@qq.com> Date: Sat, 7 Jun 2025 00:31:37 +0800 Subject: [PATCH 3/3] fix: check use ruff --- app/core/stream_manager.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/core/stream_manager.py b/app/core/stream_manager.py index e945e62..1340265 100644 --- a/app/core/stream_manager.py +++ b/app/core/stream_manager.py @@ -6,6 +6,7 @@ from datetime import datetime from typing import Any +from ..messages.message_pusher import MessagePusher from ..models.recording_status_model import RecordingStatus from ..models.video_quality_model import VideoQuality from ..process_manager import BackgroundService @@ -13,7 +14,7 @@ from ..utils.logger import logger from . import ffmpeg_builders, platform_handlers from .platform_handlers import StreamData -from ..messages.message_pusher import MessagePusher + class LiveStreamRecorder: DEFAULT_SEGMENT_TIME = "1800" @@ -264,7 +265,8 @@ async def start_ffmpeg( else: self.recording.recording = False logger.success(f"Live recording completed: {record_name}") - if self.settings.user_config["stream_end_notification_enabled"] and self.recording.enabled_message_push: + if (self.settings.user_config["stream_end_notification_enabled"] + and self.recording.enabled_message_push): push_content = self._["push_content_end"] end_push_message_text = self.settings.user_config.get("custom_stream_end_content") if end_push_message_text: