koishi-plugin-mediawiki
Version:
MediaWiki for koishijs
62 lines (61 loc) • 2.43 kB
TypeScript
/**
* koishi-plugin-mediawiki
* @desc MediaWiki plugin for Koishijs
* @author Koishijs(机智的小鱼君) <dragon-fish@qq.com>
* @license Apache-2.0
*/
import { Context, h, Logger, Schema } from 'koishi';
import type { Config } from './types/Config';
import type { InfoboxDefinition } from './types/Infobox';
declare module 'koishi' {
interface Channel {
mwApi?: string;
}
}
export declare const name = "mediawiki";
export default class PluginMediawiki {
#private;
ctx: Context;
config: Partial<Config>;
static inject: string[];
INFOBOX_DEFINITION: InfoboxDefinition[];
static Config: Schema<Schemastery.ObjectS<{
cmdAuthWiki: Schema<number, number>;
cmdAuthConnect: Schema<number, number>;
cmdAuthSearch: Schema<number, number>;
searchIfNotExist: Schema<boolean, boolean>;
showDetailsByDefault: Schema<boolean, boolean>;
customInfoboxes: Schema<({
match?: string | null | undefined;
selector?: string[] | null | undefined;
injectStyles?: string | null | undefined;
skin?: string | null | undefined;
} & import("koishi").Dict)[], Schemastery.ObjectT<{
match: Schema<string, string>;
selector: Schema<string[], string[]>;
injectStyles: Schema<string, string>;
skin: Schema<string, string>;
}>[]>;
}>, Schemastery.ObjectT<{
cmdAuthWiki: Schema<number, number>;
cmdAuthConnect: Schema<number, number>;
cmdAuthSearch: Schema<number, number>;
searchIfNotExist: Schema<boolean, boolean>;
showDetailsByDefault: Schema<boolean, boolean>;
customInfoboxes: Schema<({
match?: string | null | undefined;
selector?: string[] | null | undefined;
injectStyles?: string | null | undefined;
skin?: string | null | undefined;
} & import("koishi").Dict)[], Schemastery.ObjectT<{
match: Schema<string, string>;
selector: Schema<string[], string[]>;
injectStyles: Schema<string, string>;
skin: Schema<string, string>;
}>[]>;
}>>;
constructor(ctx: Context, config?: Partial<Config>);
get logger(): Logger;
shotInfobox(url: string, silence?: boolean): Promise<string | h>;
createInjectStylesFromDefinition({ selector, injectStyles, }: InfoboxDefinition): string;
}