This commit is contained in:
Moon.eth
2026-07-29 19:37:17 +09:00
parent 4eb785b6ad
commit 8f0d47b850
10 changed files with 614 additions and 22 deletions
+11
View File
@@ -15,6 +15,7 @@ import type {
InstanceInfo,
MediaAttachment,
Notification,
Poll,
Relationship,
SearchResults,
Status,
@@ -229,6 +230,11 @@ export interface ComposeOptions {
sensitive?: boolean
media_ids?: string[]
language?: string
poll?: {
options: string[]
expires_in: number
multiple: boolean
}
}
export function postStatus(api: ApiClient, options: ComposeOptions): Promise<Status> {
@@ -242,6 +248,7 @@ export function postStatus(api: ApiClient, options: ComposeOptions): Promise<Sta
if (options.sensitive) body.sensitive = true
if (options.media_ids?.length) body.media_ids = options.media_ids
if (options.language) body.language = options.language
if (options.poll) body.poll = options.poll
return api.post<Status>('/api/v1/statuses', body)
}
@@ -259,6 +266,10 @@ export function reblogStatus(api: ApiClient, id: string, on: boolean): Promise<S
return api.post<Status>(`/api/v1/statuses/${encodeURIComponent(id)}/${action}`)
}
export function votePoll(api: ApiClient, id: string, choices: number[]): Promise<Poll> {
return api.post<Poll>(`/api/v1/polls/${encodeURIComponent(id)}/votes`, { choices })
}
export async function uploadMedia(api: ApiClient, file: File, description?: string): Promise<MediaAttachment> {
const form = new FormData()
form.set('file', file)