koishi-plugin-booru-moehu
Version:
Image service by moehu for Koishi
275 lines (270 loc) • 8.23 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 __commonJS = (cb, mod) => function __require() {
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], 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);
// packages/moehu/src/locales/zh-CN.schema.yml
var require_zh_CN_schema = __commonJS({
"packages/moehu/src/locales/zh-CN.schema.yml"(exports, module2) {
module2.exports = { $description: "搜索设置", endpoint: "Moehu 的 URL。" };
}
});
// packages/moehu/src/index.ts
var src_exports = {};
__export(src_exports, {
default: () => src_default
});
module.exports = __toCommonJS(src_exports);
var import_fastest_levenshtein = require("fastest-levenshtein");
var import_koishi = require("koishi");
var import_koishi_plugin_booru = require("koishi-plugin-booru");
// packages/moehu/src/data/ids.json
var ids_default = {
图片一: "img1",
图片二: "img2",
竖屏壁纸: "sjpic",
横屏壁纸: "pc",
黑丝: "acghs",
白丝: "acgbs",
兽耳: "kemonomimi",
白毛: "yin",
星空: "xingk",
loli: "loli",
小姐姐: "xjj",
高清风景壁纸: "gqbz",
猫星人: "cat",
小鲨鱼: "gawr-gura",
雪花菈米: "yukihana",
夏色祭: "natsuiro",
润羽露西娅: "uruha-rushia",
花园Serena: "hanazono-serena",
笹木咲: "sasaki-saku",
角卷绵芽: "tsunomaki-watame",
常暗永远: "tokoyami-towa",
天宫心: "amamiya-kokoro",
兔田佩克菈: "usada-pekora",
一伊那尔栖: "ninomae",
大神澪: "ookami-mio",
星川莎拉: "sara-hoshikawa",
樱巫女: "sakura-miko",
木口EN: "holoen",
绊爱: "kizunaai",
神乐七奈: "kagura-nana",
神乐Mea: "kagura-mea",
白上吹雪: "fubuki",
戌神沁音: "inugami-korone",
阿夸: "akqa",
猫宫日向: "nekomiya-hinata",
猫羽雫: "myn",
樱岛麻衣: "ydmy",
初音未来: "miku",
洛天依: "tianyi",
五更琉璃: "gokou-ruri",
椎名真白: "mashiro",
鹿乃: "kano",
Saber: "saber",
四系乃: "yoshino",
见崎鸣: "misakimei",
阿卡林: "akari",
康娜: "kanna",
喵帕斯: "miaops",
妮姆芙: "nymph",
诺艾尔: "noel",
时崎狂三: "kurumi",
薇尔莉特: "violet",
忍野忍: "shinobu",
风见一姬: "kazuki",
伊莉雅: "iliya",
碧翠丝: "beatrice",
土间埋: "umr",
雷姆: "rem",
阿波连: "aharen",
国家队02: "02",
阿尼亚: "aniya",
高木: "takagi",
御坂美琴: "misaka-mikoto",
约尔: "yor",
水原千鹤: "mizuhara",
矢泽妮可: "nico",
唐可可: "tangkk",
千反田爱瑠: "eru",
亚丝娜: "asuna",
香风智乃: "chiro",
凯露: "karyl",
灰原哀: "haibara",
雏鹤爱: "hinatsuru",
志摩凛: "shimarin",
小鸟游六花: "rikka",
加藤惠: "katoumegumi",
雪之下雪乃: "yukino",
谢丝塔: "siesta",
早坂爱: "hayasakaai",
四宫辉夜: "kaguya",
凉宫春日: "haruhi",
藤原千花: "chika",
祢豆子: "nezuko",
小野寺小咲: "onoderaoosaki",
中野三玖: "nakanomiku",
伊蕾娜: "elaina",
佐天泪子: "ruiko",
白井黑子: "kuroko",
泉此方: "konata",
白银圭: "shiroganekei",
伊井野弥子: "linomiko",
立华奏: "kanade",
喜多川海梦: "kitagawa-marin",
"熊污女[雨宿町]": "amayadori-machi",
牧濑红莉栖: "makise-kurisu",
艾拉: "lsla",
蝶祈: "yuzuriha-inori",
伊卡洛斯: "uranus-queen",
八寻宁宁: "yashiro-nene",
菲洛: "filo",
食蜂操祈: "shokuho-isaki",
我妻由乃: "gasai-yuno",
长瀞同学: "nagatoro-hayase",
蜘蛛子: "noname-kumo",
和泉纱雾: "shawu",
栗山未来: "kuriyama-mirai",
奈亚子: "nyaruko",
沙优: "ogiwara-sayu",
维包子: "blois",
摘希: "miniwa-tsumiki",
原神: "ysbqb",
明日方舟: "mrfz",
碧蓝航线: "blhx",
车万: "dongf",
碧蓝档案: "blda",
缘之空: "yzk",
少女前线: "snqx",
崩坏三: "bh3",
赛马娘: "saima",
RE0: "re0",
SAO: "sao",
妖精的尾巴: "yaowei",
鬼灭之刃: "gmzr",
五等分的花嫁: "5huajia",
冰菓: "bingg",
你的名字: "kiminame",
公主连接: "gongzhulj",
间谍过家家: "spyfamily",
摇曳露营: "camp",
摇曳百合: "yuruyuri",
天使降临到我身边: "miyone",
我们无法一起学习: "xuebulai",
悠哉日常大王: "nobiyori",
黄金拼图: "kin-iro-mosaic",
转生恶役大小姐: "flag-ojousama",
崛与宫村: "hori-to-miyamura",
路人女主: "saenai-heroine",
喜欢本大爷竟然就你一个: "mydcy",
高原魔女: "slime-300",
幼妻狐仙: "fox-senko",
游戏王: "yu-gi-oh",
莉可丽丝: "lycoris-recoil",
"斩.赤红之瞳": "akame-ga-kill",
Fgo: "fgo",
轻音: "k-on",
Lovelive: "lovelive",
"Overlord[骨王]": "overlord",
变态王子与不笑猫: "hentaiandneko",
不正经魔术师: "majutsu-koushi",
空之境界: "kara-no-kyoukai",
小林家的龙女仆: "kobayashi-no-dragon",
龙与虎: "toradora",
关于我转生变成史莱姆这件事: "tensei-slime",
未闻花名: "hana-no-amae",
乌贼娘: "ika-usume",
小老师: "celia-claire",
熊熊勇闯异世界: "kuma-bear",
为美好的世界献上祝福: "sekai-shukufuku",
二次元表情包: "bqb",
甘城猫猫: "gcmm",
MC酱: "mc",
kemomimi兽耳酱: "kemomimi",
三次元猫猫: "miao",
柴郡猫猫: "cheshire",
猫猫虫咖波: "capoo",
"塞西莉亚(黑白)": "ceciliabqb",
塞西莉亚: "cecilia",
龙图: "longtu",
罗翔: "luox",
滑稽: "huaji",
熊猫头: "pand",
同福客栈: "tfkz",
北方酱: "beifang",
柯南: "kenan",
猫和老鼠: "tomandjerry",
小白人: "whitevillain",
小婳: "xiaohua",
商业头盔: "toukui",
牢饭降临到我身边: "laofan",
狗妈: "goum",
索菲: "sofei",
滑稽嘤嘤嘤: "yingyy",
草莓果酱: "caomeiguo"
};
// packages/moehu/src/index.ts
var availableTags = Object.entries(ids_default).map(([k, v]) => [k, v]).flat();
var MoehuImageSource = class extends import_koishi_plugin_booru.ImageSource {
languages = ["en", "zh"];
reusable = true;
async get(query) {
const params = {
id: this.getSimilarTag(query.raw),
num: query.count,
return: "json"
};
const url = (0, import_koishi.trimSlash)(this.config.endpoint) + "?" + Object.entries(params).map(([key, value]) => `${key}=${value}`).join("&");
const data = await this.ctx.http.get(url, { responseType: "json" });
if (!Array.isArray(data.pic)) {
return;
}
return data.pic.map((img) => {
return {
urls: {
original: img
},
nsfw: false
};
});
}
getSimilarTag(tags) {
if (!(tags == null ? void 0 : tags.trim())) {
const t = Object.values(ids_default);
return t[Math.floor(Math.random() * t.length)];
}
const c = (0, import_fastest_levenshtein.closest)(tags, availableTags);
return c;
}
};
__name(MoehuImageSource, "MoehuImageSource");
((MoehuImageSource2) => {
MoehuImageSource2.Config = import_koishi.Schema.intersect([
import_koishi_plugin_booru.ImageSource.createSchema({ label: "moehu" }),
import_koishi.Schema.object({
endpoint: import_koishi.Schema.string().default("https://img.moehu.org/pic.php")
}).i18n({
"zh-CN": require_zh_CN_schema()
})
]);
})(MoehuImageSource || (MoehuImageSource = {}));
var src_default = MoehuImageSource;
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {});