Created
June 24, 2009 03:43
-
-
Save junk4hos/134987 to your computer and use it in GitHub Desktop.
This file contains hidden or 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
/* Updated for Ubiquity parser 2 */ | |
CmdUtils.CreateCommand({ | |
names: ["track-package", "track"], | |
author: {name: "Scott Hosfeld", email: "[email protected]"}, | |
license: "GPL", | |
description: "Tracks packages via Fedex, UPS, USPS, DHL", | |
help: "Pass the tracking number along", | |
arguments: [{role:"object", nountype: noun_arb_text, label:"Tracking Number"}], | |
_getCompany: function(trackNum){ | |
//returns the company that the tracking number belongs to | |
var targetCompany='NONE'; | |
//tracking number formats | |
/*USPS | |
EB 123 456 789 US - Express mail | |
9101 1288 8230 0001 1234 56 - Delivery Confirmation | |
7000 0000 0000 0000 0000 - Certified | |
0300 0000 0000 0000 0000 - Delivery confirmation Certified | |
2300 0000 0000 0000 0000 - Signiture confirmation */ | |
var usps_num = /\b\w{2}(\d{9})US|\b\d{22}\b|7(\d{19})|03(\d{18})|23(\d{18})|82(\d{8}$)/; | |
//Fedex | |
//999 999 999 999 999, Door tag DT123456789123 | |
var fedex_num = /\b\d{15}\b|DT(\d{12})/; | |
/*DHL | |
SEA1234567 U.S. Domestic Shipments* – 3 character origin code and HAWB number, up to 10 digits. | |
SEA123456 International Ocean Shipments - 9 character HBL number | |
1234567 International Air Freight Shipments - 7 digit HAWB number */ | |
var dhl_num = /(\b[A-Z]{3})(\d{6,7})|\b\d{7}\b/; | |
/*UPS | |
1Z 999 999 99 9999 999 9 | |
9999 9999 9999 | |
T999 9999 999 | |
999 999 999 */ | |
var ups_num = /1Z(\w{16})|\b\d{12}\b|T(\d{10})|\b\d{9}\b/; | |
trackNum = trackNum.replace(/\s/g,''); | |
targetCompany='NONE'; | |
if (usps_num.test(trackNum)){targetCompany='USPS';} | |
if (fedex_num.test(trackNum)){targetCompany='Fedex';} | |
if (dhl_num.test(trackNum)){targetCompany='DHL';} | |
if (ups_num.test(trackNum)){targetCompany='UPS';} | |
return targetCompany; | |
}, | |
preview: function(pblock, args){ | |
var msg = _("Track package via "); | |
var targetCompany = "NONE"; | |
targetCompany = this._getCompany(args.object.text); | |
if (targetCompany=='NONE'){ | |
msg = _("Cannot determine tracking format"); | |
pblock.innerHTML = msg; | |
}else{ | |
pblock.innerHTML = msg + targetCompany; | |
} | |
}, | |
execute: function(args) { | |
var targetUrl=''; | |
var targetCompany='NONE'; | |
var msg=''; | |
var trackNum=args.object.text; | |
targetCompany=this._getCompany(trackNum); | |
if (targetCompany=='NONE'){ | |
displayMessage(_("Could not determine the format of the tracking number")); | |
}else{ | |
//url's for tracking | |
const ups_url='http://wwwapps.ups.com/WebTracking/processRequest?HTMLVersion=5.0&Requester=NES&AgreeToTermsAndConditions=yes&loc=en_US&tracknum='; | |
const dhl_url='http://track.dhl-usa.com/atrknav.asp?ShipmentNumber='; | |
const usps_url='http://trkcnfrm1.smi.usps.com/PTSInternetWeb/InterLabelInquiry.do?origTrackNum='; | |
const fedex_url='http://www.fedex.com/Tracking?tracknumbers='; | |
switch(targetCompany){ | |
case 'UPS': | |
targetUrl=ups_url; | |
break; | |
case 'DHL': | |
targetUrl=dhl_url; | |
break; | |
case 'USPS': | |
targetUrl=usps_url; | |
break; | |
case 'Fedex': | |
targetUrl=fedex_url; | |
break; | |
} | |
targetUrl+=trackNum; | |
msg = _("Tracking your package " + trackNum + " via " + targetCompany); | |
displayMessage(msg); | |
Utils.openUrlInBrowser(targetUrl); | |
} | |
} | |
}); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment