Commit 84eff2b4 authored by nanahira's avatar nanahira

first

parent af9356cb
Pipeline #6391 failed with stages
in 32 seconds
# koishi-plugin-picsource-localfs
Koishi 的本地图源插件
\ No newline at end of file
Koishi 的本地图源插件。
## 安装
### npm
```bash
npm install koishi-plugin-picsource-localfs
```
## 配置
* `sources` 图源实例列表。共通实例属性见 [`koishi-plugin-pics`](https://code.mycard.moe/3rdeye/koishi-plugin-pics)`PicSourceInfo` 定义。
* `name` 实例名称。
* `path` 图片路径。必填。
* `patterns` 允许的文件后缀。使用 `*` 表示当前目录,`**` 表示递归所有子目录。
* `exclude` 排除的路径。
* `displayFilename` 是否显示文件名。默认 `true`
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -13,12 +13,14 @@ export class LocalSource extends PicSource {
async randomPic(picTags: string[]): Promise<PicResult> {
const absolutePath = path.resolve(process.cwd(), this.config.path);
const files = await readDirDeep(absolutePath, {
absolute: true,
patterns: this.config.patterns,
gitignore: false,
ignore: this.config.exclude,
});
const files = (
await readDirDeep(absolutePath, {
absolute: true,
patterns: this.config.patterns,
gitignore: false,
ignore: this.config.exclude,
})
).filter((f) => picTags.every((t) => f.includes(t)));
if (!files.length) {
return null;
}
......
import 'source-map-support/register';
import { DefineSchema } from 'koishi-utils-schemagen';
import {
PicResult,
PicSource,
PicSourceConfig,
PicSourceInfo,
} from 'koishi-plugin-pics';
import { DefineSchema, schemaFromClass } from 'koishi-utils-schemagen';
import { PicSourceConfig, PicSourceInfo } from 'koishi-plugin-pics';
import { Context } from 'koishi';
import { LocalSource } from './LocalSource';
......@@ -45,8 +40,15 @@ export class LocalSourceConfig
registerInstance(ctx: Context) {
const instance = new LocalSource(ctx, this);
ctx
.logger('picsource-localfs')
.info(`Registered localfs pic source ${instance.name}.`);
if (ctx.pics) {
ctx.pics.addSource(instance, ctx);
}
ctx.on('service/pics', () => {
if (!ctx.pics) {
ctx.logger('picsource-localfs').warn(`Pics container not found.`);
return;
}
ctx.pics.addSource(instance, ctx);
......
......@@ -28,5 +28,6 @@ module.exports = {
externals: {
koishi: 'koishi',
'koishi-plugin-pics': 'koishi-plugin-pics',
'koishi-utils-schemagen': 'koishi-utils-schemagen',
},
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment