Markury
d007508e8a
oopsie: ci build keychain lock timeout on arm
2026-07-15 23:46:27 -04:00
Markury
1abd13e898
bump ver 0.1.1
v0.1.1
2026-07-15 22:20:36 -04:00
Markury
3b67a03ad2
oopsie: handle duplicate playlist entries from spotify api (INSERT >> INSERT OR REPLACE)
2026-07-15 21:30:10 -04:00
Markury
3d7d3ded1c
feat: re-encode cover images for rockbox compatibility
2026-06-03 20:39:20 -04:00
Markury
2beae8e327
deps: image crate
2026-06-03 20:39:04 -04:00
Markury
cc92640908
fix: m3u8 relative path generation/resolution
2026-03-19 11:37:27 -04:00
Markury
e5d12c9041
feat: add refresh button to collection views
2026-03-18 11:08:23 -04:00
Markury
2c471370e4
feat(spotify): caching for Spotify to Deezer conversions to reduce API calls
2026-03-18 11:08:08 -04:00
Markury
a846080677
fix: readme image
2026-01-09 16:11:19 -05:00
d0c7cfef4c
docs: add ss to README
2026-01-09 16:08:56 -05:00
Markury
e3e75f0256
feat(sync): support playlists
2026-01-09 16:07:58 -05:00
3d8df1eb48
fix(spotify): handle possible undefined access and refresh tokens
2025-10-16 13:45:32 -04:00
085f58e40f
fix(ui): update device path labels to div elements
2025-10-16 13:45:24 -04:00
72bc53e495
refactor(ui): remove in-library status from spotify collection view
2025-10-16 13:36:16 -04:00
651d87af4c
feat(spotify): hook existing download queue
2025-10-16 13:25:03 -04:00
df4967dd55
fix(ui): update track number styling and playlist track mapping
2025-10-16 12:37:00 -04:00
1bffafad44
feat(spotify): library caching
2025-10-16 11:27:08 -04:00
e19c25e94b
refactor(auth): style OAuth callback and clean up logic
2025-10-15 13:07:03 -04:00
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
af4f8ce77f
icons: ipod
2025-10-12 20:11:44 -04:00
a4f5bdd7a8
docs: changelog for first release
v0.1.0
2025-10-05 16:52:03 -04:00
456f854863
refactor(ui): update albums interaction to double click for consistency
2025-10-05 01:40:50 -04:00
3118d969c6
refctor(ui): make tabs layout consistent with the rest of the app in settings and queue
2025-10-05 01:40:14 -04:00
17b6f7958e
fix(queue): reset interrupted downloads and clear current job on load
2025-10-05 01:25:42 -04:00
cba49ce411
feat(library): add ipod-safe emoji encoding for playlist names
2025-10-05 01:07:22 -04:00
369ea9df02
feat(services): improve lyrics fetch progress and status updates
2025-10-05 00:49:51 -04:00
ca5f79b23a
feat(settings): add button to open app data folder
2025-10-05 00:17:33 -04:00
8fb27b1acd
feat(db): add tracks table and lyric scan caching
2025-10-05 00:17:19 -04:00
25ce2d676e
feat(services): add LRCLIB service, scan utility, and context menus
2025-10-04 23:56:58 -04:00
38db835973
feat(ui): add reactive status bar with notifications
2025-10-04 23:36:09 -04:00
c30b205d9c
feat(ui): add page decoration component for collection views
2025-10-04 22:25:07 -04:00
7b84bc32df
fix(dl): add progress events for tracks from new downloader
2025-10-04 20:58:34 -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
e4586f6497
fix: incorrect license in package
2025-10-04 20:46:01 -04:00
f4ef13ec0d
fix(db): playlist username fallback handling
2025-10-04 20:38:59 -04:00
05acc3483c
refactor(ui): remove disabled GitHub button from toolbar
2025-10-04 20:26:21 -04:00
efaa9f02b8
fix(tauri): update content security policy to include media sources
2025-10-04 16:23:05 -04:00
e535fdb4bc
refactor(ui): housekeeping
2025-10-04 16:21:33 -04:00
8b3989e71f
fix: lyrics not saved in new queue
2025-10-04 16:04:46 -04:00
9e75322a43
refactor(np): refactor layout
2025-10-04 15:49:24 -04:00
a602ee4bbd
refactor(np): layout
2025-10-04 15:29:30 -04:00
9333e55095
refactor(np): now playing controls and icons
2025-10-04 15:19:24 -04:00
e5c8ce1c30
fix: volume slider
2025-10-04 15:05:06 -04:00
7c64818db1
refactor(np): add triangle volume slider to now playing panel
2025-10-04 15:01:19 -04:00
480aa5859b
fix: path sanitization inconsistency in cover art lookup
...
Cover art lookup was constructing paths from raw metadata without
sanitization, causing "No such file or directory" errors for artists
with special characters (e.g. "Au/Ra" looked for "Au/Ra/" but files
were saved to "Au_Ra/"). Now uses sanitizeFilename() to match the
actual on-disk folder structure created during downloads.
2025-10-04 14:43:54 -04:00
26c465118b
fix: missing cover art in playlist downloads
...
Playlist downloads were not fetching album cover URLs, causing both
embedded cover art and folder cover.jpg files to be skipped. Queue
manager now fetches album data on-demand (only when cover art is
enabled) to get cover URLs, reusing the same logic as individual track
downloads. Fetches track data first if albumId is missing.
2025-10-04 14:43:37 -04:00
fc2b987f63
feat(ui): add now playing panel and context menu for tracks
2025-10-03 20:59:37 -04:00
a7fc6e8d5d
feat(ui): sequential playlist track numbering and banner panel
2025-10-03 20:12:03 -04:00
6fff93fe45
fix(dz): implement alternative track fallback for error 2002
...
("Track token has
no sufficient rights on requested media").
Previous behavior:
- Only tried format fallback (FLAC → MP3_320 → MP3_128)
- Used same track token for all format attempts
- Failed when error 2002 occurred even if alternative tracks existed
New behavior:
- When error 2002 occurs, fetches FALLBACK.SNG_ID and gets fresh token
- Retries with same format but different track ID
- Loops through all alternative track IDs before trying format fallback
- Only after exhausting alternatives does it fall back to lower quality formats
2025-10-03 11:43:11 -04:00