diff --git a/src/client/components/ComicDetail/TorrentSearchPanel.tsx b/src/client/components/ComicDetail/TorrentSearchPanel.tsx index 983b561..05f6d40 100644 --- a/src/client/components/ComicDetail/TorrentSearchPanel.tsx +++ b/src/client/components/ComicDetail/TorrentSearchPanel.tsx @@ -3,12 +3,33 @@ import React, { useCallback, ReactElement, useEffect, useState } from "react"; import { useQuery, useQueryClient } from "@tanstack/react-query"; import axios from "axios"; import { Form, Field } from "react-final-form"; -import { PROWLARR_SERVICE_BASE_URI } from "../../constants/endpoints"; +import { + PROWLARR_SERVICE_BASE_URI, + QBITTORRENT_SERVICE_BASE_URI, +} from "../../constants/endpoints"; +import { isEmpty, isNil } from "lodash"; export const TorrentSearchPanel = (props): ReactElement => { const [prowlarrSettingsData, setProwlarrSettingsData] = useState({}); + const [searchTerm, setSearchTerm] = useState(""); + const [torrentToDownload, setTorrentToDownload] = useState([]); - const { data } = useQuery({ + const { data: qbittorrentConnectionResult } = useQuery({ + queryFn: async () => + axios({ + url: `${QBITTORRENT_SERVICE_BASE_URI}/connect`, + method: "POST", + data: { + hostname: "localhost", + protocol: "http", + port: "8080", + username: "admin", + password: "password", + }, + }), + queryKey: ["qbittorrentConnection"], + }); + const { data, isSuccess } = useQuery({ queryFn: async () => axios({ url: `${PROWLARR_SERVICE_BASE_URI}/search`, @@ -18,25 +39,46 @@ export const TorrentSearchPanel = (props): ReactElement => { apiKey: "c4f42e265fb044dc81f7e88bd41c3367", offset: 0, categories: [7030], - query: "the darkness", + query: searchTerm, host: "localhost", limit: 100, type: "search", indexerIds: [2], }, }), - queryKey: ["prowlarrSettingsData"], + queryKey: ["prowlarrSettingsData", searchTerm], + enabled: searchTerm !== "", }); - console.log(data?.data); + + const { data: addTorrentResult } = useQuery({ + queryFn: async () => + axios({ + url: `${QBITTORRENT_SERVICE_BASE_URI}/addTorrent`, + method: "POST", + data: { + torrentToDownload, + }, + }), + queryKey: ["addTorrentResult", torrentToDownload], + enabled: !isEmpty(torrentToDownload), + }); + console.log(addTorrentResult); + const searchProwlarrIndexer = (evt) => { + setSearchTerm(evt.searchTerm); + }; + const downloadTorrent = (evt) => { + console.log(evt); + setTorrentToDownload(evt); + }; return ( <>