feat: add local library import#30
Open
kanya-approve wants to merge 6 commits into
Open
Conversation
e2f56e7 to
f254f64
Compare
- Remove unused `import_paths` method on `LocalMusicImporter` - Drop redundant `LOCAL_IMPORT_AUDIO_EXTENSIONS` union (the same extensions were already added to `SUPPORTED_AUDIO_EXTENSIONS`) - Simplify the tautological `len(parts) == 1` guard in `clean_tag_list` - Factor `PickAnalyzerFiles` / `PickImportFiles` onto a shared `pickAudioFiles(title)` helper - Parse local-file metadata once in `run_local_import` and pass the pre-parsed tracks (and parse errors) into `import_files`, removing the duplicate parse pass inside `import_file`
- Emit a `mode: "local"` discriminator on the local-import `playlist_summary` payload and switch the frontend to key the "Failed imports" / "Could not source" label off that instead of comparing `summary.url === 'local import'`. - Document local library import in FEATURES.md (new section after Smart Deduplication) and add a one-line callout in README. - Ignore `antra-wails/_pyinstaller_work/`, the transient pyinstaller scratch directory.
The CI AppImage was using `frontend/src/assets/images/logo-universal.png` (the 1024x811 universal banner), while the in-app logo is the square 1254x1254 `frontend/public/Antra_newlogo.png`. Use the same icon for the AppImage so it matches the desktop app's identity.
Author
Author
|
When you say "AI GENERATED", do you mean vibe-coded? |
Author
|
Yes but I've tested this and it actually works |
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.
Summary
Add local library import — bring existing audio files into Antra's library using the same structure, tagging, and deduplication as URL downloads.
LocalMusicImporterreads tags (FLAC / MP3 / MP4 + generic via mutagen), falls back to file-path inference for missing fields, and copies each file into the configured library layout.lrc/.txtlyrics next to each audio fileOther changes
^[A-Z]{2}[A-Z0-9]{3}\d{7}$, lowercase for dedup. Guards against malformed tags from local files.resetLibraryProgress()and reuse from both URL download and local import flows"mode": "local"discriminator on the local-importplaylist_summaryso the "Failed imports" vs "Could not source" label keys off that instead of string-matchingsummary.urlpickAudioFiles(title)helper backs bothPickAnalyzerFilesandPickImportFiles.gitignorecovers the transientantra-wails/_pyinstaller_work/Antra_newlogo.png(the in-app logo) instead of the olderlogo-universal.pngbannerDocs
FEATURES.mdREADME.mdValidation
go build ./...cleanpython -c "import antra.utils.local_importer; import antra.json_cli"and smoke tests forclean_tag_listnpm run check— 0 errors (existing warnings/hints remain)wails build -clean -tags webkit2_41→appimagetool) and ran itAI GENERATED