From f560a62c8f428378f4c1d514595b56cb88009490 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 --- components/GameStatusButton.vue | 105 ++++----- components/LibrarySearch.vue | 2 + package.json | 2 +- pages/library/[id]/index.vue | 11 + pages/queue.vue | 7 +- src-tauri/Cargo.lock | 2 +- src-tauri/Cargo.toml | 2 +- src-tauri/src/client/autostart.rs | 3 +- src-tauri/src/client/mod.rs | 2 +- src-tauri/src/database/commands.rs | 11 +- src-tauri/src/database/db.rs | 65 ++++-- 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 +- src-tauri/src/download_manager/mod.rs | 2 +- src-tauri/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 +- src-tauri/src/error/backup_error.rs | 4 +- src-tauri/src/error/mod.rs | 4 +- 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-tauri/src/games/downloads/drop_data.rs | 105 +++++++++ src-tauri/src/games/downloads/mod.rs | 3 +- .../src/games/downloads/stored_manifest.rs | 79 ------- src-tauri/src/games/downloads/validate.rs | 201 +++++++++++++++++ src-tauri/src/games/library.rs | 86 +++++-- src-tauri/src/lib.rs | 6 +- src-tauri/src/process/process_manager.rs | 14 +- src-tauri/src/remote/auth.rs | 6 +- src-tauri/src/remote/commands.rs | 4 +- src-tauri/src/remote/remote.rs | 8 +- src-tauri/src/remote/server_proto.rs | 5 +- src-tauri/tauri.conf.json | 2 +- types.ts | 2 + 39 files changed, 932 insertions(+), 361 deletions(-) create mode 100644 src-tauri/src/games/downloads/drop_data.rs delete mode 100644 src-tauri/src/games/downloads/stored_manifest.rs create mode 100644 src-tauri/src/games/downloads/validate.rs diff --git a/components/GameStatusButton.vue b/components/GameStatusButton.vue index 9731721..a10fd27 100644 --- a/components/GameStatusButton.vue +++ b/components/GameStatusButton.vue @@ -1,78 +1,52 @@