21 lines
824 B
Python
21 lines
824 B
Python
# keys.py (or inline in your main)
|
|
def xgp_key(item) -> str:
|
|
# Prefer stable Microsoft Store productId if present; fallback to normalized title.
|
|
pid = (item.get("productId") or "").strip()
|
|
if pid:
|
|
return f"item:xgp:{pid}"
|
|
title = (item.get("title") or "").strip().lower()
|
|
return f"item:xgp:title:{title}"
|
|
|
|
def egs_key(item) -> str:
|
|
# Use title + start window (your fetcher usually knows the free-week start)
|
|
title = (item.get("title") or "").strip()
|
|
start = (item.get("start") or "").strip() # ISO or YYYY-MM-DD
|
|
return f"item:egs:{title}|{start}"
|
|
|
|
def psplus_key(item) -> str:
|
|
# Use official PS Blog URL + the published month (or your computed date)
|
|
url = (item.get("url") or "").strip()
|
|
date = (item.get("date") or "").strip()
|
|
return f"item:psplus:{url}|{date}"
|