Lyrics and favorites improvements
Some checks failed
Docker Build & Push / build-and-test (push) Has been cancelled
Docker Build & Push / docker (push) Has been cancelled

- Fix unsynced lyrics displaying all at 0:00 by omitting Start field
- Improve LRC parsing with fuzzy search and synced lyrics preference
- Add DeleteAsync to proxy service for proper auth forwarding
- Support both /UserFavoriteItems and /Users/{userId}/FavoriteItems routes
- Fix favorite endpoints to properly forward authentication
- Add comprehensive logging for debugging
- Extend Spotify sync backward search window to 24 hours
This commit is contained in:
2026-02-01 18:32:52 -05:00
parent 425dc2e135
commit 6ea2331127
8 changed files with 946 additions and 130 deletions

View File

@@ -85,7 +85,7 @@ public class JellyfinProxyServiceTests
}
[Fact]
public async Task GetJsonAsync_IncludesAuthHeader()
public async Task GetJsonAsync_WithoutClientHeaders_SendsNoAuth()
{
// Arrange
HttpRequestMessage? captured = null;
@@ -102,13 +102,10 @@ public class JellyfinProxyServiceTests
// Act
await _service.GetJsonAsync("Items");
// Assert
// Assert - Should NOT include auth when no client headers provided
Assert.NotNull(captured);
Assert.True(captured!.Headers.Contains("Authorization"));
var authHeader = captured.Headers.GetValues("Authorization").First();
Assert.Contains("MediaBrowser", authHeader);
Assert.Contains(_settings.ApiKey!, authHeader);
Assert.Contains(_settings.ClientName!, authHeader);
Assert.False(captured!.Headers.Contains("Authorization"));
Assert.False(captured.Headers.Contains("X-Emby-Authorization"));
}
[Fact]