trackingmore.py 1.0 KB

1234567891011121314151617181920212223242526272829303132
  1. import trackingmore
  2. import requests
  3. from .logging import Logger
  4. from typing import Dict, List, Tuple, Generator, Optional
  5. class TrackingMore:
  6. api_key: str
  7. logger: Logger
  8. client: trackingmore.TrackingMore
  9. api_code: str = "trackingmore"
  10. parcel_api: str = "trackingmore"
  11. operator: str = "TrackingMore ([https://www.trackingmore.com](https://www.trackingmore.com))"
  12. def __init__(self, api_key: str, logger: Optional[Logger] = None):
  13. self.api_key: str = api_key
  14. self.logger: Logger = logger or Logger()
  15. self.client = trackingmore.TrackingMore(self.api_key)
  16. def lookup_parcel(self, query: str, carrier: Optional[str] = None, user: Optional[str] = None) -> Tuple[str, int]:
  17. self.logger.log(f"Querying TrackingMore for {query}")
  18. if query == "carriers":
  19. response = "\n".join(f"* {carrier['courier_name']} - {carrier['courier_code']}" for carrier in self.client.get_carriers())
  20. return response, 1
  21. response = self.client.track_shipment(query)
  22. return response, 1