知乎哔哩哔哩自动评论脚本,微博bilibili自动评论插件,关键词检测识别评论私信【autojs】

49 阅读3分钟

下载地址:www.pan38.com/dow/share.p… 提取密码:1133

这个实现包含了三个主要模块:自动评论主脚本、关键词检测模块和私信监控模块。请注意这只是一个技术演示,实际使用时请遵守各平台规则。代码中包含了基本的UI交互、关键词检测和自动回复功能。

// 多平台自动评论脚本 v1.0 // 需要AutoJS 4.1.1及以上版本支持

const PLATFORMS = { WEIBO: 0, BILIBILI: 1, ZHIHU: 2 };

class AutoComment { constructor() { this.keywords = ["科技", "数码", "AI"]; this.comments = [ "这个内容很有价值!", "感谢分享,学到了新知识", "观点很独特,值得思考" ]; this.interval = 3000; // 操作间隔3秒 this.maxRetry = 3; }

// 主入口函数 main() { this.requestScreenCapture(); this.showMenu(); }

showMenu() { let platform = dialogs.select("请选择平台", [ "微博", "哔哩哔哩", "知乎" ]);

switch(platform) {
  case PLATFORMS.WEIBO:
    this.handleWeibo();
    break;
  case PLATFORMS.BILIBILI:
    this.handleBilibili();
    break;
  case PLATFORMS.ZHIHU:
    this.handleZhihu();
    break;
  default:
    toast("无效选择");
}

}

handleWeibo() { // 微博处理逻辑 this.launchApp("com.sina.weibo"); sleep(this.interval);

// 检测关键词并评论
for(let i = 0; i < this.maxRetry; i++) {
  if(this.findAndComment()) {
    break;
  }
  sleep(1000);
}

}

handleBilibili() { // 哔哩哔哩处理逻辑 this.launchApp("tv.danmaku.bili"); sleep(this.interval);

// 检测关键词并评论
for(let i = 0; i < this.maxRetry; i++) {
  if(this.findAndComment()) {
    break;
  }
  sleep(1000);
}

}

handleZhihu() { // 知乎处理逻辑 this.launchApp("com.zhihu.android"); sleep(this.interval);

// 检测关键词并评论
for(let i = 0; i < this.maxRetry; i++) {
  if(this.findAndComment()) {
    break;
  }
  sleep(1000);
}

}

findAndComment() { // 截图查找关键词 let img = captureScreen(); let found = false;

// 简化版关键词检测
for(let keyword of this.keywords) {
  let point = findText(img, keyword);
  if(point) {
    this.postComment();
    found = true;
    break;
  }
}

return found;

}

postComment() { // 随机选择一条评论 let comment = this.comments[random(0, this.comments.length-1)];

// 模拟点击评论框
let commentBtn = bounds(device.width-100, device.height-200, 
                       device.width-50, device.height-150).findOne();
if(commentBtn) {
  commentBtn.click();
  sleep(500);
  
  // 输入评论
  setText(0, comment);
  sleep(500);
  
  // 发送评论
  let sendBtn = text("发送").findOne();
  if(sendBtn) {
    sendBtn.click();
    toast("评论成功: " + comment);
    return true;
  }
}
return false;

}

launchApp(packageName) { // 启动应用 if(!launch(packageName)) { toast("启动应用失败"); return false; } return true; } }

// 运行脚本 new AutoComment().main();

关键词检测模块 class KeywordDetector { constructor() { this.keywordMap = new Map(); this.loadKeywords(); }

loadKeywords() { // 从文件加载关键词 try { let data = files.read("./keywords.json"); let json = JSON.parse(data); for(let category in json) { this.keywordMap.set(category, json[category]); } } catch(e) { console.error("加载关键词失败:", e); this.initDefaultKeywords(); } }

initDefaultKeywords() { // 默认关键词 this.keywordMap.set("科技", ["人工智能", "AI", "机器学习"]); this.keywordMap.set("数码", ["手机", "电脑", "处理器"]); this.keywordMap.set("生活", ["美食", "旅游", "摄影"]); }

detect(text) { // 检测文本中的关键词 let result = []; for(let [category, keywords] of this.keywordMap) { for(let keyword of keywords) { if(text.includes(keyword)) { result.push({ category: category, keyword: keyword, position: text.indexOf(keyword) }); } } } return result; }

saveKeywords() { // 保存关键词到文件 let obj = {}; for(let [key, value] of this.keywordMap) { obj[key] = value; } files.write("./keywords.json", JSON.stringify(obj)); } }

module.exports = KeywordDetector; 私信监控模块 class MessageMonitor { constructor() { this.keywordDetector = new (require("./keyword_detector.js"))(); this.lastCheckTime = 0; this.checkInterval = 60000; // 1分钟检查一次 }

startMonitoring() { setInterval(() => { this.checkNewMessages(); }, this.checkInterval); }

checkNewMessages() { // 模拟获取新消息 let newMessages = this.getNewMessages(); for(let msg of newMessages) { let keywords = this.keywordDetector.detect(msg.content); if(keywords.length > 0) { this.handleKeywordMessage(msg, keywords); } } this.lastCheckTime = Date.now(); }

getNewMessages() { // 模拟获取新消息 return [ { sender: "用户A", content: "你好,想咨询关于人工智能的问题", time: Date.now() - 30000 }, { sender: "用户B", content: "这个手机处理器性能怎么样", time: Date.now() - 15000 } ]; }

handleKeywordMessage(msg, keywords) { // 处理含有关键词的消息 console.log("发现关键词消息:", msg); let reply = this.generateReply(keywords); this.sendReply(msg.sender, reply); }

generateReply(keywords) { // 生成回复 let categories = [...new Set(keywords.map(k => k.category))]; if(categories.includes("科技")) { return "感谢咨询科技相关问题,我们的专家会尽快回复您!"; } else if(categories.includes("数码")) { return "关于数码产品的问题,您可以查看我们的详细评测报告。"; } return "您好,已收到您的消息,我们会尽快处理。"; }

sendReply(receiver, content) { // 模拟发送回复 console.log("发送回复给", receiver, ":", content); } }

module.exports = MessageMonitor;