mirror of
https://github.com/musix-org/musix-oss
synced 2024-11-14 03:30:18 +00:00
129 lines
3.3 KiB
TypeScript
129 lines
3.3 KiB
TypeScript
|
export = DBLAPI;
|
||
|
import { EventEmitter } from 'events';
|
||
|
|
||
|
declare class DBLAPI extends EventEmitter {
|
||
|
constructor(token: string, options: DBLAPI.DBLOptions, client?: object);
|
||
|
constructor(token: string, client?: object);
|
||
|
|
||
|
public postStats(serverCount: number, shardId?: number, shardCount?: number): Promise<object>
|
||
|
public getStats(id: string): Promise<DBLAPI.BotStats>
|
||
|
public getBot(id: string): Promise<DBLAPI.Bot>
|
||
|
public getUser(id: string): Promise<DBLAPI.User>
|
||
|
public getBots(query: DBLAPI.BotsQuery): Promise<DBLAPI.BotSearchResult>
|
||
|
public getVotes(): Promise<DBLAPI.Vote[]>
|
||
|
public hasVoted(id: string): Promise<boolean>
|
||
|
public isWeekend(): Promise<boolean>
|
||
|
|
||
|
public token?: string;
|
||
|
|
||
|
private _request(method: string, endpoint: string, data?: object): Promise<object>
|
||
|
|
||
|
public on(event: 'posted', listener: () => void): this;
|
||
|
public on(event: 'error', listener: (error: Error) => void): this;
|
||
|
}
|
||
|
|
||
|
import { Server, ServerResponse, IncomingMessage } from 'http';
|
||
|
declare class DBLWebhook extends EventEmitter {
|
||
|
constructor(port?: number, path?: string, auth?: string, server?: Server)
|
||
|
|
||
|
public port: number;
|
||
|
public path: string;
|
||
|
public auth?: string;
|
||
|
private _server: Server;
|
||
|
private attached: boolean;
|
||
|
private _emitListening(): void;
|
||
|
private _startWebhook(): void;
|
||
|
private _attachWebhook(server: Server): void;
|
||
|
private _handleRequest(req: IncomingMessage, res: ServerResponse): void;
|
||
|
private _returnResponse(res: ServerResponse, statusCode: number, data?: string): void;
|
||
|
|
||
|
public on(event: 'ready', listener: (hostname: string, port: number, path: string) => void): this;
|
||
|
public on(event: 'vote', listener: (bot: string, user: string, type: string, isWeekend: boolean, query?: object) => void): this;
|
||
|
}
|
||
|
|
||
|
declare namespace DBLAPI {
|
||
|
export type DBLOptions = {
|
||
|
statsInterval?: number;
|
||
|
webhookPort?: number;
|
||
|
webhookAuth?: string;
|
||
|
webhookPath?: string;
|
||
|
webhookServer?: Server;
|
||
|
}
|
||
|
|
||
|
export type BotStats = {
|
||
|
server_count: number;
|
||
|
shards: number[];
|
||
|
shard_count: number;
|
||
|
}
|
||
|
|
||
|
export type Bot = {
|
||
|
id: number;
|
||
|
username: string;
|
||
|
discriminator: string;
|
||
|
avatar?: string;
|
||
|
defAvatar: string;
|
||
|
lib: string;
|
||
|
prefix: string;
|
||
|
shortdesc: string;
|
||
|
longdesc?: string;
|
||
|
tags: string[];
|
||
|
website?: string;
|
||
|
support?: string;
|
||
|
github?: string;
|
||
|
owners: number[];
|
||
|
invite?: string;
|
||
|
date: Date;
|
||
|
certifiedBot: boolean;
|
||
|
vanity?: string;
|
||
|
points: number;
|
||
|
}
|
||
|
|
||
|
export type User = {
|
||
|
id: number;
|
||
|
username: string;
|
||
|
discriminator: string;
|
||
|
avatar?: string;
|
||
|
defAvatar: string;
|
||
|
bio?: string;
|
||
|
banner?: string;
|
||
|
social: UserSocial;
|
||
|
color?: string;
|
||
|
supporter: boolean;
|
||
|
certifiedDev: boolean;
|
||
|
mod: boolean;
|
||
|
webMod: boolean;
|
||
|
admin: boolean;
|
||
|
}
|
||
|
|
||
|
export type UserSocial = {
|
||
|
youtube?: string;
|
||
|
reddit?: string;
|
||
|
twitter?: string;
|
||
|
instagram?: string;
|
||
|
github?: string;
|
||
|
}
|
||
|
|
||
|
export type BotsQuery = {
|
||
|
limit?: number;
|
||
|
offset?: number;
|
||
|
search: string;
|
||
|
sort: string;
|
||
|
fields?: string;
|
||
|
}
|
||
|
|
||
|
export type BotSearchResult = {
|
||
|
results: Bot[];
|
||
|
limit: number;
|
||
|
offset: number;
|
||
|
count: number;
|
||
|
total: number;
|
||
|
}
|
||
|
|
||
|
export type Vote = {
|
||
|
username: string;
|
||
|
discriminator: string;
|
||
|
id: string;
|
||
|
avatar: string;
|
||
|
}
|
||
|
}
|