models

This commit is contained in:
Flam3rboy 2021-02-01 21:47:16 +01:00
parent 7158521911
commit 645d49c07b
5 changed files with 129 additions and 4 deletions

19
src/models/Channel.ts Normal file
View File

@ -0,0 +1,19 @@
export interface Channel {
id: bigint;
guild_id: bigint;
last_message_id: string;
last_pin_timestamp: string;
name: string;
nsfw: boolean;
parent_id: bigint;
position: number;
rate_limit_per_user: number;
topic: string | null;
type: number;
permission_overwrites: {
allow: bigint;
deny: bigint;
id: bigint;
type: number;
}[];
}

12
src/models/Emoji.ts Normal file
View File

@ -0,0 +1,12 @@
export interface Emoji {
allNamesString: string; // e.g. :thonk:
animated: boolean;
available: boolean;
guildId: bigint;
id: bigint;
managed: boolean;
name: string;
require_colons: boolean;
url: string;
roles: [];
}

38
src/models/Guild.ts Normal file
View File

@ -0,0 +1,38 @@
export interface Guild {
id: bigint;
name: string;
icon: string; // e.g. "28776e7ad42922582be25bb06cdc5b53"
icon_hash: string;
afk_channel_id: bigint;
afk_timeout: number;
application_id: bigint;
banner: string; // id
description: string;
explicit_content_filter: number;
features: string[];
/* guild_hashes: // ? what is this
channels: {hash: "uZsNP+TWAFY", omitted: false}
metadata: {hash: "JCboqYj68bQ", omitted: false}
roles: {hash: "1d7EJBRgVqg", omitted: false}
version: 1
*/
joined_at: string; // user specific, Date Iso: "2021-01-23T19:01:23.126002+00:00"
large: boolean;
lazy: boolean; // ? what is this
max_members: number; // e.g. default 100.000
max_video_channel_users: number; // ? default: 25, is this max 25 streaming or watching
member_count: number; // current member count
mfa_level: number;
owner_id: bigint;
preferred_locale: string; // only partnered/verified guilds can choose this
premium_subscription_count: number; // number of boosts
premium_tier: number; // ? what is this
public_updates_channel_id: bigint; //
rules_channel_id: bigint;
splash: string; // e.g. "32bec3d01f1dc90933cbb0bd75d333b0"
system_channel_flags: number;
system_channel_id: bigint;
vanity_url_code: string;
verification_level: number;
threads: []; // ? not yet finished
}

9
src/models/Role.ts Normal file
View File

@ -0,0 +1,9 @@
export interface Role {
color: number;
hoist: boolean;
managed: boolean;
mentionable: boolean;
name: string;
permissions: bigint;
position: number;
}

View File

@ -1,15 +1,62 @@
import { UserFlags } from "../util/UserFlags"; import { UserFlags } from "../util/UserFlags";
export interface User { export interface User {
id: BigInt; id: bigint;
username: string; username: string;
discriminator: string; discriminator: string;
avatar: string; avatar: string | null;
bot: boolean; bot: boolean;
system: boolean; system: boolean;
mfa_enabled: boolean; mfa_enabled: boolean;
locale: string; created_at: number;
verified: boolean; verified: boolean;
email: string; email: string;
flags: UserFlags; flags: bigint; // TODO: automatically convert BigInt to BitField of UserFlags
hash: string; // hash of the password, salt is saved in password (bcrypt)
valid_tokens_since: number; // all tokens with a previous issue date are invalid
user_settings: UserSettings;
}
export interface UserSettings {
afk_timeout: number;
allow_accessibility_detection: boolean;
animate_emoji: boolean;
animate_stickers: number;
contact_sync_enabled: boolean;
convert_emoticons: boolean;
custom_status: {
emoji_id: bigint | null;
emoji_name: string | null;
expires_at: number | null;
text: string | null;
};
default_guilds_restricted: boolean;
detect_platform_accounts: boolean;
developer_mode: boolean;
disable_games_tab: boolean;
enable_tts_command: boolean;
explicit_content_filter: number;
friend_source_flags: { all: boolean };
gif_auto_play: boolean;
guild_folders: // every top guild is displayed as a "folder"
{
color: number;
guild_ids: bigint[];
id: number;
name: string;
}[];
guild_positions: bigint[]; // guild ids ordered by position
inline_attachment_media: boolean;
inline_embed_media: boolean;
locale: string; // en_US
message_display_compact: boolean;
native_phone_integration_enabled: boolean;
render_embeds: boolean;
render_reactions: boolean;
restricted_guilds: bigint[];
show_current_game: boolean;
status: "online" | "offline" | "dnd" | "idle";
stream_notifications_enabled: boolean;
theme: "dark" | "white"; // dark
timezone_offset: number; // e.g -60
} }