Files
yenai-plugin/apps/pixiv.js
2023-01-05 03:52:41 +08:00

230 lines
6.9 KiB
JavaScript

import plugin from '../../../lib/plugins/plugin.js'
import moment from 'moment';
import { Config } from '../components/index.js'
import { Cfg, Pixiv, common, setu } from '../model/index.js'
//类型
let rankType = new Pixiv().RankReg
let numReg = "[一壹二两三四五六七八九十百千万亿\\d]+"
//正则
let rankingrReg = new RegExp(`^#?看看((\\d{4}-\\d{1,2}-\\d{1,2})的)?(${Object.keys(rankType).join("|")})(r18)?榜\\s?(第(${numReg})页)?$`, "i")
let tagReg = new RegExp('^#?tag(pro)?搜图(.*)$', "i")
let pidReg = new RegExp('^#?pid搜图\\s?(\\d+)$', "i")
let uidReg = new RegExp('^#?uid搜图(.*)$', "i")
let randomImgReg = new RegExp(`^#?来(${numReg})?张(好(康|看)(的|哒)|hkd|涩图)$|#有内鬼$`)
let relatedReg = new RegExp(`^#?看?看?相关作品(\\d+)$`);
export class example extends plugin {
constructor() {
super({
name: 'pixiv',
event: 'message',
priority: 500,
rule: [
{
reg: pidReg,
fnc: 'saucenaoPid'
},
{
reg: rankingrReg,
fnc: 'pixivRanking'
},
{
reg: tagReg,
fnc: 'saucenaoTags'
},
{
reg: '^#?(查看|获取)?热门(t|T)(a|A)(g|G)$',
fnc: 'trendTags'
},
{
reg: uidReg,
fnc: 'saucenaoUid'
},
{
reg: randomImgReg,
fnc: 'randomImg'
},
{
reg: relatedReg,
fnc: 'relatedWorks'
},
{
reg: '^#?(P|p)ximg(pro)?$',
fnc: 'pximg'
},
]
})
}
//pid搜图
async saucenaoPid(e) {
if (!e.isMaster) {
if (!Config.getGroup(e.group_id).sese) return e.reply("主人没有开放这个功能哦(*/ω\*)")
}
await e.reply("你先别急,正在给你搜了(。-ω-)zzz")
let regRet = pidReg.exec(e.msg)
let res = await new Pixiv(e).Worker(regRet[1])
if (!res) return;
let { msg, img } = res
await e.reply(msg)
img.length == 1 || /R-18/.test(msg[4]) ? Cfg.recallsendMsg(e, img) : Cfg.getRecallsendMsg(e, img, false)
return true;
}
//p站排行榜
async pixivRanking(e) {
let regRet = rankingrReg.exec(e.msg)
if (!e.isMaster) {
if (!Config.getGroup(e.group_id).sese || regRet[4] && !await setu.getr18(e)) return e.reply("主人没有开放这个功能哦(*/ω\*)")
}
await e.reply("你先别急,马上去给你找哦ε(*´・ω・)з")
let day = moment().hour() >= 12 ? 1 : 2
let date = moment().subtract(day, "days").format("YYYY-MM-DD")
if (regRet[2]) date = regRet[2]
let page = common.translateChinaNum(regRet[6] || "1")
let res = await new Pixiv(e).Rank(page, date, regRet[3], !!regRet[4], regRet[2])
if (!res) return
Cfg.getRecallsendMsg(e, res, false)
return true;
}
/**关键词搜图 */
async saucenaoTags(e) {
let regRet = tagReg.exec(e.msg)
if (!e.isMaster) {
if (!Config.getGroup(e.group_id).sese || !Config.getGroup(e.group_id).sesepro && regRet[1]) {
return e.reply("主人没有开放这个功能哦(*/ω\*)")
}
}
await e.reply("你先别急,正在给你搜了(。-ω-)zzz")
let tag = regRet[2]
let pagereg = new RegExp(`第(${numReg})页`)
let page = pagereg.exec(e.msg)
if (page) {
tag = tag.replace(page[0], "")
page = common.translateChinaNum(page[1])
} else {
page = "1"
}
let res = null;
if (regRet[1]) {
res = await new Pixiv(e).searchTagspro(tag, page)
} else {
res = await new Pixiv(e).searchTags(tag, page)
}
if (!res) return
Cfg.getRecallsendMsg(e, res, false)
return true;
}
/**获取热门tag */
async trendTags(e) {
if (!e.isMaster) {
if (!Config.getGroup(e.group_id).sese) return e.reply("主人没有开放这个功能哦(*/ω\*)")
}
await e.reply("你先别急,马上去给你找哦ε(*´・ω・)з")
let res = await new Pixiv(e).gettrend_tags()
if (!res) return
Cfg.getRecallsendMsg(e, res, false)
}
/**以uid搜图**/
async saucenaoUid(e) {
if (!e.isMaster) {
if (!Config.getGroup(e.group_id).sese) return e.reply("主人没有开放这个功能哦(*/ω\*)")
}
await e.reply("你先别急,正在给你搜了(。-ω-)zzz")
let regRet = uidReg.exec(e.msg)
let key = regRet[1]
let pagereg = new RegExp(`第(${numReg})页`)
let page = pagereg.exec(e.msg)
if (page) {
key = key.replace(page[0], "")
page = page[1]
} else {
page = "1"
}
page = common.translateChinaNum(page)
let res = await new Pixiv(e).public(key, page)
if (!res) return
Cfg.getRecallsendMsg(e, res, false)
}
//随机原创插画
async randomImg(e) {
if (!e.isMaster) {
if (!Config.getGroup(e.group_id).sese) return e.reply("主人没有开放这个功能哦(*/ω\*)")
}
await e.reply("你先别急,马上去给你找哦ε(*´・ω・)з")
let regRet = randomImgReg.exec(e.msg)
let num = regRet[1] || 1
if (num > 50) {
e.reply("你要的太多辣,奴家只给你一张辣(•́へ•́ ╬)")
num = 1
}
num = common.translateChinaNum(num)
let res = await new Pixiv(e).getrandomimg(num);
if (!res) return
Cfg.getRecallsendMsg(e, res, false)
}
//相关作品
async relatedWorks(e) {
if (!e.isMaster) {
if (!Config.getGroup(e.group_id).sese) return e.reply("主人没有开放这个功能哦(*/ω\*)")
}
await e.reply("你先别急,马上去给你找哦ε(*´・ω・)з")
let regRet = relatedReg.exec(e.msg)
let msg = await new Pixiv(e).getrelated_works(regRet[1])
if (!msg) return
Cfg.getRecallsendMsg(e, msg, false)
}
//p站单图
async pximg(e) {
let pro = /pro/.test(e.msg)
if (!e.isMaster) {
if (!Config.getGroup(e.group_id).sese || !Config.getGroup(e.group_id).sesepro && pro) {
return e.reply("主人没有开放这个功能哦(*/ω\*)")
}
}
let msg = await new Pixiv(e).getPximg(pro)
pro ? Cfg.getRecallsendMsg(e, [msg], false) : Cfg.recallsendMsg(e, msg)
}
}