feat: remove like event (unreliable via INTERACT_WORD_V2); restore portable build dir

- 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
This commit is contained in:
2026-08-08 17:11:15 +08:00
parent 6ae7249583
commit 22ee613352
6 changed files with 9 additions and 15 deletions
-1
View File
@@ -100,7 +100,6 @@ python main.py --room-id ROOM_ID [--voice VOICE] [--speed SPEED]
| `blind_box` 盲盒礼物 | `{viewer_name}` `{gift_name}` `{gift_num}` `{blind_box_gift}` |
| `enter_room` 进房 | `{viewer_name}` `{user_uid}` |
| `follow` 关注 | `{viewer_name}` `{user_uid}` |
| `like` 点赞 | `{viewer_name}` `{user_uid}` |
| `interact_other` 其他互动 | `{viewer_name}` `{user_uid}` `{interact_type}`(分享/特别关注/互粉) |
| `buy_guard` 上舰 | `{ships_viewer_name}` `{ships_level}`(舰长/提督/总督) `{ships_num}` `{ships_price}` |
| `guard_toast` 上舰提示 | `{ships_viewer_name}` `{ships_level}` `{guard_days}` `{toast_msg}` |
+5 -2
View File
@@ -106,13 +106,16 @@ def main() -> int:
"--hidden-import", "danmaku_handler",
"--hidden-import", "tts",
"--hidden-import", "bili_login",
"--noconfirm",
"--distpath", str(BUILD_DIR / "app"),
str(ROOT / "server.py"),
],
)
exe = BUILD_DIR / "app" / "bililive-tts" / "bililive-tts.exe"
if not exe.exists():
print(f"ERROR: PyInstaller failed, {exe} not found")
internal = BUILD_DIR / "app" / "bililive-tts" / "_internal"
base_lib = internal / "base_library.zip"
if not exe.exists() or not base_lib.exists():
print(f"ERROR: PyInstaller build incomplete: exe={exe.exists()}, base_library.zip={base_lib.exists()}")
return 1
print(f" OK: {exe} ({exe.stat().st_size // 1024 // 1024} MB)")
+1 -5
View File
@@ -130,7 +130,7 @@ class DanmakuHandler(blivedm.BaseHandler):
logger.info("Super chat: %s (%d yuan): %s", message.uname, message.price, message.message)
self._put(text)
# ── interact (enter room / follow / like / share) ──────────────────
# ── interact (enter room / follow / share) ─────────────────────────
def _on_interact_word_v2(self, client: blivedm.BLiveClient, message: InteractWordV2Message) -> None:
msg_type = message.msg_type
if msg_type == 1:
@@ -141,10 +141,6 @@ class DanmakuHandler(blivedm.BaseHandler):
text = event_text(self._rules, "follow",
viewer_name=message.username,
user_uid=message.uid)
elif msg_type == 6:
text = event_text(self._rules, "like",
viewer_name=message.username,
user_uid=message.uid)
else:
text = event_text(self._rules, "interact_other",
viewer_name=message.username,
+1 -3
View File
@@ -5,19 +5,17 @@
"blind_box": true,
"enter_room": true,
"follow": false,
"like": false,
"interact_other": false,
"buy_guard": true,
"guard_toast": false,
"super_chat": true
},
"templates": {
"danmaku": "{uname}说、 {msg}",
"danmaku": "卧槽!、是{uname}!、他说、 {msg}",
"gift": "感谢由{viewer_name}投喂的{gift_name}",
"blind_box": "感谢由{viewer_name}投喂的{gift_name}爆出了{blind_box_gift}",
"enter_room": "欢迎{viewer_name}进入直播间",
"follow": "",
"like": "",
"interact_other": "",
"buy_guard": "恭喜{ships_viewer_name}成为尊贵的{ships_level}",
"guard_toast": "",
+1 -3
View File
@@ -20,7 +20,6 @@ DEFAULT_RULES = {
"blind_box": True,
"enter_room": True,
"follow": False,
"like": False,
"interact_other": False,
"buy_guard": True,
"guard_toast": False,
@@ -32,7 +31,6 @@ DEFAULT_RULES = {
"blind_box": "\u611f\u8c22\u7531{viewer_name}\u6295\u5582\u7684{gift_name}\u7206\u51fa\u4e86{blind_box_gift}",
"enter_room": "\u6b22\u8fce{viewer_name}\u8fdb\u5165\u76f4\u64ad\u95f4",
"follow": "",
"like": "",
"interact_other": "",
"buy_guard": "\u606d\u559c{ships_viewer_name}\u6210\u4e3a\u5c0a\u8d35\u7684{ships_level}",
"guard_toast": "",
@@ -42,7 +40,7 @@ DEFAULT_RULES = {
}
ALL_EVENTS = [
"danmaku", "gift", "blind_box", "enter_room", "follow", "like",
"danmaku", "gift", "blind_box", "enter_room", "follow",
"interact_other", "buy_guard", "guard_toast", "super_chat",
]
+1 -1
View File
@@ -571,7 +571,7 @@ async function checkExistingLogin() {
const RULE_LABELS = {
danmaku: '弹幕', gift: '礼物', blind_box: '盲盒礼物',
enter_room: '进入房间', follow: '关注', like: '点赞',
enter_room: '进入房间', follow: '关注',
interact_other: '其他互动', buy_guard: '上舰',
guard_toast: '上舰提示', super_chat: '醒目留言',
};