yskmの博客 - you should know me
实战Koishi 的核心是插件系统,绝大部分 Koishi 功能都可以通过插件实现。本章节将介绍如何使用模板项目开发和构建自己的 Koishi 插件。 创建新插件在应用目录运行下面的命令以创建一个新的插件工作区: 12345// npmnpm run setup [name] -- [-c] [-m] [-G]// yarnyarn setup [name] [-c] [-m] [-G] name: 插件的包名,缺省时将进行提问-c, –console: 创建一个带控制台扩展的插件-m, –monorepo: 创建 monorepo 的插件-G, –no-git: 跳过 git 初始化 我们假设你创建了一个叫 example 的插件。那么,你将看到下面的目录结构: 12345678root├── external│ └── example│ ├── src│ │ └── index.ts│ └── package.json├── koishi.yml└── package.json 打开 index.ts 文件,并修改其中的代码: 1234 ...
中间件有了接收事件和发送消息的能力,似乎你就能完成一切工作了——很多机器人框架也的确是这么想的。但是从 Koishi 的角度,这还远远不够。因为当我们面临更复杂的需求时,新的问题也会随之产生: 如何限制消息能触发的应答次数?如何进行权限管理?如何提高机器人的性能? 这些问题的答案将我们引向另一套更高级的系统——这也就是中间件的由来。 中间件是对消息事件处理流程的再封装。你注册的所有中间件将会由一个事件监听器进行统一管理,数据流向下游,控制权流回上游——这可以有效确保了任意消息都只被处理一次。被认定为无需继续处理的消息不会进入下游的中间件——这让我们能够轻易地实现权限管理。与此同时,Koishi 的中间件也支持异步调用,这使得你可以在中间件函数中实现任何逻辑。事实上,相比更加底层地调用事件监听器,使用中间件处理消息才是 Koishi 更加推荐的做法。 基本用法还记得上一节介绍的基本示例吗?让我们把它改成中间件的形式: 123456789// 如果收到“天王盖地虎”,就回应“宝塔镇河妖”ctx.middleware((session, next) => { if (se ...
指令系统在了解了控制台的基本用法后,我们终于可以开始介绍如何与机器人对话了!让我们从上一节中看到的例子开始: 这里的输出与两个插件有关: help 指令由 help 插件提供,它可以显示指令列表或具体指令的帮助信息echo 指令由 echo 插件提供,它可以将用户的输入原样返回 一个 Koishi 机器人的绝大部分功能都是通过指令提供给用户的。当你安装了更多的插件后,你也就有了更多的指令可供使用。 查看帮助help 指令后还可以添加一个参数,用于查看特定指令的帮助信息: 那么细心的小伙伴可能会发现,既然 help 本身也是一个指令,那我能不能用来查看 help 自己的帮助信息呢?答案是肯定的: 参数和选项在上面的用法中,我们接触到了两个新的概念:参数 (Argument) 和 选项 (Option)。 参数分为必选参数和可选参数,分别用尖括号 <> 和方括号 [] 表示。一个指令可以有任意多个参数,它们的顺序是固定的,用户必须按照指令定义的顺序来输入参数。必选参数一定出现在可选参数之前。如果用户输入的参数数量不足必选参数的个数,那么插件通常会给出错误提示;如 ...
Koishi机器人开发Koishi - 创建跨平台、可扩展、高性能的机器人本篇文章,将开始手把手介绍Koishi机器人开发的流程和细节 安装和配置插件Koishi 的一个核心特性是强大的控制台。控制台是一个对用户友好的图形界面,封装了 Koishi 的绝大多数功能: 1.安装、卸载和更新插件2.启用、停用和配置插件3.管理指令、数据库、输出文本4.在模拟和真实环境下聊天5.状态监控、数据统计6.查看日志本节中我们将以 echo 插件为例来演示插件的安装与配置。echo 插件注册了一个名为 echo 的指令,调用此指令可以将输入原样输出给用户。 认识控制台在你成功安装了模板项目或启动器后,控制台将自动打开。控制台的界面主要分为两部分,左侧是活动栏,用来切换右边的界面,右边默认打开的是仪表盘页面。在宽屏设备的下方还有一个状态栏,主要用来显示机器人的运行状态。 在之后的几节里,我们会逐一介绍各界面的功能和使用。 安装插件前往「插件市场」页面,你将在这里看到所有可下载的插件。在搜索框中输入 echo,找到我们想要的插件,点击「添加」按钮,然后在弹出的对话框中点击「安装」。等待片刻,插件 ...
官方链接LLOneBot - 基于 NTQQ 实现的 QQ BOTKoishi - 创建跨平台、可扩展、高性能的机器人 安装最新版QQ和LLOneBotLLOneBot 支持最新版本的 QQ。不推荐使用太老的版本,因其可能会有一些问题。 Windows 一键安装方案https://github.com/super1207/install_llob/releases 下载 exe,双击运行即可。之后打开 QQ 的设置,看到了 LLOneBot 就代表安装成功了。 安装部署Koishi本节将介绍我们最推荐的 Koishi 开发方案——创建模板项目。相比直接从零搭建,模板项目的优势在于:1.创建完成即是拥有带完整控制台体验的项目,一键创建各种模板插件2.支持直接加载 TypeScript,你可以尽情享受代码提示和类型检查带来的便利3.支持插件热重载,你可以在不重启应用的情况下修改插件代码,并获得即时的反馈4.支持二次开发,你可以将你自己的机器人与其他人的插件进行联合调试当然,模板项目也可以直接用于生产。虽然在操作上可能不如启动器方便,但它提供了更多的自由度,并能在启动器所覆盖不到的场 ...
前言原子化 CSS 是一种 CSS 的架构方式,它倾向于小巧且用途单一的 class,并且会以视觉效果进行命名。 英文原文: lets-define-exactly-atomic-css 背景Anthony Fu,是 Vite 团队的成员,也是 Vitesse (Vite 社区最受欢迎的起手模板之一) 的作者。他享受原子化 CSS 带来的快速开发体验,而因此选择了 Tailwind CSS 作为 Vitesse 的默认 UI 框架。虽然 Vite 较 Webpack 等工具相比,在加载速度上有了大幅提升,但由于 Tailwind 生成了数 MB 的 CSS,使得加载与更新 CSS 成为了整个 Vite 应用的性能瓶颈。他曾以为这是使用为了原子式 CSS 的一种权衡,直到他发现了 Windi CSS。 Windi CSS 是从零开始编写的 Tailwind CSS 的替代方案。它的零依赖,也不要求用户安装 PostCSS 和 Autoprefixer。更为重要的是,它支持 按需生成。Windi CSS 不会一次生成所有的 CSS,而是只会生成你在代码中实际使用到的原子化 CSS。这 ...
简介Vue JSONS chema Form是一个基于 Vue/Vue3,Json Schema 和 ElementUi/antd/iview3/naiveUi 等生成 HTML Form 表单,用于活动编辑器、h5 编辑器、cms 等数据配置的 vue 组件,支持可视化生成表单 Schema。 体验Playground 演示Vue 可视化活动编辑器可视化表单 Schema 生成器 解决方案使用对应 UI 框架的 Vjsf 时,各版本 api 和使用形式 99%一致,仅有如下差异: vue3 emit 事件都会去掉 on 前缀。vue3 antd Vue v-model 不使用 modelValue props,这里需要做个转换,例如 a-input 组件,ant vue3 需要使用 v-model:value,但在整个框架内部 v-model 都是使用 modelValue,所以这里就需要对不一致的 props 通过中间组件组做转换。 你可以自行转换,也可以使用内置方法 modelValueComponent 转换,如下: 12345678 ...
插件推荐Auto Close Tag - 自动添加 HTML/XML 结束标签Auto Complete Tag - 为 HTML/XML 添加关闭标签和自动重命名成对的标签Auto Import - 自动查找、解析和提供所有可用导入的代码操作和代码完成Auto Rename Tag - 自动重命名成对的 HTML/XML 标签Color Highlight - 颜色高亮插件DotENV - 高亮.env 文件EditorConfig for VS Code - 统一不同编辑器的一些配置ESLint - 代码检查Git Graph - Git 图形化操作工具GitLens — Git supercharged - 显示具体某行代码的 git 信息Icônes - 搜索 iconify 图标的插件Iconify IntelliSense - Iconify 图标实时显示的插件javascript console utils - 提供快捷键 ctrl+l 直接输入 console.log()Material Icon Theme - 图标主题,显示文件和文件多 ...
简介Soybean Admin 是一个基于 Vue3、Vite3、TypeScript、NaiveUI、Pinia 和 UnoCSS 的清新优雅的中后台模版,它使用了最新的前端技术栈,内置丰富的主题配置,有着极高的代码规范,基于 mock 实现的动态权限路由,开箱即用的中后台前端解决方案,也可用于学习参考。 特性 最新技术栈:使用 Vue3/Vite3 等前端前沿技术开发, 使用高效率的 npm 包管理器 pnpm TypeScript:应用程序级 JavaScript 的语言 主题:丰富可配置的主题、暗黑模式,基于原子 css 框架 - UnoCSS 的动态主题颜色 代码规范:丰富的规范插件及极高的代码规范 权限路由:简易的路由配置、基于 mock 的动态路由能快速实现后端动态路由 请求函数:基于 axios 的完善的请求函数封装,提供 Promise 和 hooks 两种请求函数,加入请求结果数据转换的适配器 预览 soybean-admin 文档 项目文档: docs.soybean.pro 代码仓库 github gitee 后端服务 soybean-admi ...
前言由于 Vercel 官方域名的 Dns 污染问题,导致 Vercel 部署的 Twikoo 评论无法正常获取数据。在配置 Twikoo 评论时,如果 envId 用了 vercel 自带的域名(类似 https://xxxxx.vercel.app/),则会遇到以上问题。 解决方案是用自定义的域名去代替 vercel 的域名,详情可参考 custom-domains#dns-records 步骤创建解析记录登录进入腾讯云DNSPOD,按下图所示添加记录 Vercel-项目中添加-Domains进入【Project Settings】->【Domains】添加域名即可。 替换-envId在主题配置文件_config.butterfly.yml中修改以下内容,将你的环境id填入对应位置 1234567# Twikoo# https://github.com/imaegoo/twikootwikoo: envId: https://twikoo.yskm.net/ region: visitor: true option: 最后别忘了重新编译运行,运行之后即可看到效果 ...
公告
AI,IT,GAMES,NEWS
Pixiv日榜Top50
aside.card_map