feat: 新增Netease MV识别(Beta)

This commit is contained in:
zhiyu1998 2024-07-26 16:21:00 +08:00
parent 7cf994f36c
commit dac8ff5064
2 changed files with 39 additions and 10 deletions

View File

@ -297,7 +297,7 @@ export class tools extends plugin {
// 超过阈值,不发送的情况 // 超过阈值,不发送的情况
const dyCover = cover.url_list?.pop(); const dyCover = cover.url_list?.pop();
// logger.info(cover.url_list); // logger.info(cover.url_list);
e.reply([segment.image(dyCover) ,`识别:抖音, ${ item.desc }\n e.reply([segment.image(dyCover), `识别:抖音, ${ item.desc }\n
${ DIVIDING_LINE.replace('{}', '限制说明') }\n当前视频时长约${ Math.trunc(dyDuration / 60) }分钟\n大于管理员设置的最大时长 ${ durationThreshold / 60 } 分钟`]) ${ DIVIDING_LINE.replace('{}', '限制说明') }\n当前视频时长约${ Math.trunc(dyDuration / 60) }分钟\n大于管理员设置的最大时长 ${ durationThreshold / 60 } 分钟`])
// 如果开启评论的就调用 // 如果开启评论的就调用
await this.douyinComment(e, douId, headers); await this.douyinComment(e, douId, headers);
@ -356,7 +356,7 @@ export class tools extends plugin {
await this.douyinComment(e, douId, headers); await this.douyinComment(e, douId, headers);
} catch (err) { } catch (err) {
logger.error(err); logger.error(err);
e.reply(`Cookie 过期或者 Cookie 没有填写,请参考\n${HELP_DOC}\n尝试无效后可以到官方QQ群[575663150]提出 bug 等待解决`) e.reply(`Cookie 过期或者 Cookie 没有填写,请参考\n${ HELP_DOC }\n尝试无效后可以到官方QQ群[575663150]提出 bug 等待解决`)
} }
return true; return true;
} }
@ -376,7 +376,7 @@ export class tools extends plugin {
new URLSearchParams(new URL(dyCommentUrl).search).toString(), new URLSearchParams(new URL(dyCommentUrl).search).toString(),
headers["User-Agent"], headers["User-Agent"],
); );
const commentsResp = await axios.get(`${dyCommentUrl}&a_bogus=${ abParam }`, { const commentsResp = await axios.get(`${ dyCommentUrl }&a_bogus=${ abParam }`, {
headers headers
}) })
// logger.info(headers) // logger.info(headers)
@ -503,7 +503,7 @@ export class tools extends plugin {
e.reply([ e.reply([
segment.image(user_cover), segment.image(user_cover),
segment.image(keyframe), segment.image(keyframe),
`识别:哔哩哔哩直播,${title}${description ? `\n\n简述:${description}\n` : ''}${tags ? `标签:${tags}\n` : ''}` `识别:哔哩哔哩直播,${ title }${ description ? `\n\n简述:${ description }\n` : '' }${ tags ? `标签:${ tags }\n` : '' }`
]); ]);
return true; return true;
} }
@ -1129,10 +1129,39 @@ export class tools extends plugin {
} }
// 判断海外 // 判断海外
const isOversea = await this.isOverseasServer(); const isOversea = await this.isOverseasServer();
// 自动选择 API
const autoSelectNeteaseApi = isOversea ? NETEASE_SONG_DOWNLOAD : NETEASE_API_CN;
// mv截断
if (message.includes("mv")) {
const AUTO_NETEASE_MV_DETAIL = autoSelectNeteaseApi + "/mv/detail?mvid={}";
const AUTO_NETEASE_MV_URL = autoSelectNeteaseApi + "/mv/url?id={}";
// logger.info(AUTO_NETEASE_MV_DETAIL.replace("{}", id));
// logger.info(AUTO_NETEASE_MV_URL.replace("{}", id));
const [mvDetailData, mvUrlData] = await Promise.all([
axios.get(AUTO_NETEASE_MV_DETAIL.replace("{}", id), {
headers: {
"User-Agent": COMMON_USER_AGENT,
}
}),
axios.get(AUTO_NETEASE_MV_URL.replace("{}", id), {
headers: {
"User-Agent": COMMON_USER_AGENT,
}
})
]);
const { name: mvName, artistName: mvArtist, cover: mvCover } = mvDetailData.data?.data;
e.reply([segment.image(mvCover), `识别网易云MV${ mvName } - ${ mvArtist }`]);
// logger.info(mvUrlData.data)
const { url: mvUrl } = mvUrlData.data?.data;
this.downloadVideo(mvUrl).then(path => {
this.sendVideoToUpload(e, `${ path }/temp.mp4`)
});
return;
}
// 国内解决方案替换为国内API (其中NETEASE_API_CN是国内基址) // 国内解决方案替换为国内API (其中NETEASE_API_CN是国内基址)
const AUTO_NETEASE_SONG_DOWNLOAD = isOversea ? NETEASE_SONG_DOWNLOAD : `${ NETEASE_API_CN }/song/url?id={}`; const AUTO_NETEASE_SONG_DOWNLOAD = autoSelectNeteaseApi + "/song/url?id={}";
const AUTO_NETEASE_SONG_DETAIL = isOversea ? NETEASE_SONG_DETAIL : `${ NETEASE_API_CN }/song/detail?ids={}`; const AUTO_NETEASE_SONG_DETAIL = autoSelectNeteaseApi + "/song/detail?ids={}";
logger.info(AUTO_NETEASE_SONG_DOWNLOAD.replace("{}", id)); // logger.info(AUTO_NETEASE_SONG_DOWNLOAD.replace("{}", id));
// 请求netease数据 // 请求netease数据
axios.get(AUTO_NETEASE_SONG_DOWNLOAD.replace("{}", id), { axios.get(AUTO_NETEASE_SONG_DOWNLOAD.replace("{}", id), {
headers: { headers: {
@ -1705,7 +1734,7 @@ export class tools extends plugin {
e.reply(`识别:图片翻译,请稍等...`, true, { recallMsg: 60 }); e.reply(`识别:图片翻译,请稍等...`, true, { recallMsg: 60 });
const refImgDownloadPath = this.getCurDownloadPath(e); const refImgDownloadPath = this.getCurDownloadPath(e);
await downloadImg(refImgUrl, refImgDownloadPath, "demo.png"); await downloadImg(refImgUrl, refImgDownloadPath, "demo.png");
const { ans: kimiAns, model } = await builder.openai_pic(`${refImgDownloadPath}/demo.png`); const { ans: kimiAns, model } = await builder.openai_pic(`${ refImgDownloadPath }/demo.png`);
const Msg = await this.makeForwardMsg(e, [`「R插件 x ${ model }」联合为您识别内容:`, kimiAns]); const Msg = await this.makeForwardMsg(e, [`「R插件 x ${ model }」联合为您识别内容:`, kimiAns]);
await e.reply(Msg); await e.reply(Msg);
return true; return true;

View File

@ -126,14 +126,14 @@ export const GENERAL_REQ_LINK_3 = {
* 获取网易云歌曲下载链接 * 获取网易云歌曲下载链接
* @type {string} * @type {string}
*/ */
export const NETEASE_SONG_DOWNLOAD = "https://neteasecloudmusicapi.vercel.app/song/url?id={}" export const NETEASE_SONG_DOWNLOAD = "https://neteasecloudmusicapi.vercel.app"
/** /**
* 获取网易云歌曲详情 * 获取网易云歌曲详情
* 致谢 NeteaseCloudMusicApihttps://gitlab.com/Binaryify/neteasecloudmusicapi * 致谢 NeteaseCloudMusicApihttps://gitlab.com/Binaryify/neteasecloudmusicapi
* @type {string} * @type {string}
*/ */
export const NETEASE_SONG_DETAIL = "https://neteasecloudmusicapi.vercel.app/song/detail?ids={}" export const NETEASE_SONG_DETAIL = "https://neteasecloudmusicapi.vercel.app"
/** /**
* 国内网易云服务如果有大佬可以有闲置的服务器可以到群里赞助 * 国内网易云服务如果有大佬可以有闲置的服务器可以到群里赞助