From 140b3de4bdae1093a521436b2a7e56ad3e8052f8 Mon Sep 17 00:00:00 2001 From: zhiyu1998 Date: Wed, 22 Feb 2023 12:06:30 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=201.0.7=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E5=AF=B9=E8=AF=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 新增进阶内容:自定义对话 2. 删除#我靠,将在下一个版本进行重构 3. 整理、优化部分代码 --- README.md | 77 +++++-------------- apps/mystery.js | 46 ----------- apps/rchat.js | 111 +++++++++++++++++++++++++++ apps/tools.js | 147 ++++++++++++++++++------------------ config/help.yaml | 4 +- config/version.yaml | 5 +- img/example6.png | Bin 0 -> 66579 bytes resources/img/icon/pic4.png | Bin 5657 -> 6092 bytes resources/img/icon/pic5.png | Bin 6092 -> 6329 bytes 9 files changed, 206 insertions(+), 184 deletions(-) create mode 100644 apps/rchat.js create mode 100644 img/example6.png diff --git a/README.md b/README.md index e48456a..6396e73 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ index -- 主入口 ## 📔 使用说明 1.【必要】在`Yunzai-Bot`安装mongodb、axios(0.27.2)、代理工具(tunnel)、TwitterAPI依赖 -> pnpm add mongodb axios tunnel twitter-api-v2 -w +> pnpm add axios tunnel twitter-api-v2 -w 2.【必要】下载插件 > git clone https://gitee.com/kyrzy0416/rconsole-plugin.git ./plugins/rconsole-plugin/ @@ -56,67 +56,26 @@ sudo apt-get install ffmpeg # Windows 参考:https://www.jianshu.com/p/5015a477de3c ```` -## 🧑‍🌾 进阶 -【可选】备注:考虑到不是所有电脑都有mongodb,如果要开启`#我靠`功能,需要进行以下操作: +## 🧑‍🌾 【可选】进阶内容 +这个功能由[烦烦同学](https://github.com/nilfunc +)提出的需求,正好符合插件的宗旨`为朋友所写的功能`。在使用这个功能之前需要安装以下: +在Yunzai主目录使用以下命令 +> pnpm add mongoose -w -### 使用Python、Mongodb爬虫三次元图片 -首先去test文件跑python代码(要安装`requirements.txt`要求的依赖) -> python3 ./test/main.py +安装Mongodb(别看错了,下载`4.`版本): +> 官网地址:https://www.mongodb.com/try/download/community -需要把以下代码(apps/mystery.js)注释取消: -```javascript -// in apps/mystery.js +### 使用Mongoose进行自定义对话 +需要把代码(apps/rchat.js)注释取消(因为不是每个人都想装mongodb): +> 注释的地方例如:// import mongoose from "mongoose"; +> 取消注释快捷键:`ctrl + /` -// Mongodb初始化 -import mongodb from 'mongodb' - -// Mongodb初始化 -function initMongo () { - const MongoClient = mongodb.MongoClient - const url = 'mongodb://localhost:27017/' - return new Promise((resolve, reject) => { - MongoClient.connect(url, (err, db) => { - const dbo = db.db('test') - if (err) { - throw err // 和调用 reject(err) 效果类似 - } - let collection = dbo.collection('temp') - resolve(collection) - }) - }) -} - -const mongo = initMongo() -// ... -{ - reg: '^#我靠', fnc: 'tuiimg' -} -// ... -async tuiimg (e) { - const MAX_SIZE = this.mysteryConfig.tuiimg.count - this.reply('这群早晚被你整没了...') - let images = [] - const template = { - nickname: this.e.sender.card || this.e.user_id, user_id: this.e.user_id - } - await mongo.then(conn => { - return conn.aggregate([ { $sample: { size: MAX_SIZE } } ]).toArray() - }).then((result) => { - result.forEach((item) => { - images.push({ - message: segment.image(item.url), ...template - }) - }) - }) - return !!(await this.reply(await Bot.makeForwardMsg(images), false, { - recallMsg: recallTime - })) -} -``` - -> 备注: -> 1. linux/windows系统下自己装一个mongodb,上一个密码(不上有风险) -> 2. `test/main.py`爬取链接(要有python环境、配合mongodb使用) +### 进阶内容使用说明 +❓ 询问:@机器人 (问题) +➕增加问题:@机器人 add(问题) +❌删除问题:@机器人 del(问题) +⭕更新问题:@机器人 update(问题) +![help](./img/example6.png) ### 其他进阶操作 【可选】相关配置(apps/tools.js): diff --git a/apps/mystery.js b/apps/mystery.js index f4841e3..135e5e3 100644 --- a/apps/mystery.js +++ b/apps/mystery.js @@ -1,32 +1,10 @@ // 主库 import { segment } from "oicq"; -import common from "../../../lib/common/common.js"; import fetch from "node-fetch"; // 配置文件 import config from "../model/index.js"; // 其他库 import _ from "lodash"; -// import mongodb from 'mongodb' - -// Mongodb初始化 -// function initMongo () { -// const MongoClient = mongodb.MongoClient -// const url = 'mongodb://localhost:27017/' -// return new Promise((resolve, reject) => { -// MongoClient.connect(url, (err, db) => { -// const dbo = db.db('test') -// if (err) { -// throw err // 和调用 reject(err) 效果类似 -// } -// let collection = dbo.collection('temp') -// resolve(collection) -// }) -// }) -// } -// -// const mongo = initMongo() -// 60s后撤回 -const recallTime = 109; export class mystery extends plugin { constructor() { @@ -52,9 +30,6 @@ export class mystery extends plugin { reg: "^#(啊?|啊?)$", fnc: "aaa", }, - // { - // reg: '^#我靠', fnc: 'tuiimg' - // } ], }); this.mysteryConfig = config.getConfig("mystery"); @@ -271,27 +246,6 @@ export class mystery extends plugin { return true; } - // async tuiimg (e) { - // const MAX_SIZE = this.mysteryConfig.tuiimg.count - // this.reply('这群早晚被你整没了...') - // let images = [] - // const template = { - // nickname: this.e.sender.card || this.e.user_id, user_id: this.e.user_id - // } - // await mongo.then(conn => { - // return conn.aggregate([ { $sample: { size: MAX_SIZE } } ]).toArray() - // }).then((result) => { - // result.forEach((item) => { - // images.push({ - // message: segment.image(item.url), ...template - // }) - // }) - // }) - // return !!(await this.reply(await Bot.makeForwardMsg(images), false, { - // recallMsg: recallTime - // })) - // } - // 正则:获取图片 getCos6Img(string) { const imgRex = /\/([\w].*?).(jpg|JPG|png|PNG|gif|GIF|jpeg|JPEG|svg)/g; diff --git a/apps/rchat.js b/apps/rchat.js new file mode 100644 index 0000000..f2c6a90 --- /dev/null +++ b/apps/rchat.js @@ -0,0 +1,111 @@ +// import mongoose from "mongoose"; + +// mongoose.connect("mongodb://127.0.0.1:27017/rconsole"); +// const Chat = mongoose.model("chats", new mongoose.Schema({ q: String, ans: String })); + +export class rchat extends plugin { + constructor(e) { + super({ + name: "自定义回复", + dsc: "R插件插件自定义回复", + event: "message", + priority: 500, + rule: [ + // { + // reg: (e === undefined ? false : e.atme) + // ? "^[^add|del|update](.*)" + // : "#rchat(.*)", + // fnc: "queryChat", + // }, + // { + // reg: (e === undefined ? false : e.atme) ? "add(.*)" : "#rchat add(.*)", + // fnc: "addCustomContent", + // }, + // { + // reg: (e === undefined ? false : e.atme) ? "del(.*)" : "#rchat del(.*)", + // fnc: "delCustomContent", + // }, + // { + // reg: (e === undefined ? false : e.atme) ? "update(.*)" : "#rchat update(.*)", + // fnc: "updateCustomContent", + // }, + ], + }); + } + + // async queryChat(e) { + // // 获取到想要聊天的内容 + // const content = e.msg.trim(); + // // 模糊查询 + // await Chat.find({ q: new RegExp(content) }).then(res => { + // // 原答案 + // // console.log(res); + // for (let epoch of res) { + // if (epoch.q.trim() === content) { + // e.reply(epoch.ans); + // return true; + // } + // } + // // 回复最接近的结果 + // e.reply(res[0].ans); + // }); + // } + // + // async addCustomContent(e) { + // const q = /add*(.*)/.exec(e.msg)[1].trim(); + // await new Chat({ q, ans: "" }).save(); + // await e.reply(`问题:${q},需要怎么回答?`, false, { at: true }); + // this.setContext("addCustomAns"); + // } + // + // async addCustomAns() { + // // 如果不回复或者回复其他 + // if (!this.e.msg) { + // return true; + // } + // // 当前消息 + // const curMsg = this.e; + // // 上一个消息 + // const preMsg = this.getContext(); + // // console.log(preMsg) + // // console.log(preMsg.addCustomAns) + // const q = /add*(.*)/.exec(preMsg.addCustomAns.msg)[1].trim(); + // const ans = curMsg.msg.trim(); + // await Chat.updateOne({ q }, { ans }); + // this.finish("addCustomAns"); + // } + // + // async delCustomContent(e) { + // const removeContent = /del*(.*)/.exec(e.msg)[1].trim(); + // await Chat.deleteOne({ q: removeContent }).then(res => { + // e.reply(`已经删除${removeContent}`); + // }); + // return true; + // } + // + // async updateCustomContent(e) { + // const updateContent = /update*(.*)/.exec(e.msg)[1].trim(); + // await Chat.findOne({ q: updateContent }).then(res => { + // e.reply(`我觉得:${res.q},应该回答${res.ans},你觉得我该怎么回答?`); + // }); + // this.setContext("updateCustomAns"); + // return true; + // } + // + // async updateCustomAns() { + // // 如果不回复或者回复其他 + // if (!this.e.msg) { + // return true; + // } + // // 当前消息 + // const curMsg = this.e; + // // 上一个消息 + // const preMsg = this.getContext(); + // const q = /update*(.*)/.exec(preMsg.updateCustomAns.msg)[1].trim(); + // const ans = curMsg.msg.trim(); + // await Chat.findOneAndUpdate({ q }, { $set: { ans } }).then(res => { + // curMsg.reply(`明白了,${q},应该回答${ans}`); + // }); + // this.finish("updateCustomAns"); + // } +} diff --git a/apps/tools.js b/apps/tools.js index de7ba7a..2919325 100644 --- a/apps/tools.js +++ b/apps/tools.js @@ -12,13 +12,12 @@ import HttpProxyAgent from "https-proxy-agent"; import { mkdirsSync } from "../utils/file.js"; import { downloadBFile, getDownloadUrl, mergeFileToMp4, getDynamic } from "../utils/bilibili.js"; import { parseUrl, parseM3u8, downloadM3u8Videos, mergeAcFileToMp4 } from "../utils/acfun.js"; -import { transMap, douyinTypeMap } from "../utils/constant.js" +import { transMap, douyinTypeMap } from "../utils/constant.js"; import { retry } from "../utils/common.js"; import config from "../model/index.js"; - export class tools extends plugin { - constructor () { + constructor() { super({ name: "工具和学习类", dsc: "工具相关指令", @@ -63,8 +62,8 @@ export class tools extends plugin { }, { reg: "(.*)(doi.org)", - fnc: "literature" - } + fnc: "literature", + }, ], }); // http://api.tuwei.space/girl @@ -73,12 +72,12 @@ export class tools extends plugin { // 视频保存路径 this.defaultPath = this.toolsConfig.defaultPath; // redis的key - this.redisKey = `Yz:tools:cache:${ this.group_id }`; + this.redisKey = `Yz:tools:cache:${this.group_id}`; // 代理接口 // TODO 填写服务器的内网ID和clash的端口 this.proxyAddr = this.toolsConfig.proxyAddr; this.proxyPort = this.toolsConfig.proxyPort; - this.myProxy = `http://${ this.proxyAddr }:${ this.proxyPort }`; + this.myProxy = `http://${this.proxyAddr}:${this.proxyPort}`; // console.log(this.myProxy) // 加载百度翻译配置 this.translateAppId = this.toolsConfig.translateAppId; @@ -88,7 +87,7 @@ export class tools extends plugin { } // 翻译插件 - async trans (e) { + async trans(e) { const languageReg = /翻(.)/g; const msg = e.msg.trim(); const language = languageReg.exec(msg); @@ -103,20 +102,20 @@ export class tools extends plugin { // let url = `http://api.fanyi.baidu.com/api/trans/vip/translate?from=auto&to=${ transMap[language[1]] }&appid=APP ID&salt=自定义&sign=${ md5("APP ID" + place + "自定义" + "密钥") }&q=${ place }`; let url = `http://api.fanyi.baidu.com/api/trans/vip/translate?from=auto&to=${ transMap[language[1]] - }&appid=${ this.translateAppId }&salt=rconsole&sign=${ md5( + }&appid=${this.translateAppId}&salt=rconsole&sign=${md5( this.translateAppId + place + "rconsole" + this.translateSecret - ) }&q=${ place }`; + )}&q=${place}`; // console.log(url) await fetch(url) .then(resp => resp.json()) .then(text => text.trans_result) - .then(res => this.reply(`${ res[0].dst }`, true)) + .then(res => this.reply(`${res[0].dst}`, true)) .catch(err => logger.error(err)); return true; } // 抖音解析 - async douyin (e) { + async douyin(e) { const urlRex = /(http:|https:)\/\/v.douyin.com\/[A-Za-z\d._?%&+\-=\/#]*/g; const douUrl = urlRex.exec(e.msg.trim())[0]; @@ -124,15 +123,15 @@ export class tools extends plugin { const douRex = /.*video\/(\d+)\/(.*?)/g; const douId = douRex.exec(res)[1]; // const url = `https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=${ douId }`; - const url = `https://www.iesdouyin.com/aweme/v1/web/aweme/detail/?aweme_id=${ douId }&aid=1128&version_name=23.5.0&device_platform=android&os_version=2333`; + const url = `https://www.iesdouyin.com/aweme/v1/web/aweme/detail/?aweme_id=${douId}&aid=1128&version_name=23.5.0&device_platform=android&os_version=2333`; // 默认重试3次,每次间隔1s (防止SyntaxError: Unexpected token b in JSON at position 0) retry( - await (function () { - return fetch(url).then(resp => resp.json()) - }) + await function () { + return fetch(url).then(resp => resp.json()); + } ).then(async resp_json => { const item = resp_json.aweme_detail; - e.reply(`识别:抖音, ${ item.desc }`); + e.reply(`识别:抖音, ${item.desc}`); const url_type_code = item.aweme_type; const url_type = douyinTypeMap[url_type_code]; if (url_type === "video") { @@ -140,7 +139,7 @@ export class tools extends plugin { this.downloadVideo(url_2).then(video => { e.reply( segment.video( - `${ this.defaultPath }${ this.e.group_id || this.e.user_id }/temp.mp4` + `${this.defaultPath}${this.e.group_id || this.e.user_id}/temp.mp4` ) ); }); @@ -155,21 +154,21 @@ export class tools extends plugin { message: segment.image(i.url_list[0]), nickname: this.e.sender.card || this.e.user_id, user_id: this.e.user_id, - }) + }); // 有水印图片列表 // watermark_image_list.push(i.download_url_list[0]); // e.reply(segment.image(i.url_list[0])); } // console.log(no_watermark_image_list) - await this.reply(await Bot.makeForwardMsg(no_watermark_image_list)) + await this.reply(await Bot.makeForwardMsg(no_watermark_image_list)); } - }) + }); }); return true; } // tiktok解析 - async tiktok (e) { + async tiktok(e) { const urlRex = /(http:|https:)\/\/www.tiktok.com\/[A-Za-z\d._?%&+\-=\/#@]*/g; const urlShortRex = /(http:|https:)\/\/vt.tiktok.com\/[A-Za-z\d._?%&+\-=\/#]*/g; let url = e.msg.trim(); @@ -189,7 +188,7 @@ export class tools extends plugin { } const idVideo = await this.getIdVideo(url); // API链接 - const API_URL = `https://api16-normal-c-useast1a.tiktokv.com/aweme/v1/feed/?aweme_id=${ idVideo }&version_code=262&app_name=musical_ly&channel=App&device_id=null&os_version=14.4.2&device_platform=iphone&device_type=iPhone9`; + const API_URL = `https://api16-normal-c-useast1a.tiktokv.com/aweme/v1/feed/?aweme_id=${idVideo}&version_code=262&app_name=musical_ly&channel=App&device_id=null&os_version=14.4.2&device_platform=iphone&device_type=iPhone9`; await axios .get(API_URL, { @@ -210,11 +209,11 @@ export class tools extends plugin { }) .then(resp => { const data = resp.data.aweme_list[0]; - e.reply(`识别:tiktok, ${ data.desc }`); + e.reply(`识别:tiktok, ${data.desc}`); this.downloadVideo(data.video.play_addr.url_list[0], true).then(video => { e.reply( segment.video( - `${ this.defaultPath }${ this.e.group_id || this.e.user_id }/temp.mp4` + `${this.defaultPath}${this.e.group_id || this.e.user_id}/temp.mp4` ) ); }); @@ -223,7 +222,7 @@ export class tools extends plugin { } // bilibi解析 - async bili (e) { + async bili(e) { const urlRex = /(http:|https:)\/\/www.bilibili.com\/[A-Za-z\d._?%&+\-=\/#]*/g; const bShortRex = /(http:|https:)\/\/b23.tv\/[A-Za-z\d._?%&+\-=\/#]*/g; let url = e.msg.trim(); @@ -247,7 +246,7 @@ export class tools extends plugin { // console.log(dynamicId) getDynamic(dynamicId).then(resp => { if (resp.dynamicSrc.length > 0) { - e.reply(`识别:哔哩哔哩动态, ${ resp.dynamicDesc }`); + e.reply(`识别:哔哩哔哩动态, ${resp.dynamicDesc}`); // let dynamicSrcMsg = [] // resp.dynamicSrc.forEach(item => { // dynamicSrcMsg.push({ @@ -266,7 +265,7 @@ export class tools extends plugin { return true; } - const path = `${ this.defaultPath }${ this.e.group_id || this.e.user_id }/`; + const path = `${this.defaultPath}${this.e.group_id || this.e.user_id}/`; if (!fs.existsSync(path)) { mkdirsSync(path); } @@ -278,12 +277,12 @@ export class tools extends plugin { // 获取视频信息,然后发送 fetch( videoId.startsWith("BV") - ? `${ baseVideoInfo }?bvid=${ videoId }` - : `${ baseVideoInfo }?aid=${ videoId }` + ? `${baseVideoInfo}?bvid=${videoId}` + : `${baseVideoInfo}?aid=${videoId}` ) .then(resp => resp.json()) .then(resp => { - e.reply(`识别:哔哩哔哩, ${ resp.data.title }`).catch(err => { + e.reply(`识别:哔哩哔哩, ${resp.data.title}`).catch(err => { e.reply("解析失败,重试一下"); console.log(err); }); @@ -292,9 +291,9 @@ export class tools extends plugin { await getDownloadUrl(url) .then(data => { - this.downBili(`${ path }temp`, data.videoUrl, data.audioUrl) + this.downBili(`${path}temp`, data.videoUrl, data.audioUrl) .then(data => { - e.reply(segment.video(`${ path }temp.mp4`)); + e.reply(segment.video(`${path}temp.mp4`)); }) .catch(err => { console.log(err); @@ -309,9 +308,9 @@ export class tools extends plugin { } // 百科 - async wiki (e) { + async wiki(e) { const key = e.msg.replace(/#|百科|wiki/g, "").trim(); - const url = `https://xiaoapi.cn/API/bk.php?m=json&type=sg&msg=${ encodeURI(key) }`; + const url = `https://xiaoapi.cn/API/bk.php?m=json&type=sg&msg=${encodeURI(key)}`; // const url2 = 'https://api.jikipedia.com/go/auto_complete' Promise.all([ // axios.post(url2, { @@ -345,8 +344,8 @@ export class tools extends plugin { const data = res[0]; // const data2 = res[0] const template = ` - 解释:${ _.get(data, "msg") }\n - 详情:${ _.get(data, "more") }\n + 解释:${_.get(data, "msg")}\n + 详情:${_.get(data, "more")}\n `; // 小鸡解释:${ _.get(data2, 'content') } e.reply(template); @@ -356,7 +355,7 @@ export class tools extends plugin { // 小蓝鸟解析 // 例子:https://twitter.com/chonkyanimalx/status/1595834168000204800 - async twitter (e) { + async twitter(e) { // 配置参数及解析 const reg = /https?:\/\/twitter.com\/[0-9-a-zA-Z_]{1,20}\/status\/([0-9]*)/; const twitterUrl = reg.exec(e.msg); @@ -371,11 +370,11 @@ export class tools extends plugin { .singleTweet(id, { "media.fields": "duration_ms,height,media_key,preview_image_url,public_metrics,type,url,width,alt_text,variants", - expansions: [ "entities.mentions.username", "attachments.media_keys" ], + expansions: ["entities.mentions.username", "attachments.media_keys"], }) .then(resp => { - e.reply(`识别:小蓝鸟学习版,${ resp.data.text }`); - const downloadPath = `${ this.defaultPath }${ this.e.group_id || this.e.user_id }`; + e.reply(`识别:小蓝鸟学习版,${resp.data.text}`); + const downloadPath = `${this.defaultPath}${this.e.group_id || this.e.user_id}`; // 创建文件夹(如果没有过这个群) if (!fs.existsSync(downloadPath)) { mkdirsSync(downloadPath); @@ -384,15 +383,15 @@ export class tools extends plugin { for (let item of resp.includes.media) { if (item.type === "photo") { // 图片 - const filePath = `${ downloadPath }/${ item.url.split("/").pop() }`; + const filePath = `${downloadPath}/${item.url.split("/").pop()}`; this.downloadImg(item.url, downloadPath).then(_ => { e.reply(segment.image(fs.readFileSync(filePath))); - fs.unlinkSync(filePath) + fs.unlinkSync(filePath); }); } else if (item.type === "video") { // 视频 this.downloadVideo(resp.includes.media[0].variants[0].url, true).then(_ => { - e.reply(segment.video(`${ downloadPath }/temp.mp4`)); + e.reply(segment.video(`${downloadPath}/temp.mp4`)); }); } } @@ -401,9 +400,9 @@ export class tools extends plugin { } // 视频解析 - async tx (e) { + async tx(e) { const url = e.msg; - const data = await (await fetch(`https://xian.txma.cn/API/jx_txjx.php?url=${ url }`)).json(); + const data = await (await fetch(`https://xian.txma.cn/API/jx_txjx.php?url=${url}`)).json(); const k = data.url; const name = data.title; if (k && name) { @@ -420,7 +419,7 @@ export class tools extends plugin { } // 请求参数 - async douyinRequest (url) { + async douyinRequest(url) { const params = { headers: { "User-Agent": @@ -442,12 +441,12 @@ export class tools extends plugin { } // 工具:根URL据下载视频 / 音频 - async downloadVideo (url, isProxy = false) { - const groupPath = `${ this.defaultPath }${ this.e.group_id || this.e.user_id }`; + async downloadVideo(url, isProxy = false) { + const groupPath = `${this.defaultPath}${this.e.group_id || this.e.user_id}`; if (!fs.existsSync(groupPath)) { mkdirsSync(groupPath); } - const target = `${ groupPath }/temp.mp4`; + const target = `${groupPath}/temp.mp4`; // 待优化 if (fs.existsSync(target)) { console.log(`视频已存在`); @@ -477,7 +476,7 @@ export class tools extends plugin { }), }); } - console.log(`开始下载: ${ url }`); + console.log(`开始下载: ${url}`); const writer = fs.createWriteStream(target); res.data.pipe(writer); @@ -488,7 +487,7 @@ export class tools extends plugin { } // 工具:找到tiktok的视频id - async getIdVideo (url) { + async getIdVideo(url) { const matching = url.includes("/video/"); if (!matching) { this.e.reply("没找到,正在获取随机视频!"); @@ -499,8 +498,8 @@ export class tools extends plugin { } // acfun解析 - async acfun (e) { - const path = `${ this.defaultPath }${ this.e.group_id || this.e.user_id }/temp/`; + async acfun(e) { + const path = `${this.defaultPath}${this.e.group_id || this.e.user_id}/temp/`; if (!fs.existsSync(path)) { mkdirsSync(path); } @@ -508,15 +507,15 @@ export class tools extends plugin { let inputMsg = e.msg; // 适配手机分享:https://m.acfun.cn/v/?ac=32838812&sid=d2b0991bd6ad9c09 if (inputMsg.includes("m.acfun.cn")) { - inputMsg = `https://www.acfun.cn/v/ac${ /ac=([^&?]*)/.exec(inputMsg)[1] }`; + inputMsg = `https://www.acfun.cn/v/ac${/ac=([^&?]*)/.exec(inputMsg)[1]}`; } parseUrl(inputMsg).then(res => { - e.reply(`识别:猴山,${ res.videoName }`); + e.reply(`识别:猴山,${res.videoName}`); parseM3u8(res.urlM3u8s[res.urlM3u8s.length - 1]).then(res2 => { downloadM3u8Videos(res2.m3u8FullUrls, path).then(_ => { - mergeAcFileToMp4(res2.tsNames, path, `${ path }out.mp4`).then(_ => { - e.reply(segment.video(`${ path }out.mp4`)); + mergeAcFileToMp4(res2.tsNames, path, `${path}out.mp4`).then(_ => { + e.reply(segment.video(`${path}out.mp4`)); }); }); }); @@ -525,11 +524,11 @@ export class tools extends plugin { } // 小红书解析 - async redbook (e) { + async redbook(e) { const msgUrl = /(http:|https:)\/\/(xhslink|xiaohongshu).com\/[A-Za-z\d._?%&+\-=\/#@]*/.exec( e.msg )[0]; - const url = `https://dlpanda.com/zh-CN/xhs?url=${ msgUrl }`; + const url = `https://dlpanda.com/zh-CN/xhs?url=${msgUrl}`; await axios .get(url, { @@ -546,13 +545,13 @@ export class tools extends plugin { const reg = / { - const filepath = `${ downloadPath }/${ /com\/(.*)\?/.exec(addr)[1] }.jpg`; + const filepath = `${downloadPath}/${/com\/(.*)\?/.exec(addr)[1]}.jpg`; const writer = fs.createWriteStream(filepath); resp.data.pipe(writer); return new Promise((resolve, reject) => { @@ -581,8 +580,8 @@ export class tools extends plugin { } // 文献解析 - async literature (e) { - const litReg = /(http:|https:)\/\/doi.org\/[A-Za-z\d._?%&+\-=\/#@]*/ + async literature(e) { + const litReg = /(http:|https:)\/\/doi.org\/[A-Za-z\d._?%&+\-=\/#@]*/; const url = litReg.exec(e.msg.trim())[0]; const waitList = [ "https://sci-hub.se/", @@ -594,15 +593,15 @@ export class tools extends plugin { "https://sci-hub.ru/", ]; const flag = /doi.org\/(.*)/.exec(url)[1]; - const newWaitList = waitList.map((item) => { + const newWaitList = waitList.map(item => { return item + flag; }); await Promise.race(newWaitList).then(resp => { - e.reply(resp) - }) + e.reply(resp); + }); } - async downBili (title, videoUrl, audioUrl) { + async downBili(title, videoUrl, audioUrl) { return Promise.all([ downloadBFile( videoUrl, @@ -634,9 +633,9 @@ export class tools extends plugin { } // 工具:下载一张网络图片 - async downloadImg (img, dir) { + async downloadImg(img, dir) { const filename = img.split("/").pop(); - const filepath = `${ dir }/${ filename }`; + const filepath = `${dir}/${filename}`; const writer = fs.createWriteStream(filepath); return axios .get(img, { @@ -660,7 +659,7 @@ export class tools extends plugin { resolve(filepath); }); }); - writer.on("error", (err) => { + writer.on("error", err => { fs.unlink(filepath, () => { reject(err); }); @@ -670,7 +669,7 @@ export class tools extends plugin { } // 工具:下载pdf文件 - async downloadPDF (url, filename) { + async downloadPDF(url, filename) { return axios({ url: url, responseType: "stream", @@ -678,7 +677,7 @@ export class tools extends plugin { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36", }, - }).then((response) => { + }).then(response => { const writer = fs.createWriteStream(filename); response.data.pipe(writer); return new Promise((resolve, reject) => { diff --git a/config/help.yaml b/config/help.yaml index 50ce1bd..fc0ffc2 100644 --- a/config/help.yaml +++ b/config/help.yaml @@ -33,8 +33,8 @@ title: "#啊?" desc: 啊? - icon: pic5 - title: "#我靠" - desc: 神秘的芒果 + title: "@" + desc: 自定义对话 - group: 工具类合集 list: - icon: translate diff --git a/config/version.yaml b/config/version.yaml index a13819f..cb6ab07 100644 --- a/config/version.yaml +++ b/config/version.yaml @@ -1,13 +1,12 @@ - { - version: 1.0.6, + version: 1.0.7, data: [ + 增加自定义对话进阶功能, 增加SCI论文解析, 适配锅巴插件,方便查看和修改配置, 增加小红书的图片解析, 添加#R帮助获取插件帮助, 添加#R版本获取插件版本, - 更新风控缓解、重构系统文件、增加部分接口撤回操作 - 添加抖音实时监听分享链接, ], } \ No newline at end of file diff --git a/img/example6.png b/img/example6.png new file mode 100644 index 0000000000000000000000000000000000000000..09429cc87c2f79c4d3242c5a42dd7aaa6b295b0d GIT binary patch literal 66579 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�z*^{t6mM9 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�tx2f=x!dZ{r<>0&0yK)>o-V_z5 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�|i7J3qWg}}b!qJrDU@X0yP~IVUnnUUD%6;fm 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