from pokemon_location_fetcher import PokemonRadarClient import json # ===== 你可調的參數 ===== LAT, LNG, ZOOM = 25.0478, 121.5170, 12 STATE_PATH = "state.json" UA_FROM_STATE = True SHOT = True # 篩選參數(先保守,不加過度嚴格的條件) MIN_REMAINING = 300 MIN_IV = None # ex: 90 PERFECT_ONLY = True # 只要 100% IV SPECIES = "" # ex: "133,669,伊布" # ===== 開始跑 ===== client = PokemonRadarClient() # 可改 url/token/script,如有需要 payload = client.fetch(LAT, LNG, zoom=ZOOM, shot=SHOT, state=STATE_PATH, ua_from_state=UA_FROM_STATE) items_raw = payload["items"] debug = payload.get("debug", {}) print("----- debug notes -----") for n in debug.get("notes", []): print(n) print("-----------------------") print(f"📦 Raw items: {len(items_raw)}") # 先把「未過濾」的也存一份,方便你比對 with open("pokemon_data_raw.json", "w", encoding="utf-8") as f: json.dump({"items": items_raw, "debug": debug}, f, ensure_ascii=False, indent=2) print("💾 Saved raw JSON to pokemon_data_raw.json") # 看一下前 3 筆 for i, it in enumerate(items_raw[:3], 1): print(f"[raw #{i}] id={it.get('id')} name={it.get('name')} iv%={it.get('iv_pct')} rem={it.get('remaining')}") # 套用篩選 items = client.postprocess( items_raw, min_remaining=MIN_REMAINING, min_iv=MIN_IV, perfect_only=PERFECT_ONLY, species=SPECIES, ) print(f"🔎 Filtered items: {len(items)} " f"(min_remaining={MIN_REMAINING}, min_iv={MIN_IV}, perfect_only={PERFECT_ONLY}, species='{SPECIES}')") # 存「已過濾」版本(固定檔名) client.save(items, debug, payload.get("screenshot"))