Wechat Bot 保姆级 NodeJS 打造微信 AI 机器人私人助手,抓取最新快讯
《前端开发面试题进阶秘籍》前端登顶-前端知识点梳理微信 AI 机器人-人工智能技术为用户提供服务的自动化系统具备自然语言处理能力、理解用户的文本或语音输入并给出相应的回复或执行特定的任务的能力。AI 机器人能够提供 24 小时的实时服务无论何时何地用户都能获得即时的信息反馈和帮助。节省了用户搜索信息的时间提高了效率并且还可以帮助管理社群提高社群的活跃度。一、需求背景想法实时获取快讯如近期新闻、热点、某位博主论坛、大盘信息第一时间拿到最新资讯进行分析算法判断结合实操技术方案的实现选型、框架、完善前端也可以玩转自动化AI技术nodejs、wechaty、qrcode-termina、axios等想法通过axios请求拿取想要的数据层进行自我算法分析数据目录化模块化、统一主入口进行类型的拆分分别处理不同的类型数据以达到自己想要的数据。将所爬取的信息分别写入本地上限200超出删掉首元素定期对比防止重复发送可能存在封号问题加间隔异步发送、检测频率、检测微信心跳、重启、敏感词等主要避违规问题优化这个视自己情况。代码精简与释放监视器占用最高0.6最低释放0二、显示效果图三、主要核心代码分享(不全仅供参考)1) 主入口包含bot机器人的注册与监听、类型处理函数、异步调用间隔import{initBot}from./bot.mjsimport{fetchBtcPrice}from./coin/ws.mjsimport{checkAndCreateFile}from../utils/fs.mjsimport{fetchUsSharesNum}from./news/UsShares.mjsimport{fetchNewsList}from./news/coinShot.mjsimport{fetchRunRedbook}from./chat/redbook.mjs;import{fetchUsNewsList}from./news/usNewsShot.mjsimport{fetchTwitterAllUsers}from./chat/twitter.mjs;import{colorMap,timeoutMap,JSONPathFile}from../utils/constant.mjsimport{isWithinTimeRange,isBtcWithinTimeRange}from../utils/timeRule.mjsletupdateTimeout;for(constpathofJSONPathFile){constasObjectpath./sentRemind.json;awaitcheckAndCreateFile(path,asObject);}// 初始化机器人awaitinitBot(checkForUpdates);// 爬虫调用函数asyncfunctioncheckForUpdates(){if(updateTimeout){clearTimeout(updateTimeout);}try{if(isBtcWithinTimeRange()){awaitfetchBtcPrice();awaitfetchTwitterAllUsers();}if(isWithinTimeRange(1)){console.log(${colorMap.success}开始发送币圈News!${colorMap.reset});awaitfetchNewsList();}if(isWithinTimeRange(2)){console.log(${colorMap.success}开始发送美股News!${colorMap.reset});awaitfetchUsNewsList();}if(isWithinTimeRange(4)){console.log(${colorMap.success}开始发送小红书Notes!${colorMap.reset});awaitfetchRunRedbook();}if(isWithinTimeRange(3)){console.log(${colorMap.success}开始发送美股指数!${colorMap.reset});awaitfetchUsSharesNum();}}finally{updateTimeoutsetTimeout(checkForUpdates,timeoutMap.newTimeout);}}2) bot机器人注册主进程的监听报错处理importfsfromfs;importpathfrompath;import{WechatyBuilder}fromwechaty;importqrcodeTerminalfromqrcode-terminal;import{PuppetWechat4u}fromwechaty-puppet-wechat4u;import{colorMap,groupName}from../utils/constant.mjs;import{sleep,formatDateTime}from../utils/utilsTool.mjs;consttimeoutDuration15*60000;// 15 minutesconstpingWxTimeout35*60000lettimeoutId,scanTimeout,sessionTimeout,isQrcodeRegisteredfalse,isLoggedInfalse;constflagLoginNamexxxxx;// 初始化机器人constbotWechatyBuilder.build({name:flagLoginName,puppet:newPuppetWechat4u()});constinitBot(checkFetchFn){bot.on(scan,(qrcode){if(isLoggedIn||isQrcodeRegistered)return;// 如果已经登录或者已注册二维码跳过扫码console.log(二维码链接,https://wechaty.js.org/qrcode/${encodeURIComponent(qrcode)});qrcodeTerminal.generate(qrcode,{small:true});isQrcodeRegisteredtrue;scanTimeoutsetTimeout(async(){console.log(五分钟内未扫码结束进程。);awaitisCheckWechatOnline()awaitsleep(3000)process.exit(1);},5*60000);});// 监听登录事件bot.on(login,asyncuser{isLoggedIntrue;clearTimeout(scanTimeout);console.log(${colorMap.error}用户${user}已登录${colorMap.reset});awaitcheckFetchFn();sessionTimeoutsetTimeout(()keepSessionAlive(),pingWxTimeout);});// 监听登出事件重置登录状态bot.on(logout,user{isLoggedInfalse;isQrcodeRegisteredfalse;console.log(${colorMap.warn}用户${user}已登出${colorMap.reset});});// 启动机器人bot.start().then(async(){console.log(${colorMap.warn}Wechaty 已启动${colorMap.reset});}).catch(econsole.error(机器人启动失败${e}));}// 查找群聊constfindGroupasync(){// ....省略}// 捕获主进程异常process.on(uncaughtException,async(err){// 视自己的报错情况做特殊处理....awaitsleep(1800000)// 30分钟后结束进程process.exit(1);});// 定义重启逻辑functionresetTimeout(){if(timeoutId)clearTimeout(timeoutId);constresetLoginasync(){try{awaitbot.stop();console.log(Bot 已停止准备重启...);isLoggedInfalse;awaitbot.start()}catch(e){console.error(重启时发生错误,e);}}resetLogin()timeoutIdsetTimeout(()resetLogin(),timeoutDuration);}// 登录失效检测心跳停止constisCheckWechatOnlineasync(){// 视自己情况而定}// 保持wx心跳检测constkeepSessionAliveasync(){// 视自己情况而定};export{initBot,findGroup};exportdefaultbot;四、科技改变生活(不全仅供参考)本篇文章仅供技术学习分享具体思路已在本文展现核心代码不做分享技术是前沿发展的我们是需要一步步探索学习的抓取你想要的信息为自己想要的生活做出一分的小努力如有想法也可跟博主私聊分享想法也可进群共享体验
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2448535.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!