From 11bed79a43586dd35b7455bd0fc0367c708770da Mon Sep 17 00:00:00 2001 From: yeyang <746659424@qq.com> Date: Fri, 18 Nov 2022 17:24:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0setu.js=E5=A4=87=E7=94=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/setu.js | 21 ++++++------ model/setu.js | 89 +++++++++++++++++++++++++-------------------------- 2 files changed, 54 insertions(+), 56 deletions(-) diff --git a/apps/setu.js b/apps/setu.js index b5d0b09..e04a633 100644 --- a/apps/setu.js +++ b/apps/setu.js @@ -84,9 +84,9 @@ export class sese extends plugin { let r18 = await setu.getr18(e) - let res = await setu.setuapi(r18, num) + let res = await setu.setuapi(e, r18, num) - if (!res) return e.reply("接口失效") + if (!res) return false setu.sendMsg(e, res) } @@ -101,14 +101,14 @@ export class sese extends plugin { if (cds) return e.reply(` ${lodash.sample(CDMsg)}你的CD还有${cds}`, false, { at: true }) - let msg = e.msg.replace(/#|椰奶tag/g, "").trim() + let tag = e.msg.replace(/#|椰奶tag/g, "").trim() let num = e.msg.match(new RegExp(`(${Numreg})张`)) if (!num) { num = 1 } else { - msg = msg.replace(num[0], "").trim() + tag = tag.replace(num[0], "").trim() num = common.translateChinaNum(num[1]) } @@ -120,21 +120,20 @@ export class sese extends plugin { e.reply(lodash.sample(startMsg)) } - if (!msg) return e.reply("tag为空!!!", false, { at: true }) + if (!tag) return e.reply("tag为空!!!", false, { at: true }) - msg = msg.split(" ") + tag = tag.split(" ") - if (msg.length > 3) return e.reply("tag最多只能指定三个哦~", false, { at: true }) + if (tag.length > 3) return e.reply("tag最多只能指定三个哦~", false, { at: true }) - msg = msg.map((item) => `&tag=${item}`).join("") + tag = tag.map((item) => `&tag=${item}`).join("") let r18 = await setu.getr18(e) //接口 - let res = await setu.setuapi(r18, num, msg) + let res = await setu.setuapi(e, r18, num, tag) - if (!res) return e.reply("❎ 接口失效") + if (!res) return false; - if (res.length == 0) return e.reply("没有找到相关的tag", false, { at: true }) //发送消息 setu.sendMsg(e, res) } diff --git a/model/setu.js b/model/setu.js index c52e970..79d8799 100644 --- a/model/setu.js +++ b/model/setu.js @@ -68,7 +68,7 @@ export default new class setu { * @param {String} tag 关键词 * @return {Object} */ - async setuapi(r18, num = 1, tag = "") { + async setuapi(e, r18, num = 1, tag = "") { let api = "https://api.lolicon.app/setu/v2"; if (fs.existsSync(this.apicfg)) { let apicfg = await Cfg.getread(this.apicfg) @@ -81,8 +81,33 @@ export default new class setu { } let url = `${api}?r18=${r18}&num=${num}${tag}&proxy=${proxy}&size=${size}`; let result = await fetch(url).then(res => res.json()).catch(err => console.log(err)) - if (!result) return false; - return result.data + if (!result) { + logger.mark("[椰奶setu]启用备用接口") + let apiReserve = `https://sex.nyan.xyz/api/v2/?r18=${r18}&num=${num}${tag}`; + result = await fetch(apiReserve).then(res => res.json()).catch(err => console.log(err)) + if (!result) { + e.reply("❎ 接口失效") + return false; + } + } + if (lodash.isEmpty(result.data)) { + e.reply("没有找到相关的tag", false, { at: true }) + return false; + } + //消息 + let msg = result.data.map(item => { + let { pid, title, tags, author, r18, urls, url } = item + return [ + `${lodash.sample(sendMsgs)}\n`, + `标题:${title}\n`, + `画师:${author}\n`, + `pid:${pid}\n`, + r18 ? `r18:${r18}\n` : "", + `tag:${lodash.truncate(tags.join(","))}\n`, + segment.image(url || urls?.original || urls?.regular || urls?.small), + ] + }) + return msg } @@ -92,30 +117,14 @@ export default new class setu { * @param {Array} img 消息数组 * @return {Boolean} */ - async sendMsg(e, img) { - //风控消息 - let isfk = `呃....被风控了,感觉不太妙呢~给你个链接冲吧~\nhttps://pixiv.re/${img[0].pid}.jpg` + async sendMsg(e, msg) { //默认CD let cd = this.def.cd //获取当前时间 let present = parseInt(new Date().getTime() / 1000) - //消息 - let msg = []; - for (let i of img) { - let { pid, title, tags, author, r18, urls } = i - msg.push([ - `${lodash.sample(sendMsgs)}\n`, - `标题:${title}\n`, - `画师:${author}\n`, - `pid:${pid}\n`, - `r18:${r18}\n`, - `tag:${lodash.truncate(tags.join(","))}\n`, - segment.image(urls.original || urls.regular || urls.small), - ]) - } - //发送消息 - let res = Cfg.getCDsendMsg(e, msg, false, false) + //发送消息 + let res = await Cfg.getCDsendMsg(e, msg, false) if (e.isGroup) { let groupCD = {}; //获取CD @@ -123,38 +132,28 @@ export default new class setu { groupCD = await Cfg.getread(this.path) if (groupCD[e.group_id]) cd = groupCD[e.group_id].cd } - - if (res) { - if (!e.isMaster) { - if (cd != 0) { - this.temp[e.user_id + e.group_id] = present + cd - setTimeout(() => { - delete this.temp[e.user_id + e.group_id]; - }, cd * 1000); - } + if (!e.isMaster && res) { + if (cd != 0) { + this.temp[e.user_id + e.group_id] = present + cd + setTimeout(() => { + delete this.temp[e.user_id + e.group_id]; + }, cd * 1000); } - } else { - e.reply(isfk) - logger.error("[椰奶]Bot被风控,发送被风控消息") } + } else { //私聊 if (fs.existsSync(this.path_s)) { let friendCD = await Cfg.getread(this.path_s) if (friendCD[e.user_id]) cd = friendCD[e.user_id] } - if (res) { - if (!e.isMaster) { - if (cd != 0) { - this.temp[e.user_id] = present + cd - setTimeout(() => { - delete this.temp[e.user_id]; - }, cd * 1000); - } + if (!e.isMaster && res) { + if (cd != 0) { + this.temp[e.user_id] = present + cd + setTimeout(() => { + delete this.temp[e.user_id]; + }, cd * 1000); } - } else { - e.reply(isfk) - logger.error("[椰奶]Bot被风控,发送被风控消息") } } }