32 lines
1.2 KiB
Python
32 lines
1.2 KiB
Python
import asyncio
|
|
import httpx
|
|
from sqlalchemy import text
|
|
from app.db.session import SessionLocal
|
|
|
|
async def seed():
|
|
print("🚀 RDW Márka-felfedezés indul...")
|
|
url = "https://opendata.rdw.nl/resource/m9d7-ebf2.json?$select=distinct%20merk&$limit=50000"
|
|
|
|
async with httpx.AsyncClient() as client:
|
|
resp = await client.get(url, timeout=60)
|
|
if resp.status_code != 200:
|
|
print(f"❌ Hiba: {resp.status_code}")
|
|
return
|
|
|
|
makes = resp.json()
|
|
print(f"📦 {len(makes)} márkát találtam. Mentés...")
|
|
|
|
async with SessionLocal() as db:
|
|
for item in makes:
|
|
m = item['merk'].upper()
|
|
# ON CONFLICT: Ha már benne van (pl. n8n betette), ne legyen hiba
|
|
await db.execute(text("""
|
|
INSERT INTO data.catalog_discovery (make, model, source, status)
|
|
VALUES (:m, 'ALL', 'global_seed', 'pending')
|
|
ON CONFLICT DO NOTHING
|
|
"""), {"m": m})
|
|
await db.commit()
|
|
print("✅ Kész! A discovery tábla felöltve az összes EU-s márkával.")
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(seed()) |