import json
from datetime import datetime
from . import config
def load_previous() -> dict:
if not config.STATE_FILE.exists():
return {"items": {}}
with open(config.STATE_FILE, "r", encoding="utf-8") as f:
return json.load(f)
def save_current(items: list[dict]) -> None:
payload = {
"updated_at": datetime.now().isoformat(timespec="seconds"),
"items": {item["id"]: item for item in items},
}
with open(config.STATE_FILE, "w", encoding="utf-8") as f:
json.dump(payload, f, ensure_ascii=False, indent=2)
def diff_new_or_changed(previous: dict, current_items: list[dict]) -> list[dict]:
# item["id"] är ett hashvärde av dess text (se scraper._stable_id), så
# en ändrad text ger automatiskt ett nytt id och räknas som "ny" post.
prev_items = previous.get("items", {})
return [item for item in current_items if item["id"] not in prev_items]