Pot-App 语音合成插件模板仓库 (以 Lingva 为例)
English | 简体中文
- 以此仓库为模板创建一个新的仓库
- 仓库名为
pot-app-tts-plugin-<插件名>
,例如pot-app-tts-plugin-lingva_tts
编辑 info.json
文件,修改以下字段:
id
:插件唯一 id,必须以[plugin]
开头,例如[plugin].com.pot-app.lingva_tts
homepage
: 插件主页,填写你的仓库地址即可,例如https://github.com/pot-app/pot-app-tts-plugin-template
display
: 插件显示名称,例如Lingva
icon
: 插件图标,例如lingva.svg
needs
: 插件依赖,一个数组,每个依赖为一个对象,包含以下字段:key
: 依赖 key,对应该项依赖在配置文件中的名称,例如requestPath
display
: 依赖显示名称,对应用户显示的名称,例如请求地址
type
: 组件类型input
|select
options
: 选项列表(仅select组件需要),例如{"engine_a":"Engina A","engine_b":"Engina B"}
language
: 插件支持的语言映射,将 pot 的语言代码和插件发送请求时的语言代码一一对应
编辑 src/lib.rs
实现 tts
函数
text: &str,
lang: &str,
needs: HashMap<String, String>, // 插件需要的其他配置信息,由info.json定义
// 返回用Value包裹的字节数组
let result = res.to_vec();
return Ok(json!(result));
cargo test --package plugin --lib -- tests --nocapture # 运行测试用例
cargo build --release # 编译
-
在
target/release
目录找到plugin.dll
(Windows)/libplugin.dylib
(MacOS)/libplugin.so
(Linux)文件,统一删除lib
前缀. -
将
plugin.dll
/libplugin.dylib
/libplugin.so
文件和info.json
以及图标文件压缩为 zip 文件。 -
将文件重命名为
<插件id>.potext
,例如[plugin].com.pot-app.lingva_tts.potext
,即可得到 pot 需要的插件。
本仓库配置了 Github Actions,可以实现推送后自动编译打包插件。
每次将仓库推送到 GitHub 之后 actions 会自动运行,将打包好的插件上传到 artifact,在 actions 页面可以下载
每次提交 Tag 之后,actions 会自动运行,将打包好的插件上传到 release,在 release 页面可以下载打包好的插件
注意需要在仓库设置中添加一个名为
TOKEN
的 secret,值为一个有权限的 GitHub Token,用于上传 release