增加uid搜图

This commit is contained in:
yeyang
2022-10-24 19:13:59 +08:00
parent a8eb3020c2
commit 694c385cb8
3 changed files with 108 additions and 24 deletions

View File

@@ -1,10 +1,11 @@
# 1.0.3
* 增加`#看看日|周|月|男性向|女性向榜`Pixiv榜单
* 增加`#pid搜图`以Pixiv插画Id搜图
* 增加`tag搜图`以tag关键词搜图
* 增加`#tag搜图`以tag关键词搜图
* 增加`#coser`
* 增加`#waifu`
* 增加`#查看热门tag`
* 增加`#uid搜图`用画师的**uid**或**画师名**进行搜索
# 1.0.2

View File

@@ -20,6 +20,7 @@ let type = {
let listreg = new RegExp(`^#?看看(${Object.keys(type).join("|")})榜\\s?(第(\\d+)页)?$`)
let tagreg = new RegExp('^#?tag搜图(.*)$', "i")
let pidreg = new RegExp('^#?pid搜图(\\d+)$', "i")
let uidreg = new RegExp('^#?uid搜图(.*)$', "i")
export class example extends plugin {
constructor() {
@@ -43,7 +44,11 @@ export class example extends plugin {
{
reg: '^#?查看热门(t|T)(a|A)(g|G)$',
fnc: 'trend_tags'
}
},
{
reg: uidreg,
fnc: 'saucenaoUid'
},
]
})
}
@@ -93,7 +98,7 @@ export class example extends plugin {
let date = moment().subtract(day, "days").format("YYYY-MM-DD")
let page = regRet[3] ? regRet[3] : "1"
let page = regRet[3] || "1"
let res = await new Pixiv(e).Rank(page, date, mode)
@@ -146,5 +151,31 @@ export class example extends plugin {
Cfg.getCDsendMsg(e, res, false)
}
/**以uid搜图**/
async saucenaoUid(e) {
if (!e.isMaster) {
if (!Config.Notice.sese) return
}
let regRet = uidreg.exec(e.msg)
let key = regRet[1]
let pagereg = new RegExp("第(\\d+)页")
let page = pagereg.exec(e.msg)
if (page) {
key = key.replace(page[0], "")
page = page[1]
} else {
page = "1"
}
let res = await new Pixiv(e).public(key, page)
if (!res) return
Cfg.getCDsendMsg(e, res, false)
}
}

View File

@@ -13,14 +13,12 @@ export default class Pixiv {
*/
async Worker(ids) {
let api = `https://api.imki.moe/api/pixiv/illust?id=${ids}`
let res = await fetch(api).then(res => res.json()).catch(err => console.log(err))
let res = await this.getfetch(api)
if (!res) {
this.e.reply("接口失效辣!!!")
return false
};
if (!res) return false
if (res.error) {
this.e.reply("口字很拉跨,请稍后重试>_<")
this.e.reply(`先用直链解决一下https://pixiv.re/${ids}.jpg`)
return false;
}
res = res.illust
@@ -64,11 +62,8 @@ export default class Pixiv {
"week_rookie_manga": "漫画新秀周榜",
}
let api = `https://api.bbmang.me/ranks?page=${page}&date=${date}&mode=${mode}&pageSize=30`
let res = await fetch(api).then(res => res.json()).catch(err => console.log(err))
if (!res) {
this.e.reply("接口失效辣!!!")
return false
};
let res = await this.getfetch(api)
if (!res) return false
if (!res.data) {
this.e.reply("可能没有榜单哦~")
return false
@@ -105,11 +100,8 @@ export default class Pixiv {
*/
async searchTags(tag, page = "1") {
let api = `https://www.vilipix.com/api/v1/picture/public?limit=30&tags=${tag}&sort=new&offset=${(page - 1) * 30}`
let res = await fetch(api).then(res => res.json()).catch(err => console.log(err))
if (!res) {
this.e.reply("接口失效辣!!!")
return false
};
let res = await this.getfetch(api)
if (!res) return false
if (res.data.count == 0) {
this.e.reply("呜呜呜,人家没有找到相关的插画>_<")
return false;
@@ -118,7 +110,7 @@ export default class Pixiv {
let pageall = Math.ceil(res.data.count / 30)
if (page > pageall) {
this.e.reply(["你他喵的觉得这河里吗!!!", segment.face(215)])
this.e.reply("啊啊啊,淫家给不了你那么多辣~~")
return false
}
@@ -147,12 +139,9 @@ export default class Pixiv {
async gettrend_tags() {
let api = "https://api.imki.moe/api/pixiv/tags"
let res = await fetch(api).then(res => res.json()).catch(err => console.log(err))
let res = await this.getfetch(api)
if (!res) {
this.e.reply("口子太拉,多半是寄了>_<")
return false
}
if (!res) return false
if (!res.trend_tags) {
this.e.reply("呜呜呜,没有获取到数据>_<")
return false
@@ -174,4 +163,67 @@ export default class Pixiv {
return list
}
/**
* @description: 用户uid搜图
* @param {String} uid 用户uid
* @param {String} page 页数
* @return {Array}
*/
async public(keyword, page = "1") {
let userapi = `https://www.vilipix.com/api/v1/search/user?type=author&keyword=${keyword}&limit=30&offset=0`
let user = await this.getfetch(userapi)
if (!user) return false
if (user.data.count == 0) {
this.e.reply("呜呜呜,人家没有找到这个淫>_<")
return false;
}
let { user_id: uid, nick_name, avatar, desc } = user.data.rows[0]
let api = `https://www.vilipix.com/api/v1/picture/public?sort=new&type=0&author_user_id=${uid}&limit=30&offset=${(page - 1) * 30}`
let res = await this.getfetch(api)
if (!res) return false
if (res.data.count == 0) {
this.e.reply("Σ(っ °Д °;)っ这个淫居然没有插画")
return false;
}
let pageall = Math.ceil(res.data.count / 30)
if (page > pageall) {
this.e.reply("这个淫已经没有涩图给你辣~~")
return false
}
let list = [
[
segment.image(avatar),
`\nuid${uid}\n`,
`画师:${nick_name}\n`,
`介绍:${lodash.truncate(desc)}`
],
`共找到${res.data.count}张插画`,
`当前为第${page}页,共${pageall}`
]
for (let i of res.data.rows) {
let { picture_id, title, regular_url, tags } = i
list.push([
`标题:${title}\n`,
`插画ID${picture_id}\n`,
`Tag${lodash.truncate(tags)}\n`,
segment.image(regular_url)
])
}
return list
}
/**
* @description: 请求api
* @param {String} url 链接
* @return {Object}
*/
async getfetch(url) {
return await fetch(url).then(res => res.json()).catch(err => {
this.e.reply("接口失效辣!!!")
console.log(err)
return false;
})
}
}