Commit d6118002 authored by nanahira's avatar nanahira

bump

parent c476b097
...@@ -26,6 +26,23 @@ app.plugin(DatabasePlugin); ...@@ -26,6 +26,23 @@ app.plugin(DatabasePlugin);
app.plugin(ExtrasInDev); app.plugin(ExtrasInDev);
// Target plugin // Target plugin
app.plugin(TargetPlugin, {} as any); app.plugin(TargetPlugin, {
instances: [
{
name: 'yande',
weight: 1,
endpoint: 'https://yande.re/post.json',
pageLimit: 200,
isDefault: true,
},
{
name: 'konachan',
weight: 1,
endpoint: 'https://konachan.com/post.json',
pageLimit: 200,
isDefault: true,
},
],
});
app.start(); app.start();
This diff is collapsed.
...@@ -28,8 +28,8 @@ ...@@ -28,8 +28,8 @@
}, },
"homepage": "https://code.mycard.moe/3rdeye/koishi-plugin-picsource-yande", "homepage": "https://code.mycard.moe/3rdeye/koishi-plugin-picsource-yande",
"peerDependencies": { "peerDependencies": {
"koishi": "^4.6.0", "koishi": "^4.6.1",
"koishi-plugin-pics": "^9.0.0" "koishi-plugin-pics": "^9.0.3"
}, },
"dependencies": { "dependencies": {
"koishi-thirdeye": "^10.0.5" "koishi-thirdeye": "^10.0.5"
......
...@@ -3,7 +3,7 @@ import { DefineSchema, RegisterSchema } from 'koishi-thirdeye'; ...@@ -3,7 +3,7 @@ import { DefineSchema, RegisterSchema } from 'koishi-thirdeye';
import { PicSourceConfig } from 'koishi-plugin-pics'; import { PicSourceConfig } from 'koishi-plugin-pics';
@RegisterSchema() @RegisterSchema()
export class InstanceConfig extends PicSourceConfig { export class PicSourceYandePluginConfig extends PicSourceConfig {
@DefineSchema({ @DefineSchema({
description: description:
'网站 post.json 的地址。如果使用 Konachan 则可以使用 `https://konachan.com/post.json` 。', '网站 post.json 的地址。如果使用 Konachan 则可以使用 `https://konachan.com/post.json` 。',
...@@ -18,22 +18,3 @@ export class InstanceConfig extends PicSourceConfig { ...@@ -18,22 +18,3 @@ export class InstanceConfig extends PicSourceConfig {
@DefineSchema({ description: '使用原始图而不是 sample 图。', default: true }) @DefineSchema({ description: '使用原始图而不是 sample 图。', default: true })
useOriginal: boolean; useOriginal: boolean;
} }
@RegisterSchema()
export class PicSourceYandePluginConfig {
constructor(config: PicSourceYandePluginConfigLike) {}
@DefineSchema({
description: '实例列表。',
type: InstanceConfig,
default: [
{ name: 'yande', url: 'https://yande.re/post.json' },
{ name: 'konachan', url: 'https://konachan.com/post.json' },
],
})
instances: InstanceConfig[];
}
export interface PicSourceYandePluginConfigLike {
instances: Partial<InstanceConfig>[];
}
// import 'source-map-support/register'; // import 'source-map-support/register';
import { InstanceConfig, PicSourceYandePluginConfig, PicSourceYandePluginConfigLike } from './config'; import { PicSourceYandePluginConfig } from './config';
import { import { DefinePlugin, Inject } from 'koishi-thirdeye';
DefinePlugin, import { DefineMultiSourcePlugin, PicSourcePlugin } from 'koishi-plugin-pics';
BasePlugin, import { Random, Quester } from 'koishi';
Inject,
LifecycleEvents,
} from 'koishi-thirdeye';
import PicsContainer, { PicSource } from 'koishi-plugin-pics';
import { Context, Random } from 'koishi';
import { PicInfo } from './def'; import { PicInfo } from './def';
export * from './config'; export * from './config';
export class PicSourceInstance extends PicSource { @DefinePlugin({ name: 'picsource-yande', schema: PicSourceYandePluginConfig })
constructor(ctx: Context, private config: InstanceConfig) { export class PicSourceYande extends PicSourcePlugin<PicSourceYandePluginConfig> {
super(ctx); @Inject(true)
config.applyTo(this); private http: Quester;
}
private page = 1; private page = 1;
private nextPage() { private nextPage() {
...@@ -30,7 +24,7 @@ export class PicSourceInstance extends PicSource { ...@@ -30,7 +24,7 @@ export class PicSourceInstance extends PicSource {
async randomPic(picTags: string[]) { async randomPic(picTags: string[]) {
const page = this.nextPage(); const page = this.nextPage();
const data = await this.ctx.http.get<PicInfo[]>(this.config.endpoint, { const data = await this.http.get<PicInfo[]>(this.config.endpoint, {
params: { params: {
tags: picTags.length ? picTags.join('+') : undefined, tags: picTags.length ? picTags.join('+') : undefined,
limit: 1000, limit: 1000,
...@@ -61,17 +55,7 @@ export class PicSourceInstance extends PicSource { ...@@ -61,17 +55,7 @@ export class PicSourceInstance extends PicSource {
} }
} }
@DefinePlugin({ name: 'picsource-yande', schema: PicSourceYandePluginConfig }) export default class PicSourceYandePlugin extends DefineMultiSourcePlugin(
export default class PicSourceYandePlugin PicSourceYande,
extends BasePlugin<PicSourceYandePluginConfig, PicSourceYandePluginConfigLike> PicSourceYandePluginConfig,
implements LifecycleEvents ) {}
{
@Inject(true)
private pics: PicsContainer;
onApply() {
for (const instanceConfig of this.config.instances) {
this.pics.addSource(new PicSourceInstance(this.ctx, instanceConfig));
}
}
}
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