一个插件 idea
#236
Replies: 3 comments 3 replies
-
聚合推送我之前考虑过。我一开始想的是像 github,gitlab,rss 都可以整合起来做。但是后来没有做,因为 github 这方面做了非常细致的特化。其实现在回头看的话,一旦写这种东西,有两个显著的坏处:
但上面说的是对我自己而言。你依然可以这么做。不过在做之前你或许确实应该考虑一下 RSS Hub。有信心做的比它更好吗?如果没有的话,为什么不直接去优化 RSS 插件去适应 RSS Hub 的输出呢? |
Beta Was this translation helpful? Give feedback.
1 reply
-
有关插件如何暴露全局的接口,有两种思路: 第一种可以参考 puppeteer 插件。直接在 app 上面赋值即可: declare module 'koishi-core' {
interface App {
browser?: Browser
}
}
export function apply(ctx: Context) {
// 只能通过 app 访问
ctx.app.browser = await launch(options)
} 第二种是使用 declare module 'koishi-core' {
interface Context {
webui?: WebUIServer
}
}
Context.delegate('webui')
export function apply(ctx: Context) {
// 可以在任何 ctx 上访问
ctx.webui = new WebUIServer()
} 包括大家熟悉的 显然是后一种方法看起来比较好,不过这种写法也对这里的实例有一定的要求。不理解 delegate 原理的话,非常容易写挂(很多时候是因为 this 指代不清)。如果遇到问题可以在这里问我。 |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
我之前有给 bot 做b站直播推送和动态推送的功能,然后不知道怎么拆出来。今天阅读了一下 koishi-plugin-rss 的代码,感觉可以把 rss 的部分拆开,变成 koishi-plugin-subscribe (随便乱取的名字) ,可能只负责注册指令调用子插件给出(怎么做?)的订阅取订接口,然后独立出 koishi-plugin-subscribe-rss 作为子插件。
Beta Was this translation helpful? Give feedback.
All reactions