Created
April 3, 2018 08:50
-
-
Save SteveCooling/3e9915bccdc8000fa0e64915d0891ea1 to your computer and use it in GitHub Desktop.
Simple text utility to track one or more shipments using Bring API (bring.com)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
# | |
# Simple text utility to track one or more shipments using Bring API (bring.com). | |
# Morten Johansen <morten@bzzt.no> | |
import sys | |
import requests | |
items = sys.argv | |
program = items.pop(0) # remove the program name | |
def statusToEmoji(status): | |
if status == 'ARRIVED_DELIVERY': | |
return 'π€' | |
elif status == 'CUSTOMS': | |
return 'π' | |
elif status == 'COLLECTED': | |
return 'β ' | |
elif status == 'DELIVERED': | |
return 'β ' | |
elif status == 'DELIVERED_SENDER': | |
return 'π' | |
elif status == 'DELIVERY_CANCELLED': | |
return 'β ' | |
elif status == 'DELIVERY_CHANGED': | |
return 'π' | |
elif status == 'DELIVERY_ORDERED': | |
return 'β ' | |
elif status == 'DEVIATION': | |
return 'π' | |
elif status == 'HANDED_IN': | |
return 'π₯' | |
elif status == 'INTERNATIONAL': | |
return 'π' | |
elif status == 'IN_TRANSIT': | |
return 'π' | |
elif status == 'NOTIFICATION_SENT': | |
return 'π²' | |
elif status == 'PRE_NOTIFIED': | |
return 'π' | |
elif status == 'READY_FOR_PICKUP': | |
return 'π€' | |
elif status == 'RETURN': | |
return 'π' | |
elif status == 'TRANSPORT_TO_RECIPIENT': | |
return 'π' | |
else: | |
return 'β' | |
s = requests.session() | |
if len(items) > 0: | |
for i in items: | |
r = s.get('https://tracking.bring.com/api/tracking.json', params={'q': i}) | |
#print(r.json()) | |
try: | |
for cs in r.json()['consignmentSet']: | |
#print(cs) | |
for ps in cs['packageSet']: | |
print("%s %s\n %-20s, %-20s %s %s\n" % ( | |
'π¦', | |
ps['packageNumber'], | |
ps['eventSet'][0]['city'], | |
ps['eventSet'][0]['country'], | |
statusToEmoji(ps['eventSet'][0]['status']), | |
ps['eventSet'][0]['description'], | |
)) | |
except KeyError: | |
print("β %s\n NO INFORMATION\n" % i) | |
else: | |
print("Usage: %s [trackingno1] [trackingno2] ..." % program) | |
exit(1) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment