koishi-plugin-beatsaber-bot
Version:
一个 用于 BeatSaber 的 koishi Bot 插件
34 lines (33 loc) • 1.42 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ScoreMonitor = void 0;
const koishi_1 = require("koishi");
const dayjs_1 = __importDefault(require("dayjs"));
const isBetween_1 = __importDefault(require("dayjs/plugin/isBetween"));
dayjs_1.default.extend(isBetween_1.default);
const ScoreMonitor = (ctx, config, render, api, logger) => {
ctx.cron(config.tempCron, async () => {
logger.info('trigger lb score report, accept', (0, dayjs_1.default)().format('YYYY-MM-DD HH:mm:ss'));
const res = await ctx.database.get('BSBotSubscribe', {
type: "lb-rank"
});
if (res.length <= 0) {
return;
}
const [hitbuf, scorebuf] = await Promise.all([render.renderLBHitCount(), render.renderLBScore()]);
const hitmsg = koishi_1.h.image(hitbuf, 'image/png');
const scoremsg = koishi_1.h.image(scorebuf, 'image/png');
for (const group of res) {
const bot = ctx.bots[`${group.platform}:${group.selfId}`];
if (!bot) {
continue;
}
await bot.sendMessage(group.channelId, hitmsg);
await bot.sendMessage(group.channelId, scoremsg);
}
});
};
exports.ScoreMonitor = ScoreMonitor;