koishi-plugin-kbot
Version:
A muti-function qq bot for koishi
48 lines (47 loc) • 1.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.dynamicStrategy = void 0;
const utils_1 = require("../utils");
const common_1 = require("./common");
const composition_1 = require("./composition");
const _1 = require(".");
const dynamicStrategies = {
add: common_1.bilibiliAdd,
remove: common_1.bilibiliRemove,
list: common_1.bilibiliList,
search: common_1.bilibiliSearch,
vup: composition_1.bilibiliVupCheck,
danmu: composition_1.bilibiliDanmuCheck,
refresh: composition_1.bilibiliRefreshVup,
cookie: composition_1.bilibiliCookie,
batch: common_1.bilibiliBatch,
};
async function dynamicStrategy({ session, options, }, list, ctx, config) {
const strategyName = Object.keys(options).find(key => options[key]);
if (Object.keys(dynamicStrategies).includes(strategyName)) {
try {
let value;
let uid;
if (!['list', 'cookie', 'refresh', 'batch'].includes(strategyName)) {
value = options[strategyName];
uid = await (0, utils_1.uidExtract)(value, { session }, _1.logger, ctx);
if (!uid)
return '未找到该 up, 请输入正确的 up 名 , up uid 或 up 首页链接';
}
else if (strategyName === 'batch') {
value = session.content.split(' ').slice(2);
uid = await Promise.all(value
.join(' ')
.replace(/,/ig, ',')
.split(',')
.map(async (v) => await (0, utils_1.uidExtract)(v.trim(), { session }, _1.logger, ctx)));
uid = [...new Set(uid)];
}
return dynamicStrategies[strategyName]?.({ session, options }, { uid, upName: value }, list, ctx, config);
}
catch (err) {
return err.message;
}
}
}
exports.dynamicStrategy = dynamicStrategy;