UNPKG

koishi-plugin-beatsaber-bot

Version:

一个 用于 BeatSaber 的 koishi Bot 插件

34 lines (33 loc) 1.42 kB
"use strict"; 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;