- server.py / main.py no longer reference fake_room at all (no import,
no --fake-room flag, no _apply_fake_room)
- Routing decision happens at connect time in DanmakuClient.start():
room_id == 1 dynamically imports fake_room.py and patches blivedm;
any other room id returns immediately without touching fake_room
- Switching back from room 1 to another room unpatches to real Bilibili
- Production (packaged, no fake_room.py) is completely unaffected for
normal room ids; room 1 without fake_room.py raises a clear error
- Rebuild portable zip (83.9 MB)
- Drop 'like' event from rules, handler and web UI (Bilibili like messages
are not reliably delivered as INTERACT_WORD_V2 msg_type=6)
- Keep enter_room / follow / interact_other
- event_rules.json rewritten without like key
- build.py keeps BUILD_DIR = dist/portable
- _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