Merge pull request #519 from pf56/added-dpd
Added parcel tracking support for DPD
This commit is contained in:
commit
403e0b2ac1
@ -19,6 +19,45 @@ class TrackerAPI:
|
|||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
|
||||||
|
class DPD(TrackerAPI):
|
||||||
|
URL = "https://tracking.dpd.de/cgi-bin/simpleTracking.cgi?parcelNr={idcode}&type=1"
|
||||||
|
|
||||||
|
def __init__(self, idcode):
|
||||||
|
self.idcode = idcode
|
||||||
|
self.url = self.URL.format(idcode=self.idcode)
|
||||||
|
|
||||||
|
def status(self):
|
||||||
|
ret = {}
|
||||||
|
progress = "n/a"
|
||||||
|
status = "n/a"
|
||||||
|
|
||||||
|
with urlopen(self.url) as page:
|
||||||
|
page = page.read()
|
||||||
|
page = page.decode("UTF-8")
|
||||||
|
page = page[1:-1] # strip parenthesis of the data
|
||||||
|
|
||||||
|
try:
|
||||||
|
import json
|
||||||
|
|
||||||
|
data = json.loads(page)
|
||||||
|
status = data["TrackingStatusJSON"]["statusInfos"][-1]["contents"][0]["label"]
|
||||||
|
delivery_status = data["TrackingStatusJSON"]["shipmentInfo"]["deliveryStatus"]
|
||||||
|
|
||||||
|
# I'm not exactly sure what the deliveryStatus values mean.
|
||||||
|
# This may break if the package can't get delivered etc.
|
||||||
|
progress = delivery_status * 20
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
ret["progress"] = progress
|
||||||
|
ret["status"] = status
|
||||||
|
|
||||||
|
return ret
|
||||||
|
|
||||||
|
def get_url(self):
|
||||||
|
return "https://tracking.dpd.de/parcelstatus?query={idcode}".format(idcode=self.idcode)
|
||||||
|
|
||||||
|
|
||||||
class DHL(TrackerAPI):
|
class DHL(TrackerAPI):
|
||||||
URL = "http://nolp.dhl.de/nextt-online-public/set_identcodes.do?lang=en&idc={idcode}"
|
URL = "http://nolp.dhl.de/nextt-online-public/set_identcodes.do?lang=en&idc={idcode}"
|
||||||
|
|
||||||
@ -133,10 +172,11 @@ class ParcelTracker(IntervalModule):
|
|||||||
"""
|
"""
|
||||||
Used to track parcel/shipments.
|
Used to track parcel/shipments.
|
||||||
|
|
||||||
Supported carriers: DHL, UPS, Itella
|
Supported carriers: DHL, UPS, DPD, Itella
|
||||||
|
|
||||||
- parcel.UPS("<id_code>")
|
- parcel.UPS("<id_code>")
|
||||||
- parcel.DHL("<id_code>")
|
- parcel.DHL("<id_code>")
|
||||||
|
- parcel.DPD("<id_code>")
|
||||||
- parcel.Itella("<id_code>"[, "en"|"fi"|"sv"])
|
- parcel.Itella("<id_code>"[, "en"|"fi"|"sv"])
|
||||||
Second parameter is language. Requires beautiful soup 4 (bs4)
|
Second parameter is language. Requires beautiful soup 4 (bs4)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user