Initial commit: Robot ökoszisztéma v2.0 - Stabilizált jármű és szerviz robotok
This commit is contained in:
38
backend/app/scripts/discovery_bot.py.veryold
Executable file
38
backend/app/scripts/discovery_bot.py.veryold
Executable file
@@ -0,0 +1,38 @@
|
||||
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())
|
||||
Reference in New Issue
Block a user