Files
hexerade/src/types/e621-types.d.ts
T
2026-05-29 08:43:48 -04:00

157 lines
3.1 KiB
TypeScript

export type E621User = {
wiki_page_version_count: number
artist_version_count: number
pool_version_count: number
forum_post_count: number
comment_count: number
flag_count: number
favorite_count: number
positive_feedback_count: number
neutral_feedback_count: number
negative_feedback_count: number
upload_limit: number
profile_about: string
profile_artinfo: string
id: number
created_at: string
name: string
level: number
base_upload_limit: number
post_upload_count: number
post_update_count: number
note_update_count: number
is_banned: boolean
can_approve_posts: boolean
can_upload_free: boolean
level_string: string
avatar_id: number
}
export type E621Post = {
id: number
created_at: string
updated_at: string
file: E621File
preview: E621PreviewFile
sample: E621SampleFile
score: E621ScoreData
tags: E621Tags
locked_tags: string[]
change_seq: number
flags: E621FlagData
rating: 's' | 'q' | 'e'
fav_count: number
sources: string[]
pools: number[]
relationships: E621PostRelationships
approver_id: number
uploader_id: number
description: string
comment_count: number
is_favorited: boolean
has_notes: boolean
duration: number | null
}
export type E621File = {
width: number
height: number
ext: 'png' | 'jpg' | 'mp4' | 'webm'
size: number
md5: string
url: string | null
}
export type E621PreviewFile = {
width: number
height: number
url: string | null
}
export type E621SampleFile = {
has: boolean
height: number
width: number
url: string | null
// Typing this will be a pain in the ass, so I skipped it for now.
alternates: any
}
export type E621ScoreData = {
up: number
down: number
total: number
}
export type E621Tags = {
general: string[]
artist: string[]
contributor: string[]
copyright: string[]
character: string[]
species: string[]
invalid: string[]
meta: string[]
lore: string[]
}
export type E621FlagData = {
pending: boolean
flagged: boolean
note_locked: boolean
status_locked: boolean
rating_locked: boolean
deleted: boolean
}
export type E621PostRelationships = {
parent_id: number | null
has_children: boolean
has_active_children: boolean
children: number[]
}
export type Ticket = {
id: number
user_id: number
user: string
claimant: string | null
target?: string
accused_id?: number
target_id: number
status: 'pending' | 'partial' | 'approved'
category: 'blip' | 'comment' | 'dmail' | 'forum' | 'pool' | 'post' | 'set' | 'user' | 'wiki'
reason: string
};
export type TicketUpdate = {
action: 'claim' | 'create' | 'unclaim' | 'update'
ticket: Ticket
};
export type Ban = {
id: number
user_id: number
banner_id: number
expires_at: string
reason: string
};
export type BanUpdate = {
action: 'create' | 'update' | 'delete'
ban: Ban
};
export type RecordCategory = 'positive' | 'negative' | 'neutral'
export type Record = {
id: number
user_id: number
creator_id: number
created_at: string
body: string
category: RecordCategory
updated_at: string
updater_id: number
is_deleted: boolean
}