koishi-plugin-steam-family-bot
Version:
一个用于新版 Steam 家庭的库存监控 koishi Bot 插件
99 lines • 3.82 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.apply = exports.inject = exports.name = void 0;
const schedules_1 = __importDefault(require("./schedules"));
const interface_1 = require("./interface");
const db_1 = require("./db");
const steam_family_bot_core_1 = require("steam-family-bot-core");
const services_1 = require("./services");
const session_1 = require("./session");
const render_1 = require("./utils/render");
const js_yaml_1 = require("js-yaml");
__exportStar(require("./config"), exports);
exports.name = 'koishi-steam-family-lib-monitor';
exports.inject = {
required: ['database', 'cron'],
optional: ['puppeteer'],
};
function apply(ctx, config) {
// @ts-ignore
const baseLogger = ctx.logger('steam-family-lib-monitor');
const i18n = config.i18nMap;
Object.keys(i18n).forEach((k) => {
try {
const v = i18n[k];
(0, interface_1.loadI18nConfig)(k, (0, js_yaml_1.load)(v));
}
catch (e) {
baseLogger.error(`load i18n ${k} error`, e);
}
});
(0, db_1.dbInit)(ctx, config);
const registerCmd = registerFn(ctx, config);
(0, steam_family_bot_core_1.steamCommands)().map(registerCmd);
ctx
.command('slm <prompts:text>')
.alias('slm')
.action(async ({ session, options }, input) => {
await session.send(input);
});
(0, schedules_1.default)(ctx, config, baseLogger);
}
exports.apply = apply;
const regex = /^(.+):(.+?)\??$/;
function extractKoiOptionDesc(description) {
let desc = description;
const [, fullname, type] = regex.exec(desc);
const optional = desc.endsWith('?');
desc = `${fullname}:${type}`;
desc = optional ? `[${desc}]` : `<${desc}>`;
return desc;
}
const registerFn = (ctx, config) => {
//@ts-ignore
const baseLogger = ctx.logger('steam-family-lib-monitor');
const logger = baseLogger.extend('cmd');
const steamService = new services_1.SteamService(ctx, config);
const render = new render_1.KoishiImgRender(ctx, config);
let tmpFileStorage;
if (config.uploadImageToS3.enable) {
tmpFileStorage = new steam_family_bot_core_1.TmpFileStorage(config);
}
return (c) => {
let cmd = ctx.command(`slm.${c.name}`);
cmd = c.aliases.reduce((acc, alias) => alias.option
? acc.alias(alias.alias, alias.option)
: acc.alias(alias.alias), cmd);
cmd = c.options.reduce((acc, option) => acc.option(option.name, extractKoiOptionDesc(option.description)), cmd);
cmd.action(async ({ session, options }, input) => {
const kSession = new session_1.KSession(session, tmpFileStorage);
await c.callback({
render,
steamService,
logger,
session: kSession,
options,
input,
rawInput: input,
});
});
};
};
//# sourceMappingURL=index.js.map