import asyncio import httpx from sqlalchemy import text from app.db.session import engine from datetime import datetime async def log_discovery(conn, category, brand, model, action): await conn.execute(text(""" INSERT INTO data.bot_discovery_logs (category, brand_name, model_name, action_taken) VALUES (:c, :b, :m, :a) """), {"c": category, "b": brand, "m": model, "a": action}) async def run_discovery(): async with engine.begin() as conn: print(f"🚀 Jármű felfedezés indul: {datetime.now()}") # Jelenleg a CAR kategóriára fókuszálunk egy külső API segítségével (pl. NHTSA - Ingyenes) # Itt egy példa, hogyan bővül dinamikusan a rendszer async with httpx.AsyncClient() as client: # Autók lekérése response = await client.get("https://vpic.nhtsa.dot.gov/api/vehicles/getallmakes?format=json") if response.status_code == 200: makes = response.json().get('Results', [])[:100] # Tesztként az első 100 for make in makes: brand_name = make['Make_Name'].strip() # Megnézzük, megvan-e már res = await conn.execute(text("SELECT id FROM data.vehicle_brands WHERE name = :n"), {"n": brand_name}) if not res.scalar(): await conn.execute(text("INSERT INTO data.vehicle_brands (category_id, name) VALUES (1, :n)"), {"n": brand_name}) await log_discovery(conn, "CAR", brand_name, "ALL", "NEW_BRAND") print(f"✨ Új márka találva: {brand_name}") await conn.commit() print("✅ Bot futása befejeződött.") if __name__ == "__main__": asyncio.run(run_discovery())