Return NotFound error when no torrents or quality matches found instead of silent empty response
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/claude-agent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -245,8 +245,9 @@ func (w *monitorWorkflow) run(ctx context.Context) error {
|
||||
}
|
||||
|
||||
if len(parsed) == 0 {
|
||||
w.publisher.PublishStatus(ctx, pb.MonitorStep_MONITOR_STEP_COMPLETE, "No parseable results found", nil)
|
||||
return w.publisher.PublishResult(ctx, w.service.buildMonitorAlbumResponse(ctx, album, dbAlbum, nil))
|
||||
err := fmt.Errorf("no torrents found for %s", album.GetTitle())
|
||||
w.publisher.PublishError(ctx, pb.MonitorStep_MONITOR_STEP_PARSING_RESULTS, err, false)
|
||||
return err
|
||||
}
|
||||
|
||||
if w.mode == pb.InteractionMode_INTERACTION_MODE_MANUAL && len(parsed) > 1 {
|
||||
@@ -305,9 +306,10 @@ func (w *monitorWorkflow) run(ctx context.Context) error {
|
||||
|
||||
filtered := filterByQuality(parsed, w.req.Quality)
|
||||
if len(filtered) == 0 {
|
||||
err := fmt.Errorf("no releases match quality filter for %s", album.GetTitle())
|
||||
log.Warn().Str("album", album.GetTitle()).Str("quality", w.req.Quality.String()).Msg("no releases match quality filter")
|
||||
w.publisher.PublishStatus(ctx, pb.MonitorStep_MONITOR_STEP_COMPLETE, "No releases match quality filter", nil)
|
||||
return w.publisher.PublishResult(ctx, w.service.buildMonitorAlbumResponse(ctx, album, dbAlbum, nil))
|
||||
w.publisher.PublishError(ctx, pb.MonitorStep_MONITOR_STEP_FILTERING_QUALITY, err, false)
|
||||
return err
|
||||
}
|
||||
|
||||
var best parsedItem
|
||||
|
||||
+7
-2
@@ -13,6 +13,8 @@ import (
|
||||
"github.com/riverqueue/river"
|
||||
"github.com/rs/zerolog/log"
|
||||
"golang.org/x/sync/errgroup"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
|
||||
metadataPb "homelab.lan/music-agregator/gen/metadata/v1"
|
||||
pb "homelab.lan/music-agregator/gen/music_agregator/v1"
|
||||
@@ -560,10 +562,13 @@ func (service *MusicAgregatorService) MonitorAlbum(ctx context.Context, req *pb.
|
||||
|
||||
parsed := service.parseSearchResults(searchResult, album)
|
||||
|
||||
if len(parsed) == 0 {
|
||||
return nil, status.Errorf(codes.NotFound, "no torrents found for %s", album.GetTitle())
|
||||
}
|
||||
|
||||
filtered := filterByQuality(parsed, req.GetQuality())
|
||||
if len(filtered) == 0 {
|
||||
log.Warn().Str("album", album.GetTitle()).Str("quality", req.GetQuality().String()).Msg("no releases match quality filter")
|
||||
return service.buildMonitorAlbumResponse(ctx, album, dbAlbum, nil), nil
|
||||
return nil, status.Errorf(codes.NotFound, "no releases match quality filter for %s", album.GetTitle())
|
||||
}
|
||||
|
||||
best := selectBestRelease(filtered)
|
||||
|
||||
Reference in New Issue
Block a user