Skip to content

Commit

Permalink
fix: standard pixiv ajax api handle
Browse files Browse the repository at this point in the history
  • Loading branch information
dragon-fish committed Aug 13, 2024
1 parent 260f211 commit 9af4589
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 12 deletions.
5 changes: 3 additions & 2 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -347,8 +347,9 @@ app.plugin(function PluginCollectionSILICore(ctx) {
})
ctx.plugin(PluginPing)
ctx.plugin(PluginPixiv, {
baseURL: env.API_PIXIV_BASE,
pximgURL: env.API_PIXIV_IMG,
apiBaseURL: env.PIXIV_API_BASE,
webBaseURL: env.PIXIV_WEB_BASE,
pximgBaseURL: env.PIXIV_IMG_BASE,
})
ctx.plugin(PluginPowerUser)
ctx.plugin(PluginProfile)
Expand Down
35 changes: 25 additions & 10 deletions src/plugins/pixiv.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@ import { BulkMessageBuilder } from '$utils/BulkMessageBuilder'
import { Fexios } from 'fexios'

const defaultConfigs = {
baseURL: 'https://www.pixiv.net',
pximgURL: '',
apiBaseURL: 'https://www.pixiv.net',
webBaseURL: 'https://www.pixiv.net',
pximgBaseURL: '',
}

export default class PluginPixiv extends BasePlugin<typeof defaultConfigs> {
Expand All @@ -29,9 +30,9 @@ export default class PluginPixiv extends BasePlugin<typeof defaultConfigs> {
'pixiv'
)

const { baseURL = defaultConfigs.baseURL } = this.options
const { apiBaseURL = defaultConfigs.apiBaseURL } = this.options
this.request = new Fexios({
baseURL,
baseURL: apiBaseURL,
headers: {
referer: 'https://www.pixiv.net',
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,ja;q=0.7',
Expand Down Expand Up @@ -78,9 +79,15 @@ export default class PluginPixiv extends BasePlugin<typeof defaultConfigs> {
let info, pages
try {
;[{ data: info }, { data: pages }] = await Promise.all([
req.get(`/ajax/illust/${id}?full=1`),
req.get(`/ajax/illust/${id}/pages`),
req.get(`ajax/illust/${id}?full=1`),
req.get(`ajax/illust/${id}/pages`),
])
if (info.body) {
info = info.body
}
if (pages.body) {
pages = pages.body
}
} catch (error) {
this.logger.warn(error)
return [
Expand Down Expand Up @@ -111,7 +118,7 @@ export default class PluginPixiv extends BasePlugin<typeof defaultConfigs> {
`👍${info.likeCount} ❤️${info.bookmarkCount} 👀${info.viewCount}`,
`发布时间: ${new Date(info.createDate).toLocaleString()}`,
allTags.length ? allTags.join(' ') : null,
new URL(`/i/${id}`, this.options.baseURL).href,
new URL(`/i/${id}`, this.options.webBaseURL).href,
].map((i) =>
typeof i === 'string' ? i.trim().replace(/\n+/g, '\n') : i
)
Expand All @@ -131,7 +138,10 @@ export default class PluginPixiv extends BasePlugin<typeof defaultConfigs> {

let data: any
try {
data = (await req.get(`/ajax/user/${id}?full=1`)).data
data = (await req.get(`ajax/user/${id}?full=1`)).data
if (data.body) {
data = data.body
}
} catch (error) {
this.logger.warn(error)
return [
Expand Down Expand Up @@ -172,11 +182,16 @@ export default class PluginPixiv extends BasePlugin<typeof defaultConfigs> {

makePximgURL(url: string) {
if (url.startsWith('http')) {
if (!this.options.pximgURL) {
if (!this.options.pximgBaseURL) {
return url
}
url = new URL(url).pathname
}
return new URL(url, this.options.pximgURL || this.options.baseURL).href
return new URL(
url,
this.options.pximgBaseURL ||
this.options.apiBaseURL ||
this.options.webBaseURL
).href
}
}

0 comments on commit 9af4589

Please sign in to comment.