diff --git a/pyproject.toml b/pyproject.toml index 71a2edc..96d1d58 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,6 +22,7 @@ dependencies = [ "fedextrack", "dhltrack", "dpdtrack", + "track4px", "sqlalchemy", "alembic", "python-dateutil", diff --git a/src/trackbert/providers/fourpx.py b/src/trackbert/providers/fourpx.py new file mode 100644 index 0000000..26de799 --- /dev/null +++ b/src/trackbert/providers/fourpx.py @@ -0,0 +1,33 @@ +from ..classes.provider import BaseProvider +from ..classes.database import Event + +import json + +from track4px.classes.api import Track4PX + + +class FourPX(BaseProvider): + def __init__(self, *args, **kwargs): + pass + + def get_status(self, tracking_number, carrier): + api = Track4PX() + status = api.tracking(tracking_number, True) + + for event in status.events: + event_time = event.datetime.strftime("%Y-%m-%d %H:%M:%S") + + yield Event( + shipment_id=0, + event_time=event_time, + event_description=f"{event.location + ' ' if event.location else ''}{event.description}", + raw_event=event.raw, + ) + + def supported_carriers(self): + return [ + ("4px", 100, "4PX"), + ] + + +provider = FourPX