delivery-tracker
Advanced tools
Comparing version 2.4.4 to 2.4.5
@@ -0,1 +1,4 @@ | ||
# 2.4.5 | ||
* fixed an issue in UPS is not working. | ||
# 2.4.4 | ||
@@ -2,0 +5,0 @@ * fixed an issue in CJKOREAEXPRESS is not working. |
@@ -9,12 +9,21 @@ 'use strict' | ||
return { | ||
method: 'POST', | ||
url: 'https://wwwapps.ups.com/track/api/Track/GetStatus?loc=en_KR', | ||
body: JSON.stringify({ | ||
Locale: 'en_KR', | ||
Requester: 'UPSHome', | ||
TrackingNumber: [number] | ||
}), | ||
headers: { | ||
'content-type': 'application/json', | ||
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/42.0' | ||
cookie: { | ||
url: 'https://www.ups.com/track', | ||
method: 'GET' | ||
}, | ||
detail: function (token) { | ||
return { | ||
method: 'POST', | ||
url: 'https://www.ups.com/track/api/Track/GetStatus?loc=en_US', | ||
body: JSON.stringify({ | ||
Locale: 'en_US', | ||
Requester: 'UPSHome', | ||
TrackingNumber: [number] | ||
}), | ||
headers: { | ||
'content-type': 'application/json', | ||
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/42.0', | ||
'X-XSRF-TOKEN': token | ||
} | ||
} | ||
} | ||
@@ -24,2 +33,13 @@ } | ||
var parser = { | ||
token: function (rawcookies) { | ||
var cookies = {} | ||
for (var i = 0; i < rawcookies.length; i++) { | ||
var keyval = rawcookies[i].split(';')[0].split('=') | ||
cookies[keyval[0]] = keyval[1] | ||
} | ||
return cookies['X-XSRF-TOKEN-ST'] | ||
} | ||
} | ||
module.exports = function (opts) { | ||
@@ -30,48 +50,56 @@ return { | ||
var tracking = trackingInfo(number) | ||
request(tracking, function (err, res, body) { | ||
var response = JSON.parse(body) | ||
if (response.statusCode !== '200') { | ||
return cb(response.statusText) | ||
} | ||
var currentTrackNumberStatus = response.trackDetails[0] | ||
if (err || currentTrackNumberStatus.errorCode !== null) { | ||
return cb(err || currentTrackNumberStatus.errorText) | ||
} | ||
var req = request.defaults({ jar: true }) | ||
var courier = { | ||
code: tracker.COURIER.UPS.CODE, | ||
name: tracker.COURIER.UPS.NAME | ||
req(tracking.cookie, function (err, res, body) { | ||
if (err) { | ||
return cb(err) | ||
} | ||
var result = { | ||
courier: courier, | ||
status: currentTrackNumberStatus.progressBarType, | ||
number: currentTrackNumberStatus.trackingNumber | ||
} | ||
var checkpoints = [] | ||
var token = parser.token(res.headers['set-cookie'] || []) | ||
req(tracking.detail(token), function (err, res, body) { | ||
var response = JSON.parse(body) | ||
if (response.statusCode !== '200') { | ||
return cb(response.statusText) | ||
} | ||
var currentTrackNumberStatus = response.trackDetails[0] | ||
if (err || currentTrackNumberStatus.errorCode !== null) { | ||
return cb(err || currentTrackNumberStatus.errorText) | ||
} | ||
for (var i = 0; i < currentTrackNumberStatus.shipmentProgressActivities.length; i++) { | ||
var current = currentTrackNumberStatus.shipmentProgressActivities[i] | ||
if (!current.date) { | ||
continue | ||
var courier = { | ||
code: tracker.COURIER.UPS.CODE, | ||
name: tracker.COURIER.UPS.NAME | ||
} | ||
var checkpoint = { | ||
var result = { | ||
courier: courier, | ||
location: current.location, | ||
message: current.activityScan.trim(), | ||
status: tracker.STATUS.IN_TRANSIT, | ||
time: moment([current.date, current.time].join(' '), 'YYYY/MM/DD HH:mm').format('YYYY-MM-DDTHH:mm') | ||
status: currentTrackNumberStatus.progressBarType, | ||
number: currentTrackNumberStatus.trackingNumber | ||
} | ||
var checkpoints = [] | ||
if (checkpoint.message.indexOf('DELIVERED') !== -1) { | ||
checkpoint.status = tracker.STATUS.DELIVERED | ||
for (var i = 0; i < currentTrackNumberStatus.shipmentProgressActivities.length; i++) { | ||
var current = currentTrackNumberStatus.shipmentProgressActivities[i] | ||
if (!current.date) { | ||
continue | ||
} | ||
var checkpoint = { | ||
courier: courier, | ||
location: current.location, | ||
message: current.activityScan.trim(), | ||
status: tracker.STATUS.IN_TRANSIT, | ||
time: moment([current.date, current.time].join(' '), 'MM/DD/YYYY HH:mm').format('YYYY-MM-DDTHH:mmZ') | ||
} | ||
if (checkpoint.message.indexOf('DELIVERED') !== -1) { | ||
checkpoint.status = tracker.STATUS.DELIVERED | ||
} | ||
checkpoints.push(checkpoint) | ||
} | ||
checkpoints.push(checkpoint) | ||
} | ||
result.checkpoints = checkpoints | ||
result.status = tracker.normalizeStatus(result.checkpoints) | ||
result.checkpoints = checkpoints | ||
result.status = tracker.normalizeStatus(result.checkpoints) | ||
cb(null, result) | ||
cb(null, result) | ||
}) | ||
}) | ||
@@ -78,0 +106,0 @@ } |
{ | ||
"name": "delivery-tracker", | ||
"version": "2.4.4", | ||
"version": "2.4.5", | ||
"author": { | ||
@@ -5,0 +5,0 @@ "name": "egg", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
79375
31
2272