admin管理员组文章数量:1516870
520Bot微信定时情话,群自动回复nodejs
微信机器人源码 520Bot微信定时情话,群自动回复nodejs
| 技术: | nodejs ,微信公共包,机器人接口 |
|---|---|
| 环境 | windows, 微信账号 |
| 功能说明 | 帮助屌丝找到妹纸。帮助情侣。夫妻。异地恋。日月恋增加和谐 |
| -功能介绍:- | -(群内回复前面加520如:520广州天气)。 1天气:发送FS如:广州天气。 2笑话:FS:笑话、讲个笑话。 3情话:FS:情话、讲个情话。 4周公解梦:FS:发大水。(关键字 520周公发大水) 4垃圾分类FS:男朋友是什么垃圾。 5名人名言FS:名言、名人名言。 6绕口令FS:绕口令。 7歇后语FS:歇后语。 8顺口溜FS:顺口溜。 …15等等- |
| 内置限制 | 防止渣男多发。只能为一个人主动定时发送情话等 |
| 难度 | 没学过电脑都都可以用 |
| -前提- | -申请注册机器人- |
| -免责申明- | -本项目属于个人兴趣开发,请勿使用此项目做违反微信规定或者其他违法事情。 建议使用小号进行测试,有被微信封禁网页端登录权限的风险(客户端不受影响),请确保自愿使用。因为个人使用不当导致网页端登录权限被封禁,均与作者无关,谢谢理解。- |
使用步骤 1 申请机器人 把 config/index.js 里的APIKEY 替换成 你申请的秘钥 (在 重置API密匙 可找到你的秘钥)
2 安装nodejs .html
3 powershell 找到安装的目录 命令牢记 npm install
npm run start
Ctrl+C 之后点Y 为取消关闭
更新说明: 20190709:基础版520情话 天气 定时推送 聊天 垃圾分类
20190710: 自动回复每个好友。昵称加备注模式定时发送。文字优化
2019071201:新增群触发相关功能 设置白名单群等 1群关键字可配置触发聊天及其他接口 2群周公解梦接口开发触发
2019071202:私聊屏蔽NBot开头的人。
代码
/**
- 520musWechatBot
-
- /
*/
- /
const { Wechaty, Friendship } = require(‘wechaty’)
//const schedule1 = ‘.js’;
const schedule = require(‘./schedule/index’)
const config = require(‘./config/index’)
const untils = require(‘./untils/index’)
const superagent = require(‘./superagent/index’)
// 延时函数,防止检测出类似机器人行为操作
const delay = ms => new Promise(resolve => setTimeout(resolve, ms));
// 二维码生成
function onScan(qrcode, status) {
require(‘qrcode-terminal’).generate(qrcode) // 在console端显示二维码
const qrcodeImageUrl = [
‘/?data=’,
encodeURIComponent(qrcode),
].join(‘’)
console.log(qrcodeImageUrl)
}
// 登录
async function onLogin(user) {
console.log(贴心小助理${user}登录了)
if (config.AUTOREPLY) {
console.log(已开启机器人自动聊天模式)
}
// 登陆后创建定时任务
await initDay6()
//11点
await initDay11()
//1 这家伙通宵了吧
await initDay1()
}
//登出
function onLogout(user) {
console.log(小助手${user} 已经登出)
}
// 监听对话
async function onMessage(msg) {
const contact = msg.from() // 发消息人
const content = msg.text().trim() //消息内容
const room = msg.room() //是否是群消息const alias = await contact.alias() // 发消息人备注
const contactname = await contact.name() //const contactfriend = await contact.friend() //昵称
const isText = msg.type() === bot.Message.Type.Text
const contacttype =contact.type() //发消息人类型 2好像是公告号 1 是人
const contactgender =await contact.gender() //发消息人性别//if (msg.self()) {
// console.log('跳过:',contact.name())
// return
//}
if (config.AUTOREPLYroom&&room &&isText) { // 如果是群消息const topic = await room.topic()// const mentionSelf= await msg.mentionSelf()//const roomfrom = msg.room().from() //是否是群消息&&mentionSelfif(config.AUTOREPLYPERSONSroom.indexOf(topic)>-1) //指定多个好友群开启机器人聊天功能{if (msg.self()&& config.AUTOREPLYroomself) {console.log('跳过:',contact.name())return}else{ console.log(`群名: ${topic} 发消息人: ${contact.name()} 内容: ${content}`)let strroomtemp = content.substr(0,config.AUTOREPLYroomBakNAMElenth) //截至为520 //功能2个关键字// let strroomtempgongnengkey2 = strroomtemp.substr(2,3)//周公解梦 getzhougongjiemengTypelet strstr = config.AUTOREPLYroomBakNAMElenth+'__'+ strroomtemp+'@'+config.AUTOREPLYroomBakNAMEconsole.log('1'+strstr+'2'+topic+'3'+contact+'4'+strroomtemp+'5'+content.substr(3,2)) //if(strroomtemp==config.AUTOREPLYroomBakNAME&&content&&strroomtemp&&content.substr(3,2)=='周公') { let contactContent = content.replace('520周公','') let replyroom = await superagent.getzhougongjiemengType(contactContent) let str520MUSroom= '❤520mus:'+replyroomtry {await delay(2000) await room.say(str520MUSroom)} catch (e) {console.error(e)}}else if(strroomtemp==config.AUTOREPLYroomBakNAME&&content){let replyroom = await superagent.getReply(content) let str520MUSroom= '❤520mus:'+replyroomtry {await delay(2000) await room.say(str520MUSroom)} catch (e) {console.error(e)} } else if(content.substr(0,config.AUTOREPLYroomBakNAMElenth)==config.AUTOREPLYroomBakNAME&&content){ let contactContent = content.replace('520','')let replyroom = await superagent.getReply(contactContent) let str520MUSroom= '❤520mus:'+replyroomtry {await delay(2000) await room.say(str520MUSroom)} catch (e) {console.error(e)}}}}}else if(isText&&contacttype==1){ // 如果非群消息 目前只处理文字消息 1为人// console.log(`类型: ${contact}`) // let reply = contacttype// console.log('类型', reply)//console.log(`处理1发消息人昵称: ${contactname} 发消息人备注: ${alias} 消息内容: ${content}`)if(content.substr(0,1)=='?'||content.substr(0,1)=='?'){let contactContent = content.replace('?','').replace('?','')if(contactContent){ console.log(`处理2发消息人昵称: ${contactname} 发消息人备注: ${alias} 消息内容: ${content}`)let res = await superagent.getRubbishType(contactContent)await delay(2000)await contact.say(res)}} //跳过黑名单备注名开头的 //else if(config.AUTOREPLY&&(config.AUTOREPLYPERSONS.indexOf(contactname)>-1||config.AUTOREPLYPERSONS.indexOf(alias)>-1))else if(config.AUTOREPLY&&contactfriend&&!config.AUTOREPLYPERSONSblacks==contact.name().substr(0,4) &&!AUTOREPLYPERSONSblack.indexOf(contactname)>-1){if (msg.self()) {console.log('跳过:',contact.name())return}else{console.log(`处理3发消息人昵称: ${contactname} 发消息人备注: ${alias} 消息内容: ${content}`)// 如果开启自动聊天且已经指定了智能聊天的对象才开启机器人聊天,//不对老婆大人开启自动聊天。机器人会聊死的//if (content&&alias!='A朵老婆大人'&&alias!='春天的脚步') { if (content) { let reply = await superagent.getReply(content) console.log('音娱乐行:', reply)let str520MUS= '音娱乐行:'+replytry {await delay(2000)await contact.say(str520MUS)} catch (e) {console.error(e)}} }}
}
}
// 创建微信520MUS说爱你定时任务
async function initDay6() {
console.log(已经设定520MUS说爱你任务)
schedule.setSchedule(config.SENDDATE6, async() => {
console.log(‘你的贴心小助理开始工作啦!’)
let logMsg
let contact = await bot.Contact.find({ name: config.NICKNAME }) || await bot.Contact.find({ alias: config.NAME }) // 获取你要发送的联系人
let one = await superagent.getOne() //获取每日一句
let weather = await superagent.getTXweather() //获取天气信息
let today = await untils.formatDate(new Date()) //获取今天的日期
let memorialDay = untils.getDay(config.MEMORIAL_DAY) //获取纪念日天数
let sweetWord = await superagent.getSweetWord()
let str = today + ‘
我们在一起的第’ + memorialDay + ‘天
’ + ‘
元气满满的一天开始啦,要开心噢_
’ +
‘
今日天气
’ + weather.weatherTips + ‘
’ + weather.todayWeather + ‘
每日一句:
’ + one + ‘
’ + ‘
520告白情话:
’ + sweetWord + ‘
’ + ‘————————最爱你的我’
try {
logMsg = str
await delay(2000)
await contact.say(str) // 发送消息
} catch (e) {
logMsg = e.message
}
console.log(logMsg)
})
}
// 创建微信520MUS说爱你定时任务
async function initDay11() {
console.log(已经设定520MUS说爱你任务二)
schedule.setSchedule(config.SENDDATE23, async() => {
console.log(‘你的晚安小助理开始工作啦!’)
let logMsg1
let contact1 = await bot.Contact.find({ name: config.NICKNAME }) || await bot.Contact.find({ alias: config.NAME }) // 获取你要发送的联系人
let today1 = await untils.formatDate(new Date()) //获取今天的日期 let sweetWord1 = await superagent.getSweetWord()let str1 = today1 + '<br>很晚了,要睡美美的觉了噢^_^<br>' + '<br>520告白情话:<br>' + sweetWord1 + '<br><br>' + '————————最爱你的我'try {logMsg1 = str1await delay(2000)console.log(logMsg1,contact1)await contact1.say(str1) // 发送消息} catch (e) {logMsg1 = e.message}console.log(logMsg1)
})
}
// 创建微信520MUS说爱你定时任务
async function initDay1() {
console.log(已经设定520MUS说爱你任务三)
schedule.setSchedule(config.SENDDATE1, async() => {
console.log(‘你的通宵小助理开始工作啦!’)
let logMsg2
let contact2 = await bot.Contact.find({ name: config.NICKNAME }) || await bot.Contact.find({ alias: config.NAME }) // 获取你要发送的联系人
let today2 = await untils.formatDate(new Date()) //获取今天的日期 let sweetWord2 = await superagent.getSweetWord()let str2 = today2 + '<br>很晚了,不能通宵噢^_^<br>' + '<br>520告白情话:<br>' + sweetWord2 + '<br><br>' + '————————最爱你的我'try {logMsg2 = str2await delay(2000)console.log(logMsg2,contact2)await contact2.say(str2) // 发送消息} catch (e) {logMsg2 = e.message}console.log(logMsg2)
})
}
const bot = new Wechaty({ name: ‘WechatEveryDay’ })
bot.on(‘scan’, onScan)
bot.on(‘login’, onLogin)
bot.on(‘logout’, onLogout)
bot.on(‘message’, onMessage)
//
bot.on(‘room-topic’, (room, topic, oldTopic, changer) => {
console.log(Room ${room.topic()} topic changed from ${oldTopic} to ${topic} by ${changer.name()})
})
bot.start()
.then(() => console.log(‘开始登陆微信’))
.catch(e => console.error(e))
哈哈最主要的是源码地址
点击下载源码
本文标签: 520Bot微信定时情话,群自动回复nodejs
版权声明:本文标题:520Bot微信定时情话,群自动回复nodejs 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/biancheng/1708491830a745178.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论