Commit 941f6785 authored by nanahira's avatar nanahira

catchup

parent bcc3d4cf
This diff is collapsed.
import 'source-map-support/register';
import { Credentials } from '@aws-sdk/types';
import {
DefineSchema,
SchemaConf,
schemaFromClass,
UseSchema,
} from 'koishi-utils-schemagen';
import path from 'path';
import { Context, Schema } from 'koishi';
import {
GetObjectCommand,
......@@ -16,8 +8,9 @@ import {
} from '@aws-sdk/client-s3';
import { SRVProRoomInfo } from './def/srvpro';
import { Selection } from './def/selection';
import { DefineSchema, RegisterSchema } from 'schemastery-gen';
const credentialsSchema: Schema<Credentials> = Schema.object(
const credentialsSchema = Schema.object(
{
accessKeyId: Schema.string().required(),
secretAccessKey: Schema.string().required(),
......@@ -25,7 +18,7 @@ const credentialsSchema: Schema<Credentials> = Schema.object(
true,
);
export const s3Schema: Schema<S3ClientConfig> = Schema.object(
export const s3Schema = Schema.object(
{
region: Schema.string().default('none'),
endpoint: Schema.string(),
......@@ -34,7 +27,7 @@ export const s3Schema: Schema<S3ClientConfig> = Schema.object(
true,
);
@SchemaConf({ desc: '发送卡组的置' })
@RegisterSchema({ desc: '发送卡组的置' })
export class DeckFetchConfig {
@DefineSchema({ desc: 'S3 配置', schema: s3Schema })
s3: S3ClientConfig;
......@@ -75,7 +68,7 @@ export class DeckFetchConfig {
}
}
@SchemaConf({ desc: '比赛过程的设置' })
@RegisterSchema({ desc: '比赛过程的设置' })
export class TournamentConfig {
@DefineSchema({
desc: '服务器 API 连接后台,不带任何路径和尾随斜杠',
......@@ -133,6 +126,7 @@ export class TournamentConfig {
}
}
@RegisterSchema()
export class YGOTournamentPluginConfig {
@DefineSchema({
type: 'object',
......
import 'source-map-support/register';
import { Context } from 'koishi';
import { YGOTournamentPlugin } from './plugin';
import { YGOTournamentPluginConfigLike } from './config';
import { YGOTournamentPluginConfig } from './config';
export * from './config';
export * from './plugin';
......@@ -14,6 +14,6 @@ declare module 'koishi' {
export const name = 'ygotournament';
const plugin = new YGOTournamentPlugin();
export const schema = plugin.schema;
export function apply(ctx: Context, config: YGOTournamentPluginConfigLike) {
export function apply(ctx: Context, config: YGOTournamentPluginConfig) {
ctx.plugin(plugin, config);
}
......@@ -4,12 +4,11 @@ import {
YGOTournamentPluginConfig,
YGOTournamentPluginConfigLike,
} from './config';
import { schemaFromClass, schemaTransform } from 'koishi-utils-schemagen';
import { classToPlain, plainToClass } from 'class-transformer';
import { Tournament, TournamentWrapper } from './def/challonge';
import { TournamentWrapper } from './def/challonge';
import { S3Client } from '@aws-sdk/client-s3';
import { getSignedUrl } from './presign';
import { Room, SRVProRoomInfo } from './def/srvpro';
import { SRVProRoomInfo } from './def/srvpro';
import moment from 'moment';
import axios, { AxiosRequestConfig } from 'axios';
import ProxyAgent from 'proxy-agent';
......@@ -286,7 +285,7 @@ export class YGOTournamentPlugin {
this.workaroundQuester(this.ctx.http);
this.ctx.on('service/cache', () => {
this.ctx.cache.table('lateDeclarationTime', { maxAge: 3600 * 1000 });
})
});
this.ctx
.command('tournament/late', '迟到杀')
.shortcut('迟到杀')
......@@ -368,13 +367,11 @@ export class YGOTournamentPlugin {
}
name = 'ygotournament-main';
schema: Schema<YGOTournamentPluginConfigLike> = schemaFromClass(
YGOTournamentPluginConfig,
);
schema = YGOTournamentPluginConfig;
apply(ctx: Context, config: YGOTournamentPluginConfigLike) {
apply(ctx: Context, config: YGOTournamentPluginConfig) {
this.ctx = ctx;
this.config = schemaTransform(YGOTournamentPluginConfig, config);
this.config = config;
this.ctx.command('tournament', 'YGOPro 比赛相关命令');
this.initializeTournament();
this.initializeDeckFetch();
......
const path = require('path');
const packgeInfo = require('./package.json');
function externalsFromDep() {
return Object.fromEntries(
[
...Object.keys(packgeInfo.dependencies || {}),
...Object.keys(packgeInfo.peerDependencies || {}),
]
.filter((dep) => dep !== 'source-map-support')
.map((dep) => [dep, dep]),
);
}
const packAll = !!process.env.PACK_ALL;
......@@ -29,20 +41,6 @@ module.exports = {
},
externals: {
koishi: 'koishi',
'proxy-agent': 'proxy-agent',
axios: 'axios',
...(packAll
? {}
: {
'@aws-sdk/client-s3': '@aws-sdk/client-s3',
'@aws-sdk/middleware-sdk-s3': '@aws-sdk/middleware-sdk-s3',
'@aws-sdk/protocol-http': '@aws-sdk/protocol-http',
'@aws-sdk/smithy-client': '@aws-sdk/smithy-client',
'@aws-sdk/util-format-url': '@aws-sdk/util-format-url',
'@aws-sdk/types': '@aws-sdk/types',
'koishi-utils-schemagen': 'koishi-utils-schemagen',
'class-transformer': 'class-transformer',
moment: 'moment',
}),
...(packAll ? {} : externalsFromDep()),
},
};
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