pyCruiseMapper/src/pycruisemapper/classes/api.py

48 lines
1.4 KiB
Python

from .http import HTTPRequest
from .vessel import Vessel, Cruise, ShipLine, Flag
from ..const import SHIPS_URL, SHIP_URL
from urllib.parse import urlencode
from datetime import datetime
from typing import List, Dict
import json
class CruiseMapper:
def request_vessels(self, **kwargs) -> List[Dict]:
payload = {
"minLat": kwargs.get("min_lat", -90),
"maxLat": kwargs.get("max_lat", 90),
"minLon": kwargs.get("min_lon", -180),
"maxLon": kwargs.get("max_lon", 180),
"filter": ",".join(kwargs.get("filter", [str(i) for i in range(100)])),
"zoom": "",
"imo": kwargs.get("imo", ""),
"mmsi": kwargs.get("mmsi", ""),
"t": int(kwargs.get("timestamp", datetime.now().timestamp()))
}
request = HTTPRequest(f"{SHIPS_URL}?{urlencode(payload)}")
return json.loads(request.open().read())
def request_vessel(self, **kwargs) -> Dict:
payload = {
"imo": kwargs.get("imo", ""),
"mmsi": kwargs.get("mmsi", ""),
"zoom": ""
}
request = HTTPRequest(f"{SHIP_URL}?{urlencode(payload)}")
return json.loads(request.open().read())
def get_vessels(self, **kwargs) -> List[Vessel]:
pass
def get_vessel(self, **kwargs) -> Vessel:
pass
def fill_vessel(self, vessel: Vessel):
pass