From bb523d1be2ff970f3323c9eec027ca03d7b9c153 Mon Sep 17 00:00:00 2001 From: zhiyu <542716863@qq.com> Date: Sun, 21 Jan 2024 23:04:37 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20=E6=96=B0=E5=A2=9E=E5=BF=AB?= =?UTF-8?q?=E6=89=8B=E8=A7=A3=E6=9E=90=EF=BC=88=E6=B5=8B=E8=AF=95=E9=98=B6?= =?UTF-8?q?=E6=AE=B5=20&=20=E7=BD=91=E9=A1=B5=E5=9C=B0=E5=9D=80=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 新增快手解析(测试阶段),目前只支持网页地址解析 2. 修复b23解析可能出现的网络问题 --- apps/tools.js | 50 +++++++++++++++++++++++++++++++- config/help.yaml | 6 ++-- config/version.yaml | 4 +-- resources/img/icon/kuaishou.png | Bin 0 -> 4092 bytes 4 files changed, 54 insertions(+), 6 deletions(-) create mode 100644 resources/img/icon/kuaishou.png diff --git a/apps/tools.js b/apps/tools.js index cd962e8..651196c 100644 --- a/apps/tools.js +++ b/apps/tools.js @@ -301,7 +301,7 @@ export class tools extends plugin { let url = e.msg === undefined ? e.message.shift().data.replaceAll("\\", "") : e.msg.trim(); // 短号处理 if (url.includes("b23.tv")) { - const bShortUrl = bShortRex.exec(url)[0]; + const bShortUrl = bShortRex.exec(url)?.[0]; await fetch(bShortUrl, { method: "HEAD" }).then(resp => { @@ -784,7 +784,55 @@ export class tools extends plugin { * @return {Promise} */ async kuaishou(e) { + // 例子:https://www.kuaishou.com/short-video/3xkfs8p4pnd67p4?authorId=3xkznsztpwetngu&streamSource=find&area=homexxbrilliant + // https://v.m.chenzhongtech.com/fw/photo/3xburnkmj3auazc + const msg = e.msg; + let video_id; + if (msg.includes('/fw/photo/')) { + video_id = msg.match(/\/fw\/photo\/([^/?]+)/)[1]; + } else if (msg.includes("short-video")) { + video_id = msg.match(/short-video\/([^/?]+)/)[1]; + } else { + e.reply("无法提取快手的信息,请重试或者换一个视频!") + return + } + // 提取视频 + const videoUrl = `https://www.kuaishou.com/short-video/${video_id}`; + // 发送GET请求 + const response = await axios.get(videoUrl, { + headers: { + 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', + 'Accept-Language': 'zh-CN,zh;q=0.9', + 'Cache-Control': 'no-cache', + 'Connection': 'keep-alive', + 'Cookie': 'kpf=PC_WEB; clientid=3; did=web_c5627223fe1e796669894e6cb74f1461; _ga=GA1.1.1139357938.1696318390; didv=1696329758000; _ga_0P9YPW1GQ3=GS1.1.1696659232.14.0.1696659232.0.0.0; kpn=KUAISHOU_VISION', + 'Pragma': 'no-cache', + 'Sec-Fetch-Dest': 'document', + 'Sec-Fetch-Mode': 'navigate', + 'Sec-Fetch-Site': 'none', + 'Sec-Fetch-User': '?1', + 'Upgrade-Insecure-Requests': '1', + 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36', + 'sec-ch-ua': '"Google Chrome";v="117", "Not;A=Brand";v="8", "Chromium";v="117"', + 'sec-ch-ua-mobile': '?0', + 'sec-ch-ua-platform': '"macOS"', + }, + timeout: 10000 // 设置超时时间 + }); + + // 使用正则表达式提取视频数据 + const videoDataMatch = response.data.match(/"photoH265Url":"(.*?)"/); + let videoData = videoDataMatch ? videoDataMatch[1] : null; + if (!videoData) { + e.reply("快手解析失败,可能原因:解析太多暂时失效,过一段时间再解析!"); + return; + } + e.reply("识别:快手") + videoData = decodeURIComponent(videoData).replace(/\\u002F/g, '/'); + this.downloadVideo(videoData).then(path => { + e.reply(segment.video(path + "/temp.mp4")); + }); } /** diff --git a/config/help.yaml b/config/help.yaml index 98d5e3e..9f3188e 100644 --- a/config/help.yaml +++ b/config/help.yaml @@ -47,12 +47,12 @@ - icon: redbook title: "小红书" desc: 小红书分享实时下载 + - icon: kuaishou + title: "快手(测试阶段)" + desc: 快手分享实时下载 - icon: literature title: "论文" desc: SCI论文实时解析 - - icon: netease - title: "网易云音乐" - desc: 网易云音乐解析 - icon: bodian title: "波点音乐" desc: 波点云音乐点解析 diff --git a/config/version.yaml b/config/version.yaml index a5dc360..c5fbb65 100644 --- a/config/version.yaml +++ b/config/version.yaml @@ -1,9 +1,9 @@ - { - version: 1.1.1, + version: 1.1.2, data: [ + 新增快手解析功能, 新增竹白百科功能, - 新增Instagram解析功能, 重构翻译功能, 适配锅巴插件,方便查看和修改配置, 添加#R帮助获取插件帮助, diff --git a/resources/img/icon/kuaishou.png b/resources/img/icon/kuaishou.png new file mode 100644 index 0000000000000000000000000000000000000000..0809d93fd4eb93781c1ea1f959a18b95267abf46 GIT binary patch literal 4092 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