Skip to content

Commit 26e6653

Browse files
committed
refactor: Improve error handling for response body closure and file removal in downloader and player
1 parent 42bc7a5 commit 26e6653

4 files changed

Lines changed: 14 additions & 4 deletions

File tree

internal/api/enhanced.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,7 @@ func sanitizeFilename(name string) string {
382382
}
383383

384384
// Basic download function (placeholder - integrate with your existing downloader)
385-
func downloadFromURL(url, filename string) error {
385+
func downloadFromURL(_url, _filename string) error {
386386
// This is a placeholder that should fail to trigger fallback to the proper downloader
387387
util.Debugf("Enhanced API downloadFromURL is a placeholder - returning error to trigger fallback")
388388
return fmt.Errorf("enhanced download not implemented - use legacy downloader")

internal/downloader/downloader.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,11 @@ func (d *EpisodeDownloader) estimateContentLengthForAllAnime(url string, client
468468
util.Debugf("Range request failed, using default size estimate")
469469
return 300 * 1024 * 1024, nil // 300MB default
470470
}
471-
defer resp.Body.Close()
471+
defer func() {
472+
if closeErr := resp.Body.Close(); closeErr != nil {
473+
util.Warnf("Failed to close response body: %v", closeErr)
474+
}
475+
}()
472476

473477
// Check Content-Range header for total size
474478
contentRange := resp.Header.Get("Content-Range")

internal/player/player.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,9 @@ func downloadAndPlayEpisode(
441441
if stat, err := os.Stat(episodePath); err == nil {
442442
if stat.Size() < 1024 {
443443
fmt.Println("File is too small, re-downloading...")
444-
os.Remove(episodePath) // Remove invalid file
444+
if removeErr := os.Remove(episodePath); removeErr != nil {
445+
util.Warnf("Failed to remove invalid file: %v", removeErr)
446+
}
445447
return downloadAndPlayEpisode(videoURL, episodes, selectedEpisodeNum, animeURL, episodeNumberStr, animeMalID, updater)
446448
}
447449
}

internal/player/scraper.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,11 @@ func estimateContentLengthForAllAnime(url string, client *http.Client) (int64, e
166166
util.Debugf("Range request failed, using default size estimate")
167167
return 300 * 1024 * 1024, nil // 300MB default
168168
}
169-
defer resp.Body.Close()
169+
defer func() {
170+
if closeErr := resp.Body.Close(); closeErr != nil {
171+
util.Warnf("Failed to close response body: %v", closeErr)
172+
}
173+
}()
170174

171175
// Check Content-Range header for total size
172176
contentRange := resp.Header.Get("Content-Range")

0 commit comments

Comments
 (0)