Initial commit: Robot ökoszisztéma v2.0 - Stabilizált jármű és szerviz robotok
This commit is contained in:
48
archive/2026.02.18 Archive_old_mapps/harvester_cars.py.old
Executable file
48
archive/2026.02.18 Archive_old_mapps/harvester_cars.py.old
Executable file
@@ -0,0 +1,48 @@
|
||||
# /opt/docker/dev/service_finder/backend/app/services/harvester_cars.py
|
||||
import httpx
|
||||
import asyncio
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from .harvester_base import BaseHarvester
|
||||
|
||||
class VehicleHarvester(BaseHarvester):
|
||||
def __init__(self):
|
||||
super().__init__(category="car")
|
||||
self.base_url = "https://www.carqueryapi.com/api/0.3/"
|
||||
|
||||
async def _get_api_data(self, params: dict):
|
||||
async with httpx.AsyncClient() as client:
|
||||
try:
|
||||
response = await client.get(self.base_url, params=params, headers=self.headers, timeout=15.0)
|
||||
if response.status_code == 200:
|
||||
text = response.text
|
||||
if text.startswith("?("): text = text[2:-2]
|
||||
return response.json()
|
||||
return None
|
||||
except Exception as e:
|
||||
print(f"CarQuery Robot Hiba: {e}")
|
||||
return None
|
||||
|
||||
async def harvest_all(self, db: AsyncSession):
|
||||
""" Automatikus CarQuery szinkronizáció MDM alapon. """
|
||||
print("🚗 Személyautó Robot: Indul az adatgyűjtés...")
|
||||
|
||||
makes_data = await self._get_api_data({"cmd": "getMakes", "sold_in_us": 0})
|
||||
if not makes_data: return
|
||||
|
||||
for make in makes_data.get("Makes", [])[:50]: # Teszt limit
|
||||
make_id = make['make_id']
|
||||
make_name = make['make_display']
|
||||
|
||||
models_data = await self._get_api_data({"cmd": "getModels", "make": make_id})
|
||||
if not models_data: continue
|
||||
|
||||
for model in models_data.get("Models", []):
|
||||
specs = {
|
||||
"factory_data": {"api_source": "carquery", "api_make_id": make_id}
|
||||
}
|
||||
await self.log_entry(db, make_name, model['model_name'], specs)
|
||||
|
||||
await db.commit()
|
||||
await asyncio.sleep(1) # Rate limiting
|
||||
|
||||
print("🏁 Személyautó Robot: Adatok szinkronizálva.")
|
||||
Reference in New Issue
Block a user