From c6aa70a64731b608fade3acab48c1d1d2df280b6 Mon Sep 17 00:00:00 2001 From: 0t4u <61939142+0t4u@users.noreply.github.com> Date: Mon, 5 Dec 2022 20:33:28 +0000 Subject: Add files via upload --- modules/database.d.ts | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 modules/database.d.ts (limited to 'modules/database.d.ts') diff --git a/modules/database.d.ts b/modules/database.d.ts new file mode 100644 index 0000000..fb19a39 --- /dev/null +++ b/modules/database.d.ts @@ -0,0 +1,170 @@ +/** + * Video data + */ + +export type VideoFile = { + name: string; + size: number; + url?: string; +}; + +export type VideoMetadata = { + video_id: string; + channel_name: string; + channel_id: string; + upload_date: string; + title: string; + description: string; + duration: number; + width: number; + height: number; + fps: number; + format_id: string; + view_count: number; + like_count: number; + dislike_count: number; + archived_timestamp: string; + files: VideoFile[]; + drive_base: string; + timestamps?: { + actualStartTime?: string; + publishedAt?: string; + scheduledStartTime?: string; + actualEndTime?: string; + discoveredUnavailable?: string; + }; +}; + +export type ElasticSearchDocument = { + _index: string; + _type: string; + _id: string; + _score: string; + _source: T; +}; + +export type ElasticSearchResult = { + took: number; + timed_out: boolean; + _shards: { + total: number; + successful: number; + skipped: number; + failed: number; + }; + hits: { + total: { + value: number; + relation: "eq" | "gt" | "lt"; + }; + max_score: number; + hits: Array>; + }; +}; + +/** + * Chat replay + */ + +type ChatMessageEmoteImage = { + url: string; + id: string; + width?: number; + height?: number; +}; + +type ChatMessageEmote = { + id: string; + name: string; + shortcuts: string[]; + search_terms: string[]; + images: ChatMessageEmoteImage[]; + is_custom_emoji: boolean; +}; + +type ChatMessageBase = { + time_in_seconds: number; + action_type: "add_chat_item" | "add_live_chat_ticker_item" | string; + message_id: string; + timestamp: number; + time_text: string; + message: string; + emotes?: ChatMessageEmote[]; +}; + +type ChatMessageImage = { + url: string; + id: string; + width?: number; + height?: number; +}; + +type ChatMessageAuthorBadge = { + title: string; + icons: ChatMessageImage[]; +}; + +type ChatMessageAuthor = { + name: string; + id: string; + images: ChatMessageImage[]; + badges?: ChatMessageAuthorBadge[]; +}; + +type ChatMessageMoney = { + text: string; + amount: number; + currency: string; + currency_symbol: string; +}; + +type ChatViewerEngagementMessage = ChatMessageBase & { + icon: "YOUTUBE_ROUND"; + message_type: "viewer_engagement_message"; +}; + +type ChatTextMessage = ChatMessageBase & { + message_type: "text_message"; + author: ChatMessageAuthor; +}; + +type ChatMembershipItem = ChatMessageBase & { + message_type: "membership_item"; + author: ChatMessageAuthor; +}; + +type ChatPaidMessage = ChatMessageBase & { + message_type: "paid_message"; + author: ChatMessageAuthor & { + name_text_colour?: string; + }; + money: ChatMessageMoney; + timestamp_colour: string; + body_background_colour: string; + header_text_colour: string; + header_background_colour: string; + body_text_colour: string; +}; + +export type ChatMessage = + | ChatViewerEngagementMessage + | ChatTextMessage + | ChatMembershipItem + | ChatPaidMessage; + +export const ChatMessageTypes = [ + "paid_message", + "membership_item", + "text_message", + "viewer_engagement_message", +] as const; +export type ChatMessageType = typeof ChatMessageTypes[number]; + +/** + * Search logs + */ + +export type ElasticSearchLog = { + timestamp: string; + query: string; +}; -- cgit v1.2.3