抖音直播聊天室用户互动(评论、礼物)的自动化脚本 vx: haotsh
一个用于处理抖音直播聊天室用户互动(评论、礼物)的自动化脚本,主要功能包括消息捕获、过滤、回复及AI交互。以下是详细分析:
vx : haotsh
核心功能解析
-
消息捕获
- DOM节点提取: 通过
getNode()
从突变观察的目标节点中定位聊天项容器(类名webcast-chatroom___item-wrapper
的div)。 - 昵称/内容提取: 使用
getTextNodeContent()
从DOM节点中提取用户昵称和评论内容。
- DOM节点提取: 通过
-
礼物识别
- 图标哈希匹配: 通过检测HTML中图片资源的哈希值(如
e9b7db267d0501b8963d8000c091e123
)判断礼物类型(如"人气票"),并将礼物名称追加到评论信息中。
- 图标哈希匹配: 通过检测HTML中图片资源的哈希值(如
-
过滤机制
- 黑名单检查: 若昵称在
douyinNicknames
列表或评论内容含有关键词(blackWordArr
),则忽略消息。 - 历史去重: 使用
historyList
缓存最近200条消息,避免重复处理。
- 黑名单检查: 若昵称在
-
消息处理与回复
- 关键词回复: 匹配预设的
qaKeywords
,若命中则替换变量(如{昵称}
)并延迟发送(speakBreak
控制间隔)。 - AI回复: 调用外部API(
apiBase
)生成回复,同样替换变量后发送。 - 频率限制: 通过
timeLimit
和lastInvocationTime
控制消息发送频率,防止触发平台限制。
- 关键词回复: 匹配预设的
-
辅助功能
- 界面更新:
showNewMessageBox()
显示新消息到界面。 - 钩子函数:
Hook()
可能用于外部通知或日志记录。
- 界面更新:
let douyin = getNode(mutation.target, './div[contains(@class,"webcast-chatroom___item-wrapper")]'); if (douyin) { // 提取昵称和内容 let nickname = getTextNodeContent(douyin, "./div/span[2]"); let commentInfo = getTextNodeContent(douyin, "./div/span[3]"); // 礼物识别逻辑 let sourceHtml = getHtmlNodeContent(douyin, "./div/span[3]"); if (sourceHtml.includes("e9b7db267d0501b8963d8000c091e123")) gift = "人气票"; // ...其他礼物判断 // 过滤黑名单和关键词 if (douyinNicknames.includes(nickname) || containsKeyword(commentInfo, blackWordArr)) return; // 构建消息体并检查历史记录 requestBody = nickname + ":" + commentInfo; if (!historyList.includes(requestBody)) { historyList.push(requestBody); showNewMessageBox(requestBody); Hook(nickname, commentInfo, getHtmlNodeContent(douyin, "./div/span[3]")); // 关键词回复 let replyContent = searchKeywordReplys(qaKeywords, commentInfo); if (replyContent) { // 频率检查与延迟发送 async function delay() { await sleep(1000 * speakBreak); sendReplyContent(replyContent); } delay(); return; } // AI回复 sendAsyncAIQuestion(apiBase, nickname, "", commentInfo).then(replyContent => { sendReplyContent(replyContent); }); } }
十年开发经验程序员,离职全心创业中,历时三年开发出的产品《唯一客服系统》
一款基于Golang+Vue开发的在线客服系统,软件著作权编号:2021SR1462600。一套可私有化部署的网站在线客服系统,编译后的二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的全渠道在线客服系统,致力于帮助广大开发者/公司快速部署整合私有化客服功能。
开源地址:唯一客服(开源学习版)
官网地址:唯一客服官网