summary refs log tree commit diff
path: root/src/schema
diff options
context:
space:
mode:
Diffstat (limited to 'src/schema')
-rw-r--r--src/schema/Activity.ts38
-rw-r--r--src/schema/Identify.ts52
2 files changed, 49 insertions, 41 deletions
diff --git a/src/schema/Activity.ts b/src/schema/Activity.ts

index 00772743..45bd6fef 100644 --- a/src/schema/Activity.ts +++ b/src/schema/Activity.ts
@@ -1,42 +1,10 @@ +import { Activity } from "fosscord-server-util"; import { EmojiSchema } from "./Emoji"; export const ActivitySchema = { afk: Boolean, status: String, - $activities: [ - { - name: String, // the activity's name - type: Number, // activity type // TODO: check if its between range 0-5 - $url: String, // stream url, is validated when type is 1 - $created_at: Number, // unix timestamp of when the activity was added to the user's session - $timestamps: { - // unix timestamps for start and/or end of the game - start: Number, - end: Number, - }, - $application_id: BigInt, // application id for the game - $details: String, - $State: String, - $emoji: EmojiSchema, - $party: { - $id: String, - $size: [Number], // used to show the party's current and maximum size // TODO: array length 2 - }, - $assets: { - $large_image: String, // the id for a large asset of the activity, usually a snowflake - $large_text: String, // text displayed when hovering over the large image of the activity - $small_image: String, // the id for a small asset of the activity, usually a snowflake - $small_text: String, // text displayed when hovering over the small image of the activity - }, - $secrets: { - $join: String, // the secret for joining a party - $spectate: String, // the secret for spectating a game - $match: String, // the secret for a specific instanced match - }, - $instance: Boolean, - flags: BigInt, // activity flags OR d together, describes what the payload includes - }, - ], + $activities: [Activity], $since: Number, // unix time (in milliseconds) of when the client went idle, or null if the client is not idle }; @@ -56,7 +24,7 @@ export interface ActivitySchema { }; application_id?: bigint; // application id for the game details?: string; - State?: string; + state?: string; emoji?: EmojiSchema; party?: { id?: string; diff --git a/src/schema/Identify.ts b/src/schema/Identify.ts
index cfc3702a..0c458f14 100644 --- a/src/schema/Identify.ts +++ b/src/schema/Identify.ts
@@ -2,32 +2,72 @@ import { ActivitySchema } from "./Activity"; export const IdentifySchema = { token: String, - intents: BigInt, // discord uses a Integer for bitfields we use bigints tho. | instanceOf will automatically convert the Number to a BigInt + $intents: BigInt, // discord uses a Integer for bitfields we use bigints tho. | instanceOf will automatically convert the Number to a BigInt $properties: { - // bruh discord really uses $ in the property key, so we need to double prefix it, because instanceOf treats $ (prefix) as a optional key + // bruh discord really uses $ in the property key for bots, so we need to double prefix it, because instanceOf treats $ (prefix) as a optional key + $os: String, + $browser: String, + $device: String, $$os: String, $$browser: String, $$device: String, + $browser_user_agent: String, + $browser_version: String, + $os_version: String, + $referrer: String, + $referring_domain: String, + $referrer_current: String, + $referring_domain_current: String, + $release_channel: String, + $client_build_number: Number, + $client_event_source: String, }, $presence: ActivitySchema, $compress: Boolean, $large_threshold: Number, $shard: [Number], $guild_subscriptions: Boolean, + $capabilities: Number, + $client_state: { + $guild_hashes: Object, + $highest_last_message_id: BigInt, + $read_state_version: Number, + $user_guild_settings_version: Number, + }, }; export interface IdentifySchema { token: string; properties: { // bruh discord really uses $ in the property key, so we need to double prefix it, because instanceOf treats $ (prefix) as a optional key - $$os: string; - $$browser: string; - $$device: string; + os?: string; + browser?: string; + device?: string; + $os?: string; + $browser?: string; + $device?: string; + browser_user_agent?: string; + browser_version?: string; + os_version?: string; + referrer?: string; + referring_domain?: string; + referrer_current?: string; + referring_domain_current?: string; + release_channel?: "stable" | "dev" | "ptb" | "canary"; + client_build_number?: number; + client_event_source?: any; }; - intents: bigint; // discord uses a Integer for bitfields we use bigints tho. | instanceOf will automatically convert the Number to a BigInt + intents?: bigint; // discord uses a Integer for bitfields we use bigints tho. | instanceOf will automatically convert the Number to a BigInt presence?: ActivitySchema; compress?: boolean; large_threshold?: number; shard?: [number]; guild_subscriptions?: boolean; + capabilities?: number; + client_state?: { + guild_hashes?: any; + highest_last_message_id?: bigint; + read_state_version?: number; + user_guild_settings_version?: number; + }; }