From b06c85d6dc9114fa8b662867d0ea6423d0146416 Mon Sep 17 00:00:00 2001 From: Rishi Ghan Date: Sun, 13 Oct 2024 23:42:03 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20Fixing=20broken=20DC++=20downloa?= =?UTF-8?q?ds?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ComicDetail/AcquisitionPanel.tsx | 281 +++++++++--------- .../components/ComicDetail/DownloadsPanel.tsx | 9 +- 2 files changed, 147 insertions(+), 143 deletions(-) diff --git a/src/client/components/ComicDetail/AcquisitionPanel.tsx b/src/client/components/ComicDetail/AcquisitionPanel.tsx index 8687a03..88c24d4 100644 --- a/src/client/components/ComicDetail/AcquisitionPanel.tsx +++ b/src/client/components/ComicDetail/AcquisitionPanel.tsx @@ -35,8 +35,14 @@ export const AcquisitionPanel = ( priority: PriorityEnum; } interface SearchResult { - id: number; + id: string; // Add other properties as needed + slots: any; + type: any; + users: any; + name: string; + dupe: Boolean; + size: number; } const handleSearch = (searchQuery) => { @@ -122,7 +128,6 @@ export const AcquisitionPanel = ( }; socketIOInstance.on("searchResultAdded", ({ result }: any) => { - console.log("yelaweda", result); setAirDCPPSearchResults((previousState) => { const exists = previousState.some( (item) => result.id === item.id, @@ -135,7 +140,6 @@ export const AcquisitionPanel = ( }); socketIOInstance.on("searchResultUpdated", ({ result }: any) => { - console.log("endh", result); // ...update properties of the existing result in the UI const bundleToUpdateIndex = airDCPPSearchResults?.findIndex( (bundle) => bundle.id === result.id, @@ -201,141 +205,7 @@ export const AcquisitionPanel = ( search(manualQuery); }; - console.log(airDCPPSearchResults); - // const comment = `
- // - // - // - // - // - // - // - // - // - // - // {map(airDCPPSearchResults, ({ result, search_id }, idx) => { - // return ( - // - // - // - // - // - // - // ); - // })} - // - //
- // Name - // - // Type - // - // Slots - // - // Actions - //
- //

- // {result.type.id === "directory" ? ( - // - // ) : null} - // {ellipsize(result.name, 70)} - //

- // - //
- //
- //
- // {!isNil(result.dupe) ? ( - // - // - // - // - // - // - // Dupe - // - // - // ) : null} - // - // {/* Nicks */} - // - // - // - // - // - // - // {result.users.user.nicks} - // - // - // {/* Flags */} - // {result.users.user.flags.map((flag, idx) => ( - // - // - // - // - // - // - // {flag} - // - // - // ))} - //
- //
- //
- //
- // {/* Extension */} - // - // - // - // - // - // - // {result.type.str} - // - // - // - // {/* Slots */} - // - // - // - // - // - // - // {result.slots.total} slots; {result.slots.free} free - // - // - // - // - //
- //
`; + return ( <>
@@ -445,7 +315,140 @@ export const AcquisitionPanel = ( {/* AirDC++ results */}
{!isNil(airDCPPSearchResults) && !isEmpty(airDCPPSearchResults) ? ( - <> +
+ + + + + + + + + + + {map(airDCPPSearchResults, ({ dupe, type, name, id, slots, users, size }, idx) => { + return ( + + + + + + + ); + })} + +
+ Name + + Type + + Slots + + Actions +
+

+ {type.id === "directory" ? ( + + ) : null} + {ellipsize(name, 70)} +

+ +
+
+
+ {!isNil(dupe) ? ( + + + + + + + Dupe + + + ) : null} + + {/* Nicks */} + + + + + + + {users.user.nicks} + + + {/* Flags */} + {users.user.flags.map((flag, idx) => ( + + + + + + + {flag} + + + ))} +
+
+
+
+ {/* Extension */} + + + + + + + {type.str} + + + + {/* Slots */} + + + + + + + {slots.total} slots; {slots.free} free + + + + +
+
) : (
([]); const [torrentDetails, setTorrentDetails] = useState([]); - const [activeTab, setActiveTab] = useState("torrents"); + const [activeTab, setActiveTab] = useState("directconnect"); const { airDCPPSocketInstance, socketIOInstance } = useStore( useShallow((state: any) => ({ airDCPPSocketInstance: state.airDCPPSocketInstance, socketIOInstance: state.socketIOInstance, })), ); - + // React to torrent progress data sent over websockets socketIOInstance.on("AS_TORRENT_DATA", (data) => { const torrents = data.torrents @@ -60,7 +60,7 @@ export const DownloadsPanel = ( }), }); const getBundles = async (comicObject) => { - if (comicObject?.data.acquisition.directconnect) { + if (!isNil(comicObject?.data.acquisition.directconnect)) { const filteredBundles = comicObject.data.acquisition.directconnect.downloads.map( async ({ bundleId }) => { @@ -87,6 +87,7 @@ export const DownloadsPanel = ( useEffect(() => { getBundles(comicObject).then((result) => { + console.log("mingi", result); setBundles(result); }); }, [comicObject]);