koishi-plugin-random-bangdream-manga
Version:
90 lines (88 loc) • 3.92 kB
JavaScript
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
});