mirror of
https://github.com/Jerryplusy/rc-plugin.git
synced 2025-10-14 16:19:18 +00:00
🎈 perf: 优化短链接解析效率 & 🐞 fix: 修复分页导致视频时长估计不准确问题
This commit is contained in:
parent
5fbb319b68
commit
5bbef5ef8a
@ -19,6 +19,7 @@ import { getBiliGptInputText } from "../utils/biliSummary.js";
|
|||||||
import { getBodianAudio, getBodianMv, getBodianMusicInfo } from "../utils/bodian.js";
|
import { getBodianAudio, getBodianMv, getBodianMusicInfo } from "../utils/bodian.js";
|
||||||
import { ChatGPTBrowserClient } from "@waylaidwanderer/chatgpt-api";
|
import { ChatGPTBrowserClient } from "@waylaidwanderer/chatgpt-api";
|
||||||
import { av2BV } from "../utils/bilibili-bv-av-convert.js";
|
import { av2BV } from "../utils/bilibili-bv-av-convert.js";
|
||||||
|
import querystring from "querystring";
|
||||||
|
|
||||||
export class tools extends plugin {
|
export class tools extends plugin {
|
||||||
constructor() {
|
constructor() {
|
||||||
@ -285,7 +286,9 @@ export class tools extends plugin {
|
|||||||
// 短号处理
|
// 短号处理
|
||||||
if (url.includes("b23.tv")) {
|
if (url.includes("b23.tv")) {
|
||||||
const bShortUrl = bShortRex.exec(url)[0];
|
const bShortUrl = bShortRex.exec(url)[0];
|
||||||
await fetch(bShortUrl).then(resp => {
|
await fetch(bShortUrl, {
|
||||||
|
method: "HEAD"
|
||||||
|
}).then(resp => {
|
||||||
url = resp.url;
|
url = resp.url;
|
||||||
});
|
});
|
||||||
} else if (url.includes("www.bilibili.com")) {
|
} else if (url.includes("www.bilibili.com")) {
|
||||||
@ -327,10 +330,13 @@ export class tools extends plugin {
|
|||||||
// 视频信息获取例子:http://api.bilibili.com/x/web-interface/view?bvid=BV1hY411m7cB
|
// 视频信息获取例子:http://api.bilibili.com/x/web-interface/view?bvid=BV1hY411m7cB
|
||||||
// 请求视频信息
|
// 请求视频信息
|
||||||
const videoInfo = await getVideoInfo(url);
|
const videoInfo = await getVideoInfo(url);
|
||||||
const { title, desc, duration, dynamic, stat, aid, cid } = videoInfo;
|
const { title, desc, duration, dynamic, stat, aid, cid, pages } = videoInfo;
|
||||||
// 限制时长
|
// 限制时长 & 考虑分页视频情况
|
||||||
if (duration > this.biliDuration) {
|
const query = querystring.parse(url);
|
||||||
e.reply(`当前视频时长约:${(duration / 60).toFixed(0)}分钟,\n大于管理员设置的最大时长 ${this.biliDuration / 60} 分钟!`);
|
const curPage = query?.p || 0;
|
||||||
|
const curDuration = pages?.[curPage].duration || duration;
|
||||||
|
if (curDuration > this.biliDuration) {
|
||||||
|
e.reply(`当前视频时长约:${(pages?.[curPage].duration / 60).toFixed(0)}分钟,\n大于管理员设置的最大时长 ${this.biliDuration / 60} 分钟!`);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
// 视频信息
|
// 视频信息
|
||||||
|
@ -17,6 +17,7 @@ async function getVideoInfo(url) {
|
|||||||
stat: respData.stat,
|
stat: respData.stat,
|
||||||
aid: respData.aid,
|
aid: respData.aid,
|
||||||
cid: respData.pages?.[0].cid,
|
cid: respData.pages?.[0].cid,
|
||||||
|
pages: respData?.pages,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user