fix: danmaku template now uses event rules; rules apply instantly on save

- _on_danmaku renders via event_text(rules, 'danmaku', ...) like all other
  events; hardcoded {uname}说、 {msg} format removed
- Drop message_format param from DanmakuHandler/DanmakuClient/server/main
- api_rules_post mutates the shared rules dict in place (clear+update)
  instead of rebinding, so running handlers pick up new templates
  immediately without restarting TTS
- UI save toast: '规则已保存并即时生效'
- Verified: custom template 卧槽!、是{uname}!、他说、 {msg} works;
  save-then-next-danmaku uses new template without restart
This commit is contained in:
2026-08-08 16:37:05 +08:00
parent 488abb9730
commit b7d0c26ad1
4 changed files with 14 additions and 22 deletions
-3
View File
@@ -30,8 +30,6 @@ def parse_args() -> argparse.Namespace:
choices=["f1", "f2", "m1", "m2", "dvd", "imd1", "jgr", "r1"])
parser.add_argument("--speed", "-s", type=int, default=DEFAULT_SPEED)
parser.add_argument("--sessdata", type=str, default="")
parser.add_argument("--format", "-f", type=str,
default="{uname}\u8bf4\u3001 {msg}")
parser.add_argument("--no-numbers", action="store_true")
parser.add_argument("--list-devices", action="store_true")
parser.add_argument("--debug", "-d", action="store_true")
@@ -77,7 +75,6 @@ async def main_async(args: argparse.Namespace) -> int:
room_id=args.room_id, queue=queue,
cookies={"SESSDATA": args.sessdata} if args.sessdata else None,
rules=rules,
message_format=args.format,
)
async def handle_signal():