Commit Graph

138 Commits

Author SHA1 Message Date
f3c791496e v1.2.0: Spotify playlist improvements and admin UI fixes
Some checks are pending
Docker Build & Push / build-and-test (push) Waiting to run
Docker Build & Push / docker (push) Blocked by required conditions
Enhanced Spotify playlist integration with GraphQL API, fixed track counts and folder filtering, improved session IP tracking with X-Forwarded-For support, and added per-playlist cron scheduling.
2026-02-09 18:17:15 -05:00
f68706f300 Release v1.1.1 - Download Structure Fix
Some checks failed
Docker Build & Push / build-and-test (push) Has been cancelled
Docker Build & Push / docker (push) Has been cancelled
Fixed cache and permanent files to use unified downloads/ structure instead of separate paths.
2026-02-08 01:51:18 -05:00
9f362b4920 Release v1.1.0 - Configuration Simplification
Configuration Changes:
- Removed sync window logic from Spotify Import (no more SYNC_START_HOUR, SYNC_START_MINUTE, SYNC_WINDOW_HOURS)
- Simplified to: fetch on startup if cache missing, check every 5 minutes for stale cache
- Unified download folder structure: downloads/{permanent,cache,kept}/ instead of separate paths
- Removed Library:KeptPath config, now uses downloads/kept/

Documentation:
- Updated README with clearer Spotify Import configuration
- Updated .env.example to reflect simplified settings
- Removed MIGRATION.md from repository (local-only file)

Bug Fixes:
- Web UI now correctly displays kept tracks in Active Playlists tab
- Fixed path handling for favorited tracks
2026-02-08 01:33:09 -05:00
2b09484c0b Release v1.0.0 - Production Ready
Major Features:
- Spotify playlist injection with missing tracks search
- Transparent proxy authentication system
- WebSocket session management for external tracks
- Manual track mapping and favorites system
- Lyrics support (Spotify + LRCLib) with prefetching
- Admin dashboard with analytics and configuration
- Performance optimizations with health checks and endpoint racing
- Comprehensive caching and memory management

Performance Improvements:
- Quick health checks (3s timeout) before trying endpoints
- Health check results cached for 30 seconds
- 5 minute timeout for large artist responses
- Background Odesli conversion after streaming starts
- Parallel lyrics prefetching
- Endpoint benchmarking and racing
- 16 SquidWTF endpoints with load balancing

Reliability:
- Automatic endpoint fallback and failover
- Token expiration handling
- Concurrent request optimization
- Memory leak fixes
- Proper session cleanup

User Experience:
- Web UI for configuration and playlist management
- Real-time progress tracking
- API analytics dashboard
- Manual track mapping interface
- Playlist statistics and health monitoring
2026-02-08 00:43:47 -05:00
fa9739bfaa docs: update README
Some checks failed
Docker Build & Push / build-and-test (push) Has been cancelled
Docker Build & Push / docker (push) Has been cancelled
2026-01-31 11:16:00 -05:00
0ba51e2b30 fix: improve auth, search, and stability
Some checks failed
Docker Build & Push / build-and-test (push) Has been cancelled
Docker Build & Push / docker (push) Has been cancelled
2026-01-31 01:14:53 -05:00
bc4e5d9442 fix: enable deduplication for cache mode
Some checks failed
Docker Build & Push / build-and-test (push) Has been cancelled
Docker Build & Push / docker (push) Has been cancelled
- Cache mode now registers downloaded songs in mappings
- Prevents duplicate downloads in cache mode
- Fixes wasted API calls and duplicate cache files
- Both cache and download modes benefit from deduplication
2026-01-30 14:11:47 -05:00
2297455923 fix: prevent duplicate downloads by registering before releasing lock
- Race condition fixed where multiple threads could download same song
- RegisterDownloadedSongAsync now called before lock release
- Second thread finds registered mapping and skips download
- Eliminates duplicate files with (1), (2) suffixes
2026-01-30 13:38:36 -05:00
c2f843eabd fix: add base64 encoded SquidWTF endpoints with automatic fallback
- Decode 6 endpoints at startup (triton, wolf, hund, maus, vogel, katze)
- Automatic fallback when endpoint fails
- All services cycle through endpoints on failure
- URLs stored as base64, decoded once in Program.cs
- Fixes search/download issues
2026-01-30 13:24:34 -05:00
4efbd6890b Add automatic endpoint fallback to all SquidWTF metadata search methods 2026-01-30 12:40:38 -05:00
fc167e5151 Standardize all SquidWTF API URL formats to prevent double slashes 2026-01-30 12:38:41 -05:00
ef1606480c Fix double slash bug in SquidWTF API URLs 2026-01-30 12:36:54 -05:00
1f10bf5bc4 Update startup validator to use base64 encoded endpoint 2026-01-30 12:26:35 -05:00
d135bccaba Fix remaining BaseUrl references 2026-01-30 12:25:07 -05:00
8b21e9880f Add backup API endpoints with automatic fallback 2026-01-30 12:12:55 -05:00
6b745be835 Consolidate Quick Start and add Contributing section 2026-01-30 12:00:52 -05:00
c69ae21b76 Add build status badges to README 2026-01-30 11:54:35 -05:00
5cf852a3b6 Update docker-compose to use GHCR image by default 2026-01-30 11:48:11 -05:00
ad1b58f5bd Fix nullable warnings and update CI/CD for beta branch 2026-01-30 11:38:49 -05:00
fe886fc44b Upgrade to .NET 10.0 and fix tests 2026-01-30 11:32:21 -05:00
e85b8af99d Merge pull request #1 from phyzical/feature/get-dockerflow-working
Adding docker images
2026-01-30 11:22:36 -05:00
phyzical
9627831393 adjust to match your fork 2026-01-30 19:25:25 +08:00
4b19a58ddf Add Ko-fi username for funding support 2026-01-30 03:26:22 -05:00
2f43a08c46 Revise security section for clarity and caution
Updated security note to emphasize zero-trust principles.
2026-01-30 03:18:34 -05:00
01cd2f7711 Update README to use 'vi' instead of 'nano' 2026-01-30 03:17:02 -05:00
f558e4ba7f Fix: Parse LRC format into individual lines for Feishin compatibility
Feishin expects lyrics as an array of {Start, Text} objects with timestamps
in ticks, not as a single LRC-formatted text block
2026-01-30 03:12:14 -05:00
666aa8621a Add lyrics support and fix multiple Jellyfin proxy issues
Features:
- Add LRCLIB lyrics integration with synced/plain lyrics support
- Add Redis cache logging at INFO level for visibility
- Register SquidWTFSettings to enable quality configuration

Fixes:
- Fix playback progress reporting by wrapping POST bodies correctly
- Fix cache cleanup by updating file access times on stream
- Fix Artists/{id}/Similar endpoint proxying
- Fix browse requests to pass full query string (recently added/played/etc)
- Fix nullable duration handling in lyrics endpoint
- Add ' - SW' suffix to external albums/artists
- Remove unused code and improve debugging
2026-01-30 02:29:44 -05:00
aebb1c14dd Fix multiple Jellyfin proxy issues and improvements
- Fix playback progress reporting by wrapping POST bodies in required field names
- Fix cache cleanup by updating last access time when streaming files
- Fix Artists/{id}/Similar endpoint proxying to correct Jellyfin endpoint
- Add ' - SW' suffix to external albums and artists for better identification
- Register SquidWTFSettings configuration to enable quality settings
- Remove unused code and improve debugging logs
2026-01-30 01:58:10 -05:00
457a5b7582 Fix reauthentication and artist song counts
- Fixed reauthentication: Pass through 401 responses to client instead of hiding them with empty results
- Fixed artist song counts: Artists now show correct song count instead of total library count (1290)
- Fixed external artist Similar endpoint to prevent errors
- Improved auth header forwarding with case-insensitive detection
2026-01-30 00:09:44 -05:00
e10b4408ba Forgot to pass artistID for artist searching 2026-01-29 18:52:27 -05:00
28d14a0006 remove changes patch 2026-01-29 17:40:26 -05:00
e18840cddf feat: Fork octo-fiestarr as allstarr with Jellyfin proxy improvements
Major changes:
- Rename project from octo-fiesta to allstarr
- Add Jellyfin proxy support alongside Subsonic/Navidrome
- Implement fuzzy search with relevance scoring and Levenshtein distance
- Add POST body logging for debugging playback progress issues
- Separate local and external artists in search results
- Add +5 score boost for external results to prioritize larger catalog(probably gonna reverse it)
- Create FuzzyMatcher utility for intelligent search result scoring
- Add ConvertPlaylistToJellyfinItem method for playlist support
- Rename keys folder to apis and update gitignore
- Filter search results by relevance score (>= 40)
- Add Redis caching support with configurable settings
- Update environment configuration with backend selection
- Improve external provider integration (SquidWTF, Deezer, Qobuz)
- Add tests for all services
2026-01-29 17:36:53 -05:00
Branson
ed9cec1cde Update SquidWTF quality and storage settings
Set default quality and storage mode for SquidWTF.
2026-01-17 11:29:05 -05:00
Branson
d9c1086564 Rename service from octo-fiesta to octo-fiestarr 2026-01-17 11:19:58 -05:00
Branson
9563eb8868 Revise README with updated configuration options
Updated configuration details for SquidWTF, Deezer, and Qobuz. Changed default SUBSONIC_URL and added new settings for audio quality and storage mode.
2026-01-17 11:12:37 -05:00
Branson
2e08b4c562 Update environment variables in docker-compose.yml
Removed Deezer ARL tokens and quality settings, added SquidWTF quality setting.
2026-01-17 11:07:21 -05:00
Branson
b1a0718acc Add SquidWTF configuration to .env.example
Added configuration options for SquidWTF service.
2026-01-17 11:05:19 -05:00
Branson
bd8971835e Update MUSIC_SERVICE option in .env.example
Make SquidWTF default option
2026-01-17 11:03:01 -05:00
Branson
aa8fdb4aca Update README
Updated README to reflect the new name 'Octo-Fiestarr' and added SquidWTF support details.
2026-01-17 11:01:29 -05:00
Branson
e04c254f04 Update docker-compose.yml 2026-01-17 08:35:19 -05:00
Branson
17a991a4fd Update octo-fiesta image reference 2026-01-16 20:33:46 -05:00
Branson
488cd64d25 Fix syntax error 2026-01-16 19:40:45 -05:00
Branson
f931a86129 Add new playlist search/parsing implementations from upstream for SquidWTF 2026-01-16 19:40:11 -05:00
Branson
8c67f4acce Update constructor with new parameter from upstream 2026-01-16 19:39:16 -05:00
bransoned
bfcb78b0b4 fix: merge conflicts and upstream changes merged 2026-01-16 22:45:04 +00:00
Vickes
4fde5a6db4 feat: add HTTP Range header support for iOS streaming clients (#48) 2026-01-15 23:47:03 +01:00
V1ck3s
1bf3e17d78 docs: add external playlists feature documentation 2026-01-15 23:32:31 +01:00
V1ck3s
e8e385b770 fix: resolve circular dependency and fix failing tests 2026-01-15 23:32:31 +01:00
V1ck3s
ebe6e90f39 feat: playlist implementation 2026-01-15 23:32:31 +01:00
Branson
0f93862cc2 Fix syntax error 2026-01-13 17:10:29 -05:00