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:
@@ -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}` |
|
| `blind_box` 盲盒礼物 | `{viewer_name}` `{gift_name}` `{gift_num}` `{blind_box_gift}` |
|
||||||
| `enter_room` 进房 | `{viewer_name}` `{user_uid}` |
|
| `enter_room` 进房 | `{viewer_name}` `{user_uid}` |
|
||||||
| `follow` 关注 | `{viewer_name}` `{user_uid}` |
|
| `follow` 关注 | `{viewer_name}` `{user_uid}` |
|
||||||
| `like` 点赞 | `{viewer_name}` `{user_uid}` |
|
|
||||||
| `interact_other` 其他互动 | `{viewer_name}` `{user_uid}` `{interact_type}`(分享/特别关注/互粉) |
|
| `interact_other` 其他互动 | `{viewer_name}` `{user_uid}` `{interact_type}`(分享/特别关注/互粉) |
|
||||||
| `buy_guard` 上舰 | `{ships_viewer_name}` `{ships_level}`(舰长/提督/总督) `{ships_num}` `{ships_price}` |
|
| `buy_guard` 上舰 | `{ships_viewer_name}` `{ships_level}`(舰长/提督/总督) `{ships_num}` `{ships_price}` |
|
||||||
| `guard_toast` 上舰提示 | `{ships_viewer_name}` `{ships_level}` `{guard_days}` `{toast_msg}` |
|
| `guard_toast` 上舰提示 | `{ships_viewer_name}` `{ships_level}` `{guard_days}` `{toast_msg}` |
|
||||||
|
|||||||
@@ -106,13 +106,16 @@ def main() -> int:
|
|||||||
"--hidden-import", "danmaku_handler",
|
"--hidden-import", "danmaku_handler",
|
||||||
"--hidden-import", "tts",
|
"--hidden-import", "tts",
|
||||||
"--hidden-import", "bili_login",
|
"--hidden-import", "bili_login",
|
||||||
|
"--noconfirm",
|
||||||
"--distpath", str(BUILD_DIR / "app"),
|
"--distpath", str(BUILD_DIR / "app"),
|
||||||
str(ROOT / "server.py"),
|
str(ROOT / "server.py"),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
exe = BUILD_DIR / "app" / "bililive-tts" / "bililive-tts.exe"
|
exe = BUILD_DIR / "app" / "bililive-tts" / "bililive-tts.exe"
|
||||||
if not exe.exists():
|
internal = BUILD_DIR / "app" / "bililive-tts" / "_internal"
|
||||||
print(f"ERROR: PyInstaller failed, {exe} not found")
|
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
|
return 1
|
||||||
print(f" OK: {exe} ({exe.stat().st_size // 1024 // 1024} MB)")
|
print(f" OK: {exe} ({exe.stat().st_size // 1024 // 1024} MB)")
|
||||||
|
|
||||||
|
|||||||
+1
-5
@@ -130,7 +130,7 @@ class DanmakuHandler(blivedm.BaseHandler):
|
|||||||
logger.info("Super chat: %s (%d yuan): %s", message.uname, message.price, message.message)
|
logger.info("Super chat: %s (%d yuan): %s", message.uname, message.price, message.message)
|
||||||
self._put(text)
|
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:
|
def _on_interact_word_v2(self, client: blivedm.BLiveClient, message: InteractWordV2Message) -> None:
|
||||||
msg_type = message.msg_type
|
msg_type = message.msg_type
|
||||||
if msg_type == 1:
|
if msg_type == 1:
|
||||||
@@ -141,10 +141,6 @@ class DanmakuHandler(blivedm.BaseHandler):
|
|||||||
text = event_text(self._rules, "follow",
|
text = event_text(self._rules, "follow",
|
||||||
viewer_name=message.username,
|
viewer_name=message.username,
|
||||||
user_uid=message.uid)
|
user_uid=message.uid)
|
||||||
elif msg_type == 6:
|
|
||||||
text = event_text(self._rules, "like",
|
|
||||||
viewer_name=message.username,
|
|
||||||
user_uid=message.uid)
|
|
||||||
else:
|
else:
|
||||||
text = event_text(self._rules, "interact_other",
|
text = event_text(self._rules, "interact_other",
|
||||||
viewer_name=message.username,
|
viewer_name=message.username,
|
||||||
|
|||||||
+1
-3
@@ -5,19 +5,17 @@
|
|||||||
"blind_box": true,
|
"blind_box": true,
|
||||||
"enter_room": true,
|
"enter_room": true,
|
||||||
"follow": false,
|
"follow": false,
|
||||||
"like": false,
|
|
||||||
"interact_other": false,
|
"interact_other": false,
|
||||||
"buy_guard": true,
|
"buy_guard": true,
|
||||||
"guard_toast": false,
|
"guard_toast": false,
|
||||||
"super_chat": true
|
"super_chat": true
|
||||||
},
|
},
|
||||||
"templates": {
|
"templates": {
|
||||||
"danmaku": "{uname}说、 {msg}",
|
"danmaku": "卧槽!、是{uname}!、他说、 {msg}",
|
||||||
"gift": "感谢由{viewer_name}投喂的{gift_name}",
|
"gift": "感谢由{viewer_name}投喂的{gift_name}",
|
||||||
"blind_box": "感谢由{viewer_name}投喂的{gift_name}爆出了{blind_box_gift}",
|
"blind_box": "感谢由{viewer_name}投喂的{gift_name}爆出了{blind_box_gift}",
|
||||||
"enter_room": "欢迎{viewer_name}进入直播间",
|
"enter_room": "欢迎{viewer_name}进入直播间",
|
||||||
"follow": "",
|
"follow": "",
|
||||||
"like": "",
|
|
||||||
"interact_other": "",
|
"interact_other": "",
|
||||||
"buy_guard": "恭喜{ships_viewer_name}成为尊贵的{ships_level}",
|
"buy_guard": "恭喜{ships_viewer_name}成为尊贵的{ships_level}",
|
||||||
"guard_toast": "",
|
"guard_toast": "",
|
||||||
|
|||||||
+1
-3
@@ -20,7 +20,6 @@ DEFAULT_RULES = {
|
|||||||
"blind_box": True,
|
"blind_box": True,
|
||||||
"enter_room": True,
|
"enter_room": True,
|
||||||
"follow": False,
|
"follow": False,
|
||||||
"like": False,
|
|
||||||
"interact_other": False,
|
"interact_other": False,
|
||||||
"buy_guard": True,
|
"buy_guard": True,
|
||||||
"guard_toast": False,
|
"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}",
|
"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",
|
"enter_room": "\u6b22\u8fce{viewer_name}\u8fdb\u5165\u76f4\u64ad\u95f4",
|
||||||
"follow": "",
|
"follow": "",
|
||||||
"like": "",
|
|
||||||
"interact_other": "",
|
"interact_other": "",
|
||||||
"buy_guard": "\u606d\u559c{ships_viewer_name}\u6210\u4e3a\u5c0a\u8d35\u7684{ships_level}",
|
"buy_guard": "\u606d\u559c{ships_viewer_name}\u6210\u4e3a\u5c0a\u8d35\u7684{ships_level}",
|
||||||
"guard_toast": "",
|
"guard_toast": "",
|
||||||
@@ -42,7 +40,7 @@ DEFAULT_RULES = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ALL_EVENTS = [
|
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",
|
"interact_other", "buy_guard", "guard_toast", "super_chat",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -571,7 +571,7 @@ async function checkExistingLogin() {
|
|||||||
|
|
||||||
const RULE_LABELS = {
|
const RULE_LABELS = {
|
||||||
danmaku: '弹幕', gift: '礼物', blind_box: '盲盒礼物',
|
danmaku: '弹幕', gift: '礼物', blind_box: '盲盒礼物',
|
||||||
enter_room: '进入房间', follow: '关注', like: '点赞',
|
enter_room: '进入房间', follow: '关注',
|
||||||
interact_other: '其他互动', buy_guard: '上舰',
|
interact_other: '其他互动', buy_guard: '上舰',
|
||||||
guard_toast: '上舰提示', super_chat: '醒目留言',
|
guard_toast: '上舰提示', super_chat: '醒目留言',
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user