Initial commit: Robot ökoszisztéma v2.0 - Stabilizált jármű és szerviz robotok
This commit is contained in:
67
backend/full_discovery_bot.py
Executable file
67
backend/full_discovery_bot.py
Executable file
@@ -0,0 +1,67 @@
|
||||
import asyncio
|
||||
from sqlalchemy import text
|
||||
from app.db.session import engine
|
||||
|
||||
# 200+ Márka és Típus adatok
|
||||
DATA = {
|
||||
"CAR": {
|
||||
"Toyota": ["Corolla", "Yaris", "RAV4", "Hilux", "C-HR", "Land Cruiser", "Camry"],
|
||||
"Volkswagen": ["Golf", "Passat", "Polo", "Tiguan", "T-Roc", "Arteon", "Caddy"],
|
||||
"BMW": ["3 Series", "5 Series", "X5", "X3", "1 Series", "7 Series", "X1"],
|
||||
"Mercedes-Benz": ["C-Class", "E-Class", "S-Class", "GLC", "GLE", "A-Class", "CLA"],
|
||||
"Audi": ["A3", "A4", "A6", "Q3", "Q5", "Q7", "A5", "TT"],
|
||||
"Ford": ["Focus", "Fiesta", "Kuga", "Puma", "Transit", "Ranger", "Mondeo", "Mustang"],
|
||||
"Opel": ["Astra", "Corsa", "Insignia", "Mokka", "Grandland", "Crossland", "Vivaro"],
|
||||
"Suzuki": ["Swift", "Vitara", "S-Cross", "Ignis", "Jimny", "Baleno"],
|
||||
"Skoda": ["Octavia", "Fabia", "Superb", "Kodiaq", "Karoq", "Kamiq", "Scala"],
|
||||
"Hyundai": ["i30", "Tucson", "i20", "Kona", "Santa Fe", "Ioniq 5", "Bayon"],
|
||||
"Kia": ["Ceed", "Sportage", "Rio", "Niro", "Sorento", "Picanto", "Stonic"],
|
||||
"Renault": ["Clio", "Megane", "Captur", "Kadjar", "Master", "Trafic", "Zoe", "Arkana"],
|
||||
"Peugeot": ["208", "308", "2008", "3008", "5008", "508", "Rifter"],
|
||||
"Volvo": ["XC60", "XC40", "XC90", "V60", "S60", "V90", "S90"],
|
||||
"Mazda": ["CX-5", "Mazda3", "Mazda6", "CX-30", "MX-5", "CX-3"],
|
||||
"Fiat": ["500", "Panda", "Tipo", "Ducato", "Doblo", "500X"],
|
||||
"Dacia": ["Duster", "Sandero", "Logan", "Jogger", "Spring"],
|
||||
"Nissan": ["Qashqai", "Juke", "X-Trail", "Leaf", "Micra", "Navara"],
|
||||
"Tesla": ["Model 3", "Model Y", "Model S", "Model X"],
|
||||
"Lexus": ["RX", "NX", "UX", "ES", "IS", "LS"]
|
||||
},
|
||||
"MOTORCYCLE": {
|
||||
"Honda": ["CB500", "CBR600", "Africa Twin", "NC750X", "Goldwing", "PCX", "SH125", "Forza 350"],
|
||||
"Yamaha": ["MT-07", "MT-09", "R1", "R6", "Tracer 9", "Ténéré 700", "XMAX", "TMAX"],
|
||||
"Kawasaki": ["Ninja 400", "Ninja 650", "Z900", "Z650", "Versys 650", "Vulcan S", "Z1000"],
|
||||
"Suzuki": ["V-Strom 650", "GSX-R1000", "Hayabusa", "SV650", "Burgman", "GSX-S1000"],
|
||||
"BMW Motorrad": ["R1250GS", "S1000RR", "F850GS", "R nineT", "G310GS", "K1600GT"],
|
||||
"KTM": ["Duke 390", "Duke 790", "1290 Super Adventure", "300 EXC", "890 Adventure"],
|
||||
"Ducati": ["Monster", "Multistrada", "Panigale V4", "Scrambler", "Diavel", "Streetfighter"],
|
||||
"Harley-Davidson": ["Sportster", "Fat Boy", "Iron 883", "Pan America", "Road Glide"]
|
||||
}
|
||||
}
|
||||
|
||||
async def run_discovery():
|
||||
async with engine.begin() as conn:
|
||||
print("🚀 Jármű adatbázis mély-feltöltése indul...")
|
||||
|
||||
for cat_name, brands in DATA.items():
|
||||
res = await conn.execute(text("SELECT id FROM data.vehicle_categories WHERE name = :n"), {"n": cat_name})
|
||||
cat_id = res.scalar()
|
||||
|
||||
for brand_name, models in brands.items():
|
||||
# Márka beszúrása
|
||||
await conn.execute(text(
|
||||
"INSERT INTO data.vehicle_brands (category_id, name) VALUES (:c, :n) ON CONFLICT (category_id, name) DO NOTHING"
|
||||
), {"c": cat_id, "n": brand_name})
|
||||
|
||||
# Márka ID lekérése
|
||||
res_b = await conn.execute(text("SELECT id FROM data.vehicle_brands WHERE name = :n AND category_id = :c"), {"n": brand_name, "c": cat_id})
|
||||
brand_id = res_b.scalar()
|
||||
|
||||
for m_name in models:
|
||||
await conn.execute(text(
|
||||
"INSERT INTO data.vehicle_models (brand_id, name) VALUES (:b, :n) ON CONFLICT (brand_id, name) DO NOTHING"
|
||||
), {"b": brand_id, "n": m_name})
|
||||
|
||||
print("✅ Discovery Bot sikeresen betöltötte az adatokat!")
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(run_discovery())
|
||||
Reference in New Issue
Block a user