Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
K
koishi-plugin-pics
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
3rdeye
koishi-plugin-pics
Commits
a34ae149
Commit
a34ae149
authored
May 03, 2022
by
nanahira
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
readme
parent
455de00f
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
18 additions
and
17 deletions
+18
-17
CONTRIBUTING.md
CONTRIBUTING.md
+18
-15
src/config.ts
src/config.ts
+0
-2
No files found.
CONTRIBUTING.md
View file @
a34ae149
...
...
@@ -52,7 +52,7 @@ export class PicSource {
#### 单图源
对于单图源的插件,我们提供了
`PicSourcePlugin`
基类
,只需要集成
该类即可快速开发单图源插件。
对于单图源的插件,我们提供了
`PicSourcePlugin`
基类
工厂函数,只需要继承
该类即可快速开发单图源插件。
```
ts
import
{
Context
}
from
"
koishi
"
;
...
...
@@ -61,13 +61,16 @@ import { PicSourcePlugin, PicsContainer, PicSourceConfig } from "koishi-plugin-p
@
RegisterSchema
()
export
class
Config
extends
PicSourceConfig
{
@
SchemaProperty
({
default
:
'
my-source
'
})
// 推荐覆盖该属性以提供默认值
name
:
string
;
@
SchemaProperty
({
default
:
10000
})
code
:
number
;
}
@
DefinePlugin
(
{
name
:
'
my-picsource
'
,
schema
:
Config
}
)
export
default
class
MyPicSource
extends
PicSourcePlugin
<
Config
>
{
@
DefinePlugin
()
export
default
class
MyPicSource
extends
PicSourcePlugin
(
Config
)
{
async
randomPic
(
tags
:
string
[])
{
return
{
url
:
`https://cdn02.moecube.com:444/images/ygopro-images-zh-CN/
${
this
.
config
.
code
}
.jpg`
,
description
:
`
${
this
.
config
.
code
}
`
};
}
...
...
@@ -83,7 +86,7 @@ ctx.plugin(MyPicSource, {
#### 多图源
使用
`DefineMultiSour
cePlugin`
方法创建多图源插件。该插件的配置具有
`instances`
数组属性,每一项都是一个图源的配置。
使用
koishi-thirdeye 提供的
`MultiInstan
cePlugin`
方法创建多图源插件。该插件的配置具有
`instances`
数组属性,每一项都是一个图源的配置。
```
ts
import
{
Context
}
from
"
koishi
"
;
...
...
@@ -92,23 +95,23 @@ import { PicSourcePlugin, PicsContainer, PicSourceConfig } from "koishi-plugin-p
@
RegisterSchema
()
export
class
Config
extends
PicSourceConfig
{
@
SchemaProperty
({
default
:
'
my-source
'
})
// 推荐覆盖该属性以提供默认值
name
:
string
;
@
SchemaProperty
({
default
:
10000
})
code
:
number
;
}
// 不 default
@
DefinePlugin
(
{
name
:
'
my-picsource
'
,
schema
:
Config
}
)
export
class
MyPicSource
extends
PicSourcePlugin
<
Config
>
{
@
DefinePlugin
()
export
class
MyPicSource
extends
PicSourcePlugin
(
Config
)
{
async
randomPic
(
tags
:
string
[])
{
return
{
url
:
`https://cdn02.moecube.com:444/images/ygopro-images-zh-CN/
${
this
.
config
.
code
}
.jpg`
,
description
:
`
${
this
.
config
.
code
}
`
};
}
}
// 在这里 default 加载插件
export
default
class
MyMultiPicSource
extends
DefineMultiSourcePlugin
(
MyPicSource
,
PicSourceConfig
,
)
{}
export
default
class
MyMultiPicSource
extends
MultiInstancePlugin
(
MyPicSource
)
{}
// 加载图源插件
ctx
.
plugin
(
MyMultiPicSource
,
{
...
...
@@ -200,7 +203,7 @@ export class PicSourceConfig {
#### 插件基类
图源中间件插件需要继承
`PicMiddlewareBase<Config>`
类,覆盖
`use`
方法,并使用
`@DefinePlugin(
{ schema: Config })`
进行注解
。
图源中间件插件需要继承
`PicMiddlewareBase<Config>`
类,覆盖
`use`
方法,并使用
`@DefinePlugin(
)`
进行修饰
。
该基类具有这些预定义属性,可以直接使用。
...
...
@@ -210,7 +213,7 @@ export class PicSourceConfig {
#### 配置基类
配置基类定义如下。
插件配置 Schema 类需要从该类进行继承,并添加自身所需要的属性。若无多余配置,则可以直接使用
`PicMiddlewareConfig`
类作为配置类
。
配置基类定义如下。
定义插件时该类的属性会自动注入到配置类内
。
```
ts
export
class
PicMiddlewareConfig
{
...
...
@@ -232,13 +235,13 @@ export class PicMiddlewareConfig {
下例图像中间件插件会将所有 URL 进行预先下载,并使用
`download`
方法转换为
`base64://`
形式的 URL,即为
`koishi-plugin-pics`
中
`useBase64`
选项的功能。事实上,
`koishi-plugin-pics`
中的
`useAssets`
和
`useBase64`
这两个选项的功能,都是由内置图像中间件实现的。
```
ts
export
class
Config
extends
PicMiddlewareConfig
{
export
class
Config
{
@
SchemaProperty
({
type
:
Schema
.
object
()
})
axiosConfig
:
AxiosRequestConfig
;
}
@
DefinePlugin
(
{
schema
:
Config
}
)
export
default
class
PicDownloaderMiddleware
extends
PicMiddleware
Base
<
Config
>
{
@
DefinePlugin
()
export
default
class
PicDownloaderMiddleware
extends
PicMiddleware
Plugin
(
Config
)
{
override
async
use
(
url
:
string
,
next
:
PicNext
)
{
const
downloadedUrl
=
await
this
.
pics
.
download
(
url
,
config
.
axiosConfig
);
return
next
(
downloadedUrl
);
...
...
src/config.ts
View file @
a34ae149
...
...
@@ -48,8 +48,6 @@ export class PicSourceConfig implements PicSourceInfo {
}
}
export
const
PicSourceSchema
=
SchemaClass
(
PicSourceConfig
);
export
class
PicMiddlewareConfig
{
constructor
(
config
:
PicMiddlewareInfo
)
{}
@
SchemaProperty
({
description
:
'
中间件名称。
'
})
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment