当前位置: 首页 > article >正文

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;四、科技改变生活(不全仅供参考)本篇文章仅供技术学习分享具体思路已在本文展现核心代码不做分享技术是前沿发展的我们是需要一步步探索学习的抓取你想要的信息为自己想要的生活做出一分的小努力如有想法也可跟博主私聊分享想法也可进群共享体验

相关文章:

Wechat Bot 保姆级 NodeJS 打造微信 AI 机器人私人助手,抓取最新快讯

《前端开发面试题进阶秘籍》:前端登顶-前端知识点梳理 微信 AI 机器人-人工智能技术,为用户提供服务的自动化系统:具备自然语言处理能力、理解用户的文本或语音输入,并给出相应的回复或执行特定的任务的能力。 AI 机器人能够提供…...

ComfyUI工作流迁移终极指南:从零到精通掌握备份与复用技巧

ComfyUI工作流迁移终极指南:从零到精通掌握备份与复用技巧 【免费下载链接】ComfyUI 最强大且模块化的具有图形/节点界面的稳定扩散GUI。 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI ComfyUI作为最强大且模块化的AI图像生成工具,…...

实战演练:基于快马平台与OpenClaw Skills打造工业零件智能分拣系统

最近在做一个工业自动化的小项目,需要实现金属零件的智能分拣。这个过程中发现InsCode(快马)平台特别适合快速验证这类工业场景的解决方案,今天就来分享一下具体实现过程。 项目背景与需求分析 工业分拣系统最核心的就是要解决三个问题:准确识…...

别再手动删缓存了!Nginx缓存配置实战:从proxy_cache到purge模块的完整避坑指南

Nginx缓存自动化管理实战:从基础配置到智能清除的进阶之路 引言:为什么我们需要更优雅的缓存管理? 每次手动清理服务器缓存目录时,你是否会感到一丝不安?那种直接操作文件系统的粗暴方式,就像用手术刀切西瓜…...

别再乱存Token了!Laravel+jwt-auth安全实践指南(LocalStorage vs Cookie对比)

Laraveljwt-auth安全实践:Token存储方案深度解析与防御策略 在当今前后端分离的Web开发架构中,如何安全地存储和传输身份验证Token一直是开发者面临的棘手问题。许多团队在快速迭代过程中往往忽视了Token存储环节的安全设计,导致系统暴露在XS…...

嵌入式老司机教你玩转Hi3520DV400:NOR/NAND双启动配置与TFTP极速烧写技巧

Hi3520DV400深度开发实战:双启动架构设计与工业级烧录优化 在嵌入式系统开发中,启动介质的选择和镜像烧录效率直接影响产品开发周期和生产部署效率。海思Hi3520DV400作为一款广泛应用于视频处理领域的芯片,其灵活的启动配置和高效的烧录方法值…...

从AlphaGo到ChatGPT:拆解AI巨头产品背后的‘三派’混血技术

从AlphaGo到ChatGPT:现代AI产品的技术融合密码 当AlphaGo在2016年击败李世石时,大多数人只看到了"AI战胜人类"的震撼标题,却很少有人追问:这个看似拥有"直觉"的围棋程序,究竟是如何思考的&#xf…...

避坑指南:Unity粒子系统做星星特效时最容易忽略的3个细节(附材质包)

Unity粒子系统制作星星特效的三大隐形陷阱与解决方案 在游戏开发中,粒子特效是营造氛围、增强视觉体验的重要手段。星星闪烁特效看似简单,但许多中级开发者在实际制作时常常遇到"塑料感"、"不自然"等问题。本文将深入剖析三个最容易…...

NameNode 和 DataNode 无法同时启动

NameNode 和 DataNode 无法同时启动步骤如下。1. 检查配置文件确保 hdfs-site.xml 和 core-site.xml 的配置正确。1.1 hdfs-site.xml检查以下配置:dfs.namenode.name.dir:NameNode 的元数据存储路径。dfs.datanode.data.dir:DataNode 的数据存…...

边缘AI语音助手开发实战:如何用ESP32-S3构建低成本智能交互设备

边缘AI语音助手开发实战:如何用ESP32-S3构建低成本智能交互设备 【免费下载链接】xiaozhi-esp32 Build your own AI friend 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32 你是否曾想过,将大语言模型的智能能力直接部署到嵌入…...

DL00592-基于无监督学习的绝缘子缺陷检测完整实现‘含数据集目录结构

DL00592-基于无监督学习的绝缘子缺陷检测完整实现含数据集 data |---- insulator |-----|------ ground_truth |-----|------|------ teat_all |-----|------|------ test_real |-----|------|------ test_sim |-----|------ test_all |-----|------|------ good |-----|------…...

工具链集成:规范驱动开发如何提升Python开发效率

工具链集成:规范驱动开发如何提升Python开发效率 【免费下载链接】spec-kit 💫 Toolkit to help you get started with Spec-Driven Development 项目地址: https://gitcode.com/gh_mirrors/sp/spec-kit 在现代Python开发中,如何平衡规…...

基于天棚控制原理的半主动悬架模型探索

基于天棚控制原理的半主动悬架模型 详细介绍:采用天棚阻尼控制的1/4主动悬架模型,以车身垂向加速度为控制目标,输入为B级随机路面,输出为车身垂向加速度、轮胎动载荷、悬架动挠度等平顺性评价指标,并计算了各个参数的均…...

【《零基础读懂新能源汽车》—— 拆穿“省油不省钱”谎言|特斯拉/比亚迪/蔚来残值率终极对决】

标题: 《新能源车5年用车成本暴击燃油车!附自研成本计算器(Python源码)》 副标题: 拆穿“省油不省钱”谎言|特斯拉/比亚迪/蔚来残值率终极对决 目录结构 颠覆认知:新能源车真实成本曲线 购车成本三维对比(2024最新数据) 2.1 车价差异陷阱(补贴后实际成交价) 2.2 购…...

TL494电源芯片实战:从电路设计到调压限流全解析(附完整电路图)

TL494电源芯片实战:从电路设计到调压限流全解析(附完整电路图) 在电子工程领域,电源设计一直是项目成败的关键环节。作为一款经典的PWM控制芯片,TL494凭借其稳定性和灵活性,成为众多工程师设计开关电源时的…...

nli-distilroberta-base详细步骤:基于GPU算力优化的轻量级NLI Web服务部署

nli-distilroberta-base详细步骤:基于GPU算力优化的轻量级NLI Web服务部署 1. 项目概述 自然语言推理(NLI)是理解文本语义关系的重要任务。nli-distilroberta-base是基于DistilRoBERTa模型的轻量级NLI服务,专门针对GPU环境优化&…...

探索含 SVG 的双馈风电场:基于 SVG 附加阻尼的次同步谐振抑制

含svg的双馈风电场 基于svg附加阻尼的次同步谐振抑制在当今的能源格局中,风力发电作为一种清洁且可持续的能源形式,正逐渐占据越来越重要的地位。其中,双馈风电场因其独特的优势被广泛应用。然而,次同步谐振(SSR&#…...

双闭环调速系统调参避坑指南:如何用MATLAB/Simulink让ASR和ACR配合更默契?

双闭环调速系统调参避坑指南:如何用MATLAB/Simulink让ASR和ACR配合更默契? 在电机控制领域,双闭环调速系统因其优异的动态性能和抗干扰能力而广受青睐。然而,许多工程师在实际调试过程中常常陷入参数调整的泥潭——转速环&#xf…...

GraphQL.NET依赖注入终极指南:7个MicrosoftDI扩展最佳实践

GraphQL.NET依赖注入终极指南:7个MicrosoftDI扩展最佳实践 【免费下载链接】graphql-dotnet GraphQL for .NET 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-dotnet GraphQL.NET 作为 .NET 生态系统中功能最强大的 GraphQL 实现框架,其依…...

DeepSeek-OCR-2性能对比测试:CPU与GPU推理全解析

DeepSeek-OCR-2性能对比测试:CPU与GPU推理全解析 本文对DeepSeek-OCR-2在不同硬件配置下的性能进行全面测试,为实际部署提供数据支撑和方案建议 1. 测试背景与目的 DeepSeek-OCR-2作为新一代文档识别模型,凭借其创新的视觉因果流技术&#x…...

Ubuntu下Boost库的安装与卸载:从源码编译到包管理的双路径解析

1. Boost库简介与安装方式选择 Boost是C开发者绕不开的一个重量级工具库,它就像瑞士军刀一样提供了从智能指针到多线程处理的各类组件。我在实际项目中使用Boost超过8年,遇到过各种安装方式带来的"酸甜苦辣"。在Ubuntu系统下,主要有…...

Luma3DS从源码编译终极指南:开发者环境搭建和完整构建流程详解

Luma3DS从源码编译终极指南:开发者环境搭建和完整构建流程详解 【免费下载链接】Luma3DS Noob-proof (N)3DS "Custom Firmware" 项目地址: https://gitcode.com/gh_mirrors/lu/Luma3DS Luma3DS是Nintendo 3DS家族设备的"傻瓜式"自定义固…...

BeepBox:释放音乐创造力的零门槛工具 - 零基础创作者指南

BeepBox:释放音乐创造力的零门槛工具 - 零基础创作者指南 【免费下载链接】beepbox An online tool for sketching and sharing instrumental melodies. 项目地址: https://gitcode.com/gh_mirrors/be/beepbox 如何用BeepBox实现音乐创作自由? 当…...

MATLAB App Designer实战指南:从零打造你的第一个交互式GUI应用

1. MATLAB App Designer入门:为什么选择它做GUI开发? 第一次打开MATLAB App Designer时,我就被它的简洁界面惊艳到了。作为一个用MATLAB做了五年数据分析的工程师,以前总是用脚本处理数据,然后把结果复制粘贴到PPT里给…...

如何快速搭建MiroFish预测引擎:3种高效部署方案全解析

如何快速搭建MiroFish预测引擎:3种高效部署方案全解析 【免费下载链接】MiroFish A Simple and Universal Swarm Intelligence Engine, Predicting Anything. 简洁通用的群体智能引擎,预测万物 项目地址: https://gitcode.com/GitHub_Trending/mi/Miro…...

Python爬虫实战:避开巨潮资讯网反爬,稳定获取上市公司年报PDF下载地址

Python爬虫实战:突破动态加载限制获取上市公司年报PDF链接 财经数据爬取一直是数据分析师和量化投资者的刚需,但许多金融信息平台都采用了动态加载技术来保护数据。最近在开发者社区看到不少关于巨潮资讯网爬取失败的求助帖——明明用Requests库能抓到HT…...

从BEVFormer到BEVFormer-v2:透视监督如何重塑BEV感知的骨干网络

1. BEVFormer的核心思想与局限性 BEVFormer作为首个将Transformer引入鸟瞰图(BEV)感知的开创性工作,其核心创新在于摆脱了对深度估计的强依赖。传统BEV方法需要先计算每个像素的深度,再将2D特征"抬升"到3D空间&#xff…...

终极CodePilot代码搜索服务完整指南:从安装到精通使用技巧 [特殊字符]

终极CodePilot代码搜索服务完整指南:从安装到精通使用技巧 🚀 【免费下载链接】codepilot The code search service to rule them all and in a dark theme, bind them. 项目地址: https://gitcode.com/gh_mirrors/cod/codepilot CodePilot是一款…...

IEEE论文必备:LaTeX伪代码排版全攻略(附algorithmic与algorithm2e对比)

IEEE论文伪代码排版实战指南:从algorithmic到algorithm2e的深度解析 第一次在IEEE论文里插入伪代码时,我盯着编译报错发了半小时呆——明明本地预览完美无缺,上传到Overleaf却显示"undefined control sequence"。后来才发现是忘了在…...

Furnace性能优化技巧:10个方法让你的追踪器运行更流畅

Furnace性能优化技巧:10个方法让你的追踪器运行更流畅 【免费下载链接】furnace a multi-system chiptune tracker compatible with DefleMask modules 项目地址: https://gitcode.com/gh_mirrors/fu/furnace Furnace是一款多系统芯片音乐追踪器,…...