mirror of
https://github.com/truewhile/MeBox.git
synced 2026-09-29 19:36:36 +08:00
36 lines
969 B
TypeScript
36 lines
969 B
TypeScript
import { api } from './client'
|
|
import type { DownloadTask, QBitTorrent } from '../types'
|
|
|
|
export interface DownloadsState {
|
|
tasks: DownloadTask[]
|
|
torrents: QBitTorrent[] | null
|
|
}
|
|
|
|
export interface AddDownloadInput {
|
|
url: string
|
|
save_path?: string
|
|
title?: string
|
|
poster_url?: string
|
|
backdrop_url?: string
|
|
overview?: string
|
|
media_type?: string
|
|
media_category?: string
|
|
source_category?: string
|
|
}
|
|
|
|
export const downloadsAPI = {
|
|
list: () => api.get<DownloadsState>('/downloads').then((r) => r.data),
|
|
|
|
add: (url: string, savePath = '', meta: Omit<AddDownloadInput, 'url' | 'save_path'> = {}) =>
|
|
api
|
|
.post<DownloadTask>('/downloads', { url, save_path: savePath, ...meta })
|
|
.then((r) => r.data),
|
|
|
|
remove: (hash: string, deleteFiles = false) =>
|
|
api
|
|
.delete(`/downloads/${hash}?delete_files=${deleteFiles ? 'true' : 'false'}`)
|
|
.then((r) => r.data),
|
|
|
|
reload: () => api.post('/downloads/reload').then((r) => r.data),
|
|
}
|