Commit Graph

139 Commits

Author SHA1 Message Date
joshpatra 375b7c6909 v1.1.1: SCROBBLING, fixed and rewrote caching, refactored and fixed WebUI, fixed logs, fixed cron scheduling bugs, hardened security, added Global Mappings, made the proxy more 'transparent', added playlists from Tidal to search
Docker Build & Push / build-and-test (push) Has been cancelled
Docker Build & Push / docker (push) Has been cancelled
v1.1.1
2026-02-20 18:59:37 -05:00
joshpatra 40338ce25f v1.0.0: Lots of WebUI fixes, API fixes, refactored all of caching, general bug fixes, redid all log messages
Docker Build & Push / build-and-test (push) Has been cancelled
Docker Build & Push / docker (push) Has been cancelled
v1.0.0
2026-02-11 23:24:40 -05:00
joshpatra f68706f300 Release v1.1.1 - Download Structure Fix
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
joshpatra 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
joshpatra 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
joshpatra fa9739bfaa docs: update README
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
joshpatra 0ba51e2b30 fix: improve auth, search, and stability
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
joshpatra bc4e5d9442 fix: enable deduplication for cache mode
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
joshpatra 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
joshpatra 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
joshpatra 4efbd6890b Add automatic endpoint fallback to all SquidWTF metadata search methods 2026-01-30 12:40:38 -05:00
joshpatra fc167e5151 Standardize all SquidWTF API URL formats to prevent double slashes 2026-01-30 12:38:41 -05:00
joshpatra ef1606480c Fix double slash bug in SquidWTF API URLs 2026-01-30 12:36:54 -05:00
joshpatra 1f10bf5bc4 Update startup validator to use base64 encoded endpoint 2026-01-30 12:26:35 -05:00
joshpatra d135bccaba Fix remaining BaseUrl references 2026-01-30 12:25:07 -05:00
joshpatra 8b21e9880f Add backup API endpoints with automatic fallback 2026-01-30 12:12:55 -05:00
joshpatra 6b745be835 Consolidate Quick Start and add Contributing section 2026-01-30 12:00:52 -05:00
joshpatra c69ae21b76 Add build status badges to README 2026-01-30 11:54:35 -05:00
joshpatra 5cf852a3b6 Update docker-compose to use GHCR image by default 2026-01-30 11:48:11 -05:00
joshpatra ad1b58f5bd Fix nullable warnings and update CI/CD for beta branch 2026-01-30 11:38:49 -05:00
joshpatra fe886fc44b Upgrade to .NET 10.0 and fix tests 2026-01-30 11:32:21 -05:00
joshpatra 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
joshpatra 4b19a58ddf Add Ko-fi username for funding support 2026-01-30 03:26:22 -05:00
joshpatra 2f43a08c46 Revise security section for clarity and caution
Updated security note to emphasize zero-trust principles.
2026-01-30 03:18:34 -05:00
joshpatra 01cd2f7711 Update README to use 'vi' instead of 'nano' 2026-01-30 03:17:02 -05:00
joshpatra 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
joshpatra 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
joshpatra 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
joshpatra 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
joshpatra e10b4408ba Forgot to pass artistID for artist searching 2026-01-29 18:52:27 -05:00
joshpatra 28d14a0006 remove changes patch 2026-01-29 17:40:26 -05:00
joshpatra 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