Commit Graph

15 Commits

Author SHA1 Message Date
7f719bec11 feat(wip): add tauri-plugin-oauth and enable Spotify oauth 2025-10-15 12:53:51 -04:00
8d773f8188 feat(device): add device sync button 2025-10-15 11:45:52 -04:00
ca5f79b23a feat(settings): add button to open app data folder 2025-10-05 00:17:33 -04:00
96a01bdced refactor: move download/decryption to backend to fix UI freezing
Now implements streaming download+decryption entirely in Rust:
- Added reqwest/tokio/futures-util dependencies
- Created StreamingDecryptor for chunk-by-chunk decryption
- New download_and_decrypt_track command streams to disk directly
- Frontend simplified to single invoke() call
2025-10-04 20:53:59 -04:00
8e8afb0f66 fix: use rust blowfish instead of node
The JavaScript blowfish-node library had a critical bug where it would
sometimes return 2047 bytes instead of 2048 during decryption, causing
byte alignment issues that corrupted FLAC audio at specific intervals
(~every 32/82 seconds).

Changes:
- Add Rust dependencies: blowfish, md5, byteorder
- Implement new module in Rust with proper Blowfish CBC
- Add decryption Tauri command
- Update frontend to call Rust decryption instead of JavaScript
- Remove buggy JavaScript blowfish implementation
- Update decryption algorithm (6144-byte windows)
2025-10-02 20:26:14 -04:00
d774aba0d4 feat(dz): add cache clearing and database reset functionality
Add ability to fully clear cached online library by deleting and recreating the database file.
Integrate new Clear Cache option in settings UI, which restarts the app after clearing.
Remove unused artist/album fields from cache and UI. Add process plugin for relaunch.
2025-10-02 13:40:13 -04:00
0d7361db4b refactor: migrate audio metadata tagging from ts to rust
- Add id3 and metaflac crates for native audio tagging
- Create tagger.rs with separate tag_mp3() and tag_flac() functions
- Implement tag_audio_file Tauri command for unified tagging interface
- Support full metadata: title, artist, album, track#, ISRC, BPM, lyrics, cover art
- Create TypeScript wrapper (tagger.ts) for calling Rust backend
- Update downloader.ts to use Rust tagging for both MP3 and FLAC
- Remove browser-id3-writer dependency (no browser FLAC support)
- Inline lyrics parsing in addToQueue.ts (no longer needed in tagger)
2025-10-02 11:39:56 -04:00
8391897f54 feat(library): add sqlite-backed library sync and stats
BREAKING CHANGE: Library data is now stored in a database and will require an initial sync. Existing in-memory library data is no longer used.
2025-10-01 20:02:57 -04:00
bdfd245b4e deps: tauri sql 2025-10-01 19:27:41 -04:00
515a744734 feat(library): add album and artist scanning with cover art 2025-10-01 11:32:40 -04:00
48d8b4a593 feat(auth): implement purple music app authentication 2025-09-30 21:56:45 -04:00
d9e7e4885d deps: add HTTP plugin support 2025-09-30 21:47:46 -04:00
a8f8e4602a feat(settings): add folder selection for music and playlists
Add UI and logic to select music and playlists folders in settings using
tauri dialog plugin. Integrate @tauri-apps/plugin-dialog, plugin-fs, and
plugin-store in both frontend and backend. Update capabilities and
dependencies to support new plugins. Improve settings page with folder
selectors and info note for better user experience.
2025-09-30 18:58:52 -04:00
ec11b18d32 ui: update app branding and add menu bar
Update app name and branding across config, title bar, and HTML.
Add MenuBar component to layout and improve title bar button styles.
2025-09-30 12:10:39 -04:00
7b8c83c96d initial commit 2025-09-30 11:19:56 -04:00