fix: address review findings from extended metadata PR #79
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
in progress
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
joezombie/castr!79
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/extended-metadata-review-fixes"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Addresses all issues identified during the comprehensive review of PR #78 (extended episode metadata).
Critical fixes (original)
Artist("") andBitrate(0) afterReadFileMetadata, matching the existingDurationSeconds ??= 0pattern. Files without these ID3 tags are no longer re-parsed every sync cycle.GetArtworkcatch blocks now capture exception variables and log at Warning level with feed/file contextIOExceptionandUnauthorizedAccessExceptioncatches toGetArtwork, matching the pattern inReadFileMetadataCritical fixes (post-review)
picture.Databefore dereferencingpicture.Data.Data; null/empty art data returns NotFound cleanly instead of 500StatusCode(500)atLogError— these are server infrastructure failures, not "not found" conditionscatch (Exception ex)fallback inGetArtworkthat logs atLogErrorand returns 500, preventing uncontextualized errorsImportant fixes (original)
GetMediapatternsGetArtworkThumbnailUrltakes precedence over embedded artitunes:authortest now verifies item-level element contentImportant fixes (post-review)
LogDebugentry (artist, bitrate, duration), making silent backfill failures discoverable in logsHasEmbeddedArt = falseinCorruptFileExceptionandUnsupportedFormatExceptioncatch blocks so unreadable files don't generate broken artwork URLs in the RSS feedIOException/UnauthorizedAccessExceptionso programming bugs propagate naturally instead of silently dropping episodes from the feedPath.GetFullPathcalls inGetMediaFilePathAsyncintry/catch (ArgumentException)to handle invalidfeed.Directorydatabase valuesMinor fixes (original + post-review)
HasEmbeddedArtdirect assignment — revised to remove misleading implication that??=was a valid alternative (it's not forbool)Titleneeds no sentinel (filename fallback inReadFileMetadata)LogDebugadded forThumbnailUrlartwork path to match existing embedded-art logGetArtwork_WithCorruptFiletest renamed from_WithFileWithoutEmbeddedArtto accurately reflect the tested exceptionTest plan
dotnet build— 0 warnings, 0 errorsdotnet test— all 197 tests pass (7 new tests added: success-path artwork, whitespace input, sentinel boundary, negative itunes:author)🤖 Generated with Claude Code