feat: per-download folder picker (builds on #39)#43
Closed
sloevhaug wants to merge 2 commits into
Closed
Conversation
…ents Multi-file torrents currently download everything, wasting bandwidth and disk space when the user only wants specific files. This adds an inline file-selection checklist in the search results detail view so users can pick exactly which files to grab before starting the download. - Engine: applyFileSelection deselects unwanted files at the piece level; per-file progress tracking; selective totalBytes computation. - Queue: add() accepts selectedIndices; onMetadata applies selection and recalculates size; cleanUnwanted relocates deselected piece data to a hidden .unwanted/ directory on completion. - Detail view: temporary metadata-only fetch populates the file list without committing to a download; auto-cleanup on navigation away. - Keys: space toggle, a all, n none (registered in HELP_GROUPS). - Display paths strip the torrent root folder prefix for readability.
Builds on the selective file-download work: pressing d now opens a small folder picker (a path input plus a recent-folders list) before the download starts, so a torrent can go where you want instead of always the single global default. The chosen folder is remembered in an MRU list for next time, and the global default set via `o` is left untouched. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This was referenced Jul 3, 2026
|
This looks solid! Thanks for handling the rebase and resolving the conflicts @sloevhaug . |
Owner
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
Builds on @arjavlamsal's #39 (selective file download for multi-file torrents), rebased onto current
main, and adds a per-download folder picker on top. Credit for the file-selection work is theirs; the new work in this PR is the folder picker.Today every download lands in the single global folder (
config.downloadDir). This adds a small folder prompt when you start a download from the results detail view: type a destination or pick from a recent-folders list (↑↓), then↵starts the download — carrying through #39's file selection. The chosen folder is remembered in an MRU list (recentDirs); the global default set viaois left untouched.Two commits:
feat(download): implement selective file download…— @arjavlamsal (feat(download): implement selective file download for multi-file torrents #39), rebased onto currentmain. The only conflict wassrc/ui/components/Results.tsxagainst the recent seed:leech-compaction / detail-view changes; resolved by keeping their file checklist andmain's tolerantsourceStyle()(so a pasted magnet with no known source doesn't crash).feat: choose the download folder per download— the folder picker (the new contribution here).If #39 merges first, this collapses to just the folder-picker commit. Happy to reshape however works best for landing #39.
Checklist
npm run typecheckis cleannpm testpasses (100 tests; addspushRecentDirMRU +DownloadFolderPromptcoverage)HELP_GROUPSandfooterHints(no new global key —dnow opens the folder prompt; feat(download): implement selective file download for multi-file torrents #39'sspace/a/nare already in the cheatsheet)Storefield, I updatedmakeStoreinscripts/render-previews-impl.tsx(openDownloadFolder)normalizeDownloadDir/expandHome)feat:)🤖 Generated with Claude Code