Fix CheapShark rating filter: correct scale and skip unrated deals

Two bugs fixed:
1. Function signature used old 0-100 scale defaults (min_rating: int = 80)
   but dealRating from CheapShark is 0-10. Updated to float = 8.0.
2. Deals with dealRating of 0.0 (unrated/insufficient data) were being
   filtered out as "poorly rated". Now treats 0.0 as unrated and skips
   the rating check, so games like Leisure Suit Larry that lack a
   CheapShark deal rating aren't incorrectly excluded.

https://claude.ai/code/session_017eMsVwUopgmnEyd6JJedpV
This commit is contained in:
Claude
2026-02-28 02:47:15 +00:00
parent c145d83b0b
commit c33e46c3cf

View File

@@ -46,8 +46,8 @@ async def fetch_deals(
client: httpx.AsyncClient, client: httpx.AsyncClient,
*, *,
max_price: float = 20, max_price: float = 20,
min_rating: int = 80, min_rating: float = 8.0,
min_discount: int = 50, min_discount: float = 50,
page_size: int = 10, page_size: int = 10,
) -> list[CheapSharkDeal]: ) -> list[CheapSharkDeal]:
"""Fetch top deals from CheapShark across configured stores.""" """Fetch top deals from CheapShark across configured stores."""
@@ -81,7 +81,7 @@ async def fetch_deals(
if savings < min_discount: if savings < min_discount:
logger.debug("Filtered out %s: savings %.1f%% < %.1f%%", title, savings, min_discount) logger.debug("Filtered out %s: savings %.1f%% < %.1f%%", title, savings, min_discount)
continue continue
if rating < min_rating: if rating > 0 and rating < min_rating:
logger.debug("Filtered out %s: rating %.1f < %.1f", title, rating, min_rating) logger.debug("Filtered out %s: rating %.1f < %.1f", title, rating, min_rating)
continue continue