diff --git a/src/components/Dialogs/AddTorrentDialog.vue b/src/components/Dialogs/AddTorrentDialog.vue index f4f4cb07..f1474f22 100644 --- a/src/components/Dialogs/AddTorrentDialog.vue +++ b/src/components/Dialogs/AddTorrentDialog.vue @@ -137,19 +137,17 @@ const inactiveSeedingTimeLimit = computed({ function submit() { if (!isFormValid.value) return - const promise = torrentStore.addTorrents(form.value, files.value) - .then(() => { - addTorrentStore.resetForm() - close() - }) - - toast.promise(promise, { + toast.promise(torrentStore.addTorrents(files.value, urls.value, form.value), { pending: t('dialogs.add.pending'), error: t('dialogs.add.error', addTorrentStore.pendingTorrentsCount), success: t('dialogs.add.success', addTorrentStore.pendingTorrentsCount) }, { autoClose: 1500 }) + .then(() => { + addTorrentStore.resetForm() + close() + }) } function close() { diff --git a/src/services/qbit.ts b/src/services/qbit.ts index d6ea59a5..d50a834f 100644 --- a/src/services/qbit.ts +++ b/src/services/qbit.ts @@ -226,14 +226,14 @@ export class QBitApi { // Post - async addTorrents(params: AddTorrentPayload, torrents: File[]): Promise<void> { + async addTorrents(torrents: File[], urls: string, params: AddTorrentPayload): Promise<void> { let data if (torrents) { // torrent files const formData = new FormData() if (params) { for (const [key, value] of Object.entries(params)) { - formData.append(key, value) + !!value && formData.set(key, value) } } @@ -246,7 +246,7 @@ export class QBitApi { // magnet links data = new URLSearchParams(params as Parameters) } - + !!urls && data.set('urls', urls) return this.axios.post('/torrents/add', data) } diff --git a/src/stores/torrents.ts b/src/stores/torrents.ts index 495d2317..65834923 100644 --- a/src/stores/torrents.ts +++ b/src/stores/torrents.ts @@ -99,8 +99,8 @@ export const useTorrentStore = defineStore('torrents', () => { await qbit.setTorrentLocation(hashes, newPath) } - async function addTorrents(payload: AddTorrentPayload, torrents: File[]) { - return await qbit.addTorrents(payload, torrents) + async function addTorrents(torrents: File[], urls: string, payload: AddTorrentPayload) { + return await qbit.addTorrents(torrents, urls, payload) } async function getTorrentProperties(hash: string) { diff --git a/src/types/qbit/payloads/AddTorrentPayload.ts b/src/types/qbit/payloads/AddTorrentPayload.ts index 0a8d5727..bdb55f6b 100644 --- a/src/types/qbit/payloads/AddTorrentPayload.ts +++ b/src/types/qbit/payloads/AddTorrentPayload.ts @@ -49,8 +49,6 @@ export default interface AddTorrentPayload { tags?: string /** Set torrent upload speed limit. Unit in bytes/second */ upLimit?: number - /** URLs separated with newlines */ - urls?: string /** Whether to enable use of `downloadPath` */ useDownloadPath?: boolean }