From 88f8742143282a19a8671b48014fe0136187d519 Mon Sep 17 00:00:00 2001 From: DecDuck Date: Mon, 14 Jul 2025 16:31:06 +1000 Subject: [PATCH] Download fixes (#63) * refactor: Rename StoredManifest to DropData Signed-off-by: quexeky * fix: Downloads when resuming would truncate files which had not been finished Signed-off-by: quexeky * chore: Didn't import debug macro Signed-off-by: quexeky * fix: Download chunks with wrong indexes Migrated to using checksums as indexes instead Signed-off-by: quexeky * feat: Resume download button Also added DBWrite and DBRead structs to make database management easier Signed-off-by: quexeky * feat: Download resuming Signed-off-by: quexeky * feat: Resume button and PartiallyInstalled status Signed-off-by: quexeky * feat: Download validation Signed-off-by: quexeky * chore: Ran cargo fix & cargo fmt Signed-off-by: quexeky * fix: download validation, installs, etc * chore: version bump --------- Signed-off-by: quexeky Co-authored-by: quexeky --- desktop/components/GameStatusButton.vue | 105 ++++----- desktop/components/LibrarySearch.vue | 2 + desktop/package.json | 2 +- desktop/pages/library/[id]/index.vue | 11 + desktop/pages/queue.vue | 7 +- desktop/src-tauri/Cargo.lock | 2 +- desktop/src-tauri/Cargo.toml | 2 +- desktop/src-tauri/src/client/autostart.rs | 3 +- desktop/src-tauri/src/client/mod.rs | 2 +- desktop/src-tauri/src/database/commands.rs | 11 +- desktop/src-tauri/src/database/db.rs | 65 ++++-- desktop/src-tauri/src/database/models.rs | 209 +++++++++++++----- .../src/download_manager/download_manager.rs | 4 +- .../download_manager_builder.rs | 32 ++- .../src/download_manager/downloadable.rs | 4 +- desktop/src-tauri/src/download_manager/mod.rs | 2 +- .../src/download_manager/util/mod.rs | 2 +- .../download_manager/util/progress_object.rs | 21 +- .../util/rolling_progress_updates.rs | 5 + .../src/error/application_download_error.rs | 2 +- desktop/src-tauri/src/error/backup_error.rs | 4 +- desktop/src-tauri/src/error/mod.rs | 4 +- desktop/src-tauri/src/games/commands.rs | 5 +- .../src-tauri/src/games/downloads/commands.rs | 50 ++++- .../src/games/downloads/download_agent.rs | 170 ++++++++------ .../src/games/downloads/download_logic.rs | 46 +++- .../src/games/downloads/drop_data.rs | 105 +++++++++ desktop/src-tauri/src/games/downloads/mod.rs | 3 +- .../src/games/downloads/stored_manifest.rs | 79 ------- .../src-tauri/src/games/downloads/validate.rs | 201 +++++++++++++++++ desktop/src-tauri/src/games/library.rs | 86 +++++-- desktop/src-tauri/src/lib.rs | 6 +- .../src-tauri/src/process/process_manager.rs | 14 +- desktop/src-tauri/src/remote/auth.rs | 6 +- desktop/src-tauri/src/remote/commands.rs | 4 +- desktop/src-tauri/src/remote/remote.rs | 8 +- desktop/src-tauri/src/remote/server_proto.rs | 5 +- desktop/src-tauri/tauri.conf.json | 2 +- desktop/types.ts | 2 + 39 files changed, 932 insertions(+), 361 deletions(-) create mode 100644 desktop/src-tauri/src/games/downloads/drop_data.rs delete mode 100644 desktop/src-tauri/src/games/downloads/stored_manifest.rs create mode 100644 desktop/src-tauri/src/games/downloads/validate.rs diff --git a/desktop/components/GameStatusButton.vue b/desktop/components/GameStatusButton.vue index 97317214..a10fd275 100644 --- a/desktop/components/GameStatusButton.vue +++ b/desktop/components/GameStatusButton.vue @@ -1,78 +1,52 @@