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:
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user