koishi-plugin-yesimbot-extension-sticker-manager
Version:
YesImBot 表情包管理扩展
107 lines (106 loc) • 5.18 kB
JavaScript
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
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);
var __decorateClass = (decorators, target, key, kind) => {
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
for (var i = decorators.length - 1, decorator; i >= 0; i--)
if (decorator = decorators[i])
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
if (kind && result) __defProp(target, key, result);
return result;
};
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
var tool_exports = {};
__export(tool_exports, {
StickerTools: () => StickerTools
});
module.exports = __toCommonJS(tool_exports);
var import_koishi = require("koishi");
var import_services = require("koishi-plugin-yesimbot/services");
var import_services2 = require("koishi-plugin-yesimbot/services");
let StickerTools = class {
constructor(ctx, config) {
this.ctx = ctx;
this.config = config;
this.stickerService = ctx.get("sticker-service");
}
stickerService;
async stealSticker({ image_id, session }) {
try {
const imageService = this.ctx[import_services2.Services.Image];
const imageData = await imageService.getImageDataWithContent(image_id);
if (!imageData) return (0, import_services.Failed)("\u56FE\u7247\u672A\u627E\u5230");
const record = await this.stickerService.stealSticker(imageData.data, session);
return (0, import_services.Success)({
id: record.id,
category: record.category,
message: `\u5DF2\u5077\u53D6\u8868\u60C5\u5305\u5230\u5206\u7C7B: ${record.category}`
});
} catch (error) {
return (0, import_services.Failed)(`\u5077\u53D6\u5931\u8D25: ${error.message}`);
}
}
async sendRandomSticker({ category }) {
try {
const sticker = await this.stickerService.getRandomSticker(category);
if (!sticker) return (0, import_services.Failed)(`\u5206\u7C7B "${category}" \u4E2D\u6CA1\u6709\u8868\u60C5\u5305`);
return (0, import_services.Success)({
element: sticker,
message: `\u5DF2\u53D1\u9001 ${category} \u5206\u7C7B\u7684\u8868\u60C5\u5305`
});
} catch (error) {
return (0, import_services.Failed)(`\u53D1\u9001\u5931\u8D25: ${error.message}`);
}
}
};
__publicField(StickerTools, "Config", import_koishi.Schema.object({
storagePath: import_koishi.Schema.path({ allowCreate: true, filters: ["directory"] }).default("./data/yesimbot/sticker").description("\u8868\u60C5\u5305\u5B58\u50A8\u8DEF\u5F84"),
classificationPrompt: import_koishi.Schema.string().default("\u8BF7\u5C06\u4EE5\u4E0B\u56FE\u7247\u5206\u7C7B\uFF0C\u5DF2\u6709\u5206\u7C7B: [{{categories}}]\u3002\u9009\u62E9\u6700\u5339\u914D\u7684\u5206\u7C7B\u6216\u521B\u5EFA\u65B0\u5206\u7C7B\u3002\u53EA\u8FD4\u56DE\u5206\u7C7B\u540D\u79F0\u3002").description("\u591A\u6A21\u6001\u5206\u7C7B\u63D0\u793A\u8BCD\u6A21\u677F")
}));
__decorateClass([
(0, import_services.Tool)({
name: "steal_sticker",
description: "\u5077\u53D6\u4E00\u4E2A\u8868\u60C5\u5305\u3002\u5F53\u7528\u6237\u53D1\u9001\u8868\u60C5\u5305\u65F6\uFF0C\u8C03\u7528\u6B64\u5DE5\u5177\u5C06\u8868\u60C5\u5305\u4FDD\u5B58\u5230\u672C\u5730\u5E76\u5206\u7C7B\u3002",
parameters: import_koishi.Schema.object({
image_id: import_koishi.Schema.string().required().description("\u8981\u5077\u53D6\u7684\u8868\u60C5\u56FE\u7247ID")
})
})
], StickerTools.prototype, "stealSticker", 1);
__decorateClass([
(0, import_services.Tool)({
name: "send_random_sticker",
description: "\u53D1\u9001\u4E00\u4E2A\u968F\u673A\u8868\u60C5\u5305\u3002",
parameters: import_koishi.Schema.object({
category: import_koishi.Schema.string().required().description("\u8868\u60C5\u5305\u5206\u7C7B\u540D\u79F0")
})
})
], StickerTools.prototype, "sendRandomSticker", 1);
StickerTools = __decorateClass([
(0, import_services.Extension)({
name: "sticker-manager",
display: "\u8868\u60C5\u5305\u7BA1\u7406",
description: "\u7528\u4E8E\u5077\u53D6\u548C\u53D1\u9001\u8868\u60C5\u5305",
author: "HydroGest",
version: "1.0.0"
})
], StickerTools);
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
StickerTools
});
//# sourceMappingURL=tool.js.map