UNPKG

koishi-plugin-random-bangdream-manga

Version:
90 lines (88 loc) 3.92 kB
var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __export = (target, all) => { for (var name2 in all) __defProp(target, name2, { get: all[name2], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/index.ts var src_exports = {}; __export(src_exports, { Config: () => Config, apply: () => apply, name: () => name }); module.exports = __toCommonJS(src_exports); var import_koishi = require("koishi"); var name = "random-bangdream-manga"; var Config = import_koishi.Schema.object({ defaultLangrage: import_koishi.Schema.union([ import_koishi.Schema.const("cn"), import_koishi.Schema.const("jp") ]).default("cn").description("漫画默认语言") }); var logger = new import_koishi.Logger(name); function yonkomaUrl(id, lang) { const idStr = String(id).padStart(3, "0"); return `https://bestdori.com/assets/${lang}/comic/comic_fourframe/comic_fourframe_${idStr}_rip/comic_fourframe_${idStr}.png`; } __name(yonkomaUrl, "yonkomaUrl"); function ikomaUrl(id, lang) { const idStr = String(id).padStart(3, "0"); return `https://bestdori.com/assets/${lang}/comic/comic_singleframe/comic_${idStr}_rip/comic_${idStr}.png`; } __name(ikomaUrl, "ikomaUrl"); async function getLength() { const info = await fetch("https://bestdori.com/api/comics/all.5.json").then((response) => response.json()).catch((error) => { logger.error("获取数组长度失败。", error); }); let yonkomaLength = 0, ikomaLength = 0; for (const key in info) { if (String(key).length <= 3) { ikomaLength++; } else if (String(key).length === 4) { yonkomaLength++; } } return { yonkomaLength, ikomaLength }; } __name(getLength, "getLength"); async function apply(ctx, config) { let { yonkomaLength, ikomaLength } = await getLength(); let updateLength = setInterval(async () => { let { yonkomaLength: yon, ikomaLength: i } = await getLength(); yonkomaLength = yon; ikomaLength = i; }, 60 * 60 * 1e3); ctx.on("dispose", () => { clearInterval(updateLength); }); ctx.command("random-bangdream-yonkoma").alias("随机邦多利四格漫").usage("随机邦多利四格漫,可以自选语言,--cn为中文,--jp为日语").option("langrage", "-lang [langrage]", { fallback: config.defaultLangrage }).option("langrage", "--cn", { value: "cn" }).option("langrage", "--jp", { value: "jp" }).action(async ({ session, options }) => { const id = Math.floor(Math.random() * yonkomaLength); const url = yonkomaUrl(id, options.langrage); session.send((0, import_koishi.h)("img", { src: url })); }); ctx.command("random-bangdream-ikoma").alias("随机邦多利一格漫").usage("随机邦多利一格漫,可以自选语言,--cn为中文,--jp为日语").option("langrage", "-lang [langrage]", { fallback: config.defaultLangrage }).option("langrage", "--cn", { value: "cn" }).option("langrage", "--jp", { value: "jp" }).action(async ({ session, options }) => { const id = Math.floor(Math.random() * ikomaLength); const url = ikomaUrl(id, options.langrage); session.send((0, import_koishi.h)("img", { src: url })); }); } __name(apply, "apply"); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { Config, apply, name });