UNPKG

koishi-plugin-memos-connector

Version:
120 lines (118 loc) 4.64 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, VISIBILITY: () => VISIBILITY, addMemo: () => addMemo, apply: () => apply, memoContextFianl: () => memoContextFianl, memoCreatRes: () => memoCreatRes, memoVisibility: () => memoVisibility, name: () => name, startContinuousInput: () => startContinuousInput }); module.exports = __toCommonJS(src_exports); var import_koishi = require("koishi"); var name = "memos-connector"; var Config = import_koishi.Schema.object({ memos_sverver: import_koishi.Schema.string().description("memos服务器地址").default(""), token: import_koishi.Schema.string().description("memos用户令牌").role("secret") }); var VISIBILITY = { VISIBILITY_UNSPECIFIED: "VISIBILITY_UNSPECIFIED", PRIVATE: "PRIVATE", PROTECTED: "PROTECTED", PUBLIC: "PUBLIC" }; var addMemo = /* @__PURE__ */ __name(async (ctx, config, content, visibility = VISIBILITY.PRIVATE) => { const url = `${config.memos_sverver}/api/v1/memos`; return await ctx.http("POST", url, { data: JSON.stringify({ content, visibility, resources: [], relations: [] }), headers: { "Authorization": config.token } }); }, "addMemo"); var startContinuousInput = false; var memoContextFianl; var memoCreatRes; var memoVisibility = VISIBILITY.PRIVATE; function apply(ctx, config) { ctx.command("mm [message:text]", "创建memo").option("public", "-p 创建公开memo", { fallback: false }).option("protected", "-o 创建受保护memo", { fallback: false }).option("private", "-i 创建私有memo", { fallback: false }).action(async ({ options }, message) => { memoVisibility = options.public ? VISIBILITY.PUBLIC : options.protected ? VISIBILITY.PROTECTED : VISIBILITY.PRIVATE; if (message) { memoCreatRes = await addMemo(ctx, config, message, memoVisibility); } else { startContinuousInput = true; return "请输入要创建的memo内容\n使用emm作为最后一条消息"; } const name2 = memoCreatRes.data.name; const creator = memoCreatRes.data.creator; const visibilityString = memoCreatRes.data.visibility; const createTime = memoCreatRes.data.createTime; return `memo创建成功! 名称:${name2} 创建者:${creator} 可见性:${visibilityString} 创建时间:${createTime}`; }); ctx.middleware(async (session, next) => { if (startContinuousInput && session.content !== "emm") { memoContextFianl = memoContextFianl ? `${memoContextFianl} ${session.content}` : session.content; } else { return next(); } }, true); ctx.command("emm", "结束memos").option("public", "-p 创建公开memo", { fallback: false }).option("protected", "-o 创建受保护memo", { fallback: false }).option("private", "-i 创建私有memo", { fallback: false }).action(async ({ options }) => { if (!startContinuousInput) return "没有正在输入的memo"; startContinuousInput = false; memoVisibility = options.public ? VISIBILITY.PUBLIC : options.protected ? VISIBILITY.PROTECTED : VISIBILITY.PRIVATE; memoCreatRes = await addMemo(ctx, config, memoContextFianl, memoVisibility); const name2 = memoCreatRes.data.name; const creator = memoCreatRes.data.creator; const visibilityString = memoCreatRes.data.visibility; const createTime = memoCreatRes.data.createTime; return `memo创建成功! 名称:${name2} 创建者:${creator} 可见性:${visibilityString} 创建时间:${createTime}`; }); } __name(apply, "apply"); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { Config, VISIBILITY, addMemo, apply, memoContextFianl, memoCreatRes, memoVisibility, name, startContinuousInput });