delivery-tracker
Advanced tools
Comparing version 2.2.3 to 2.3.0
@@ -8,3 +8,3 @@ #! /usr/bin/env node | ||
.arguments('<tracecode>') | ||
.option('-c, --courier <courier>', 'Courier Namespace', /^(KOREAPOST|ECARGO|FEDEX|PANTOS|RINCOS|AUSPOST|ROYALMAIL|USPS|CJKOREAEXPRESS|POSLAJU|YELLOEXPRESS|EFS|AIRBRIDGE|UPS|TNT|CESCO|XPOST|KERRYTHAI|SICEPAT|XIOEXPRESS)$/i) | ||
.option('-c, --courier <courier>', 'Courier Namespace', /^(KOREAPOST|ECARGO|FEDEX|PANTOS|RINCOS|AUSPOST|ROYALMAIL|USPS|CJKOREAEXPRESS|POSLAJU|YELLOEXPRESS|EFS|AIRBRIDGE|UPS|TNT|CESCO|XPOST|KERRYTHAI|SICEPAT|XIOEXPRESS|EPARCEL)$/i) | ||
.option('-k, --apikey <apikey>', 'API KEY') | ||
@@ -11,0 +11,0 @@ .action(function (tracecode) { |
@@ -0,1 +1,4 @@ | ||
# 2.3.0 | ||
* add eparcel express | ||
# 2.2.3 | ||
@@ -2,0 +5,0 @@ * update xpost api endpoint |
@@ -12,3 +12,3 @@ 'use strict' | ||
method: 'GET', | ||
url: 'http://eparcel.kr/tracking/?tn=' + number | ||
url: 'http://old.eparcel.kr/tracking/?tn=' + number | ||
} | ||
@@ -83,4 +83,8 @@ } | ||
} | ||
var result = parser.trace(body, number) | ||
var result | ||
try { | ||
result = parser.trace(body, number) | ||
} catch (e) { | ||
return cb('Courier response parsing error: ' + e.message) | ||
} | ||
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result) | ||
@@ -87,0 +91,0 @@ }) |
@@ -85,5 +85,8 @@ 'use strict' | ||
} | ||
var results = parser.trace(body.QueryTrackEventsResponse.TrackingResults) | ||
var results | ||
try { | ||
results = parser.trace(body.QueryTrackEventsResponse.TrackingResults) | ||
} catch (e) { | ||
return cb('Courier response parsing error: ' + e.message) | ||
} | ||
cb(results[0] ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), results[0]) | ||
@@ -90,0 +93,0 @@ }) |
@@ -107,5 +107,9 @@ 'use strict' | ||
} | ||
var result = parser.trace(body) | ||
result.number = number | ||
var result | ||
try { | ||
result = parser.trace(body) | ||
result.number = number | ||
} catch (e) { | ||
return cb('Courier response parsing error: ' + e.message) | ||
} | ||
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result) | ||
@@ -112,0 +116,0 @@ }) |
@@ -78,3 +78,8 @@ 'use strict' | ||
var result = parser.trace(body) | ||
var result | ||
try { | ||
result = parser.trace(body) | ||
} catch (e) { | ||
return cb('Courier response parsing error: ' + e.message) | ||
} | ||
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result) | ||
@@ -81,0 +86,0 @@ }) |
@@ -85,4 +85,8 @@ 'use strict' | ||
} | ||
var result = parser.trace(body) | ||
var result | ||
try { | ||
result = parser.trace(body) | ||
} catch (e) { | ||
return cb('Courier response parsing error: ' + e.message) | ||
} | ||
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result) | ||
@@ -89,0 +93,0 @@ }) |
@@ -92,3 +92,8 @@ 'use strict' | ||
var result = parser.trace(body) | ||
var result | ||
try { | ||
result = parser.trace(body) | ||
} catch (e) { | ||
return cb('Courier response parsing error: ' + e.message) | ||
} | ||
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result) | ||
@@ -95,0 +100,0 @@ }) |
@@ -100,5 +100,8 @@ 'use strict' | ||
} | ||
var results = parser.trace(body.TrackPackagesResponse.packageList) | ||
var results | ||
try { | ||
results = parser.trace(body.TrackPackagesResponse.packageList) | ||
} catch (e) { | ||
return cb('Courier response parsing error: ' + e.message) | ||
} | ||
cb(null, results[0]) | ||
@@ -105,0 +108,0 @@ }) |
@@ -72,3 +72,8 @@ 'use strict' | ||
var result = parser.trace(body, number) | ||
var result | ||
try { | ||
result = parser.trace(body, number) | ||
} catch (e) { | ||
return cb('Courier response parsing error: ' + e.message) | ||
} | ||
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result) | ||
@@ -75,0 +80,0 @@ }) |
@@ -147,3 +147,8 @@ 'use strict' | ||
var result = parser.trace(body) | ||
var result | ||
try { | ||
result = parser.trace(body) | ||
} catch (e) { | ||
return cb('Courier response parsing error: ' + e.message) | ||
} | ||
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result) | ||
@@ -150,0 +155,0 @@ }) |
@@ -78,3 +78,7 @@ 'use strict' | ||
function (body, cb) { | ||
parser.trace(body, cb) | ||
try { | ||
parser.trace(body, cb) | ||
} catch (e) { | ||
cb('Courier response parsing error: ' + e.message) | ||
} | ||
} | ||
@@ -81,0 +85,0 @@ ], cb) |
@@ -92,3 +92,7 @@ 'use strict' | ||
function (body, cb) { | ||
parser.trace(body, cb) | ||
try { | ||
parser.trace(body, cb) | ||
} catch (e) { | ||
cb('Courier response parsing error: ' + e.message) | ||
} | ||
} | ||
@@ -95,0 +99,0 @@ ], cb) |
@@ -75,3 +75,8 @@ 'use strict' | ||
var result = parser.trace(body) | ||
var result | ||
try { | ||
result = parser.trace(body) | ||
} catch (e) { | ||
return cb('Courier response parsing error: ' + e.message) | ||
} | ||
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result) | ||
@@ -78,0 +83,0 @@ }) |
@@ -79,4 +79,8 @@ 'use strict' | ||
} | ||
var result = parser.trace(body, number) | ||
var result | ||
try { | ||
result = parser.trace(body, number) | ||
} catch (e) { | ||
return cb('Courier response parsing error: ' + e.message) | ||
} | ||
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result) | ||
@@ -83,0 +87,0 @@ }) |
@@ -84,4 +84,8 @@ 'use strict' | ||
} | ||
var result = parser.trace(output, number) | ||
var result | ||
try { | ||
result = parser.trace(output, number) | ||
} catch (e) { | ||
return cb('Courier response parsing error: ' + e.message) | ||
} | ||
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result) | ||
@@ -88,0 +92,0 @@ }) |
'use strict' | ||
var request = require('request') | ||
var cheerio = require('cheerio') | ||
var tracker = require('../index') | ||
var moment = require('moment') | ||
var tracker = require('../') | ||
var trackingInfo = function (number) { | ||
return { | ||
method: 'GET', | ||
url: 'https://wwwapps.ups.com/WebTracking/processInputRequest?HTMLVersion=5.0&loc=en_KR&Requester=UPSHome&AgreeToTermsAndConditions=yes&ignore=&track.x=29&track.y=8&tracknum=' + number | ||
} | ||
} | ||
var parser = { | ||
trace: function (body) { | ||
var $ = cheerio.load(body) | ||
var courier = { | ||
code: tracker.COURIER.UPS.CODE, | ||
name: tracker.COURIER.UPS.NAME | ||
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' | ||
} | ||
var result = { | ||
courier: courier, | ||
status: tracker.STATUS.PENDING | ||
} | ||
var $form = $('#podFormid') | ||
var checkpoints = [] | ||
$('.dataTable tr').each(function (idx) { | ||
if (idx === 0) { | ||
return true | ||
} | ||
var cols = $(this).find('td') | ||
var date = cols.eq(1).text().trim() | ||
var checkpoint = { | ||
courier: courier, | ||
location: cols.eq(0).text().trim().replace(/(\\n|\\t|\s{2,})/g, ' '), | ||
message: cols.eq(3).text().trim().replace(/(\\n|\\t|\s{2,})/g, ' '), | ||
status: tracker.STATUS.IN_TRANSIT, | ||
time: moment([date, cols.eq(2).text().trim()].join(' '), (date.indexOf('/') === 2 ? 'DD/MM/YYYY' : 'YYYY/MM/DD') + ' HH:mm').format('YYYY-MM-DDTHH:mm') | ||
} | ||
if (/Delivered/i.test(checkpoint.message) === true) { | ||
checkpoint.status = tracker.STATUS.DELIVERED | ||
} | ||
checkpoints.push(checkpoint) | ||
}) | ||
result.number = $form.find('input[name=tracknum]').val() | ||
result.checkpoints = checkpoints | ||
result.status = tracker.normalizeStatus(result.checkpoints) | ||
return result | ||
} | ||
@@ -68,8 +29,43 @@ } | ||
request(tracking, function (err, res, body) { | ||
if (err) { | ||
return cb(err) | ||
const response = JSON.parse(body) | ||
if (response.statusCode !== '200') { | ||
return cb(response.statusText) | ||
} | ||
const currentTrackNumberStatus = response.trackDetails[0] | ||
if (err || currentTrackNumberStatus.errorCode !== null) { | ||
return cb(err || currentTrackNumberStatus.errorText) | ||
} | ||
var courier = { | ||
code: tracker.COURIER.UPS.CODE, | ||
name: tracker.COURIER.UPS.NAME | ||
} | ||
var result = { | ||
courier: courier, | ||
status: currentTrackNumberStatus.progressBarType, | ||
number: currentTrackNumberStatus.trackingNumber | ||
} | ||
var checkpoints = [] | ||
var result = parser.trace(body) | ||
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result) | ||
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, | ||
status: tracker.STATUS.IN_TRANSIT, | ||
time: moment([current.date, current.time].join(' '), 'YYYY/MM/DD HH:mm').format('YYYY-MM-DDTHH:mm') | ||
} | ||
checkpoints.push(checkpoint) | ||
} | ||
result.checkpoints = checkpoints | ||
result.status = tracker.normalizeStatus(result.checkpoints) | ||
cb(null, result) | ||
}) | ||
@@ -76,0 +72,0 @@ } |
@@ -42,5 +42,6 @@ 'use strict' | ||
var rawTxt = $history.html() | ||
if (rawTxt) { | ||
rawTxt = rawTxt.replace(/\s+/g, ' ') | ||
if (!rawTxt) { | ||
return false | ||
} | ||
rawTxt = rawTxt.replace(/\s+/g, ' ') | ||
// txt -> history list | ||
@@ -50,3 +51,3 @@ var rawList = rawTxt.split('<hr>') | ||
var list = rawList[i].split('<br>') | ||
if (list.length < 3) { | ||
if (list.length <= 3) { | ||
continue | ||
@@ -59,3 +60,3 @@ } | ||
if (list[3].trim().length > 0) { | ||
if ((list[3] || '').trim().length > 0) { | ||
message.push(toText(list[3])) | ||
@@ -97,4 +98,8 @@ } | ||
} | ||
var result = parser.trace(body) | ||
var result | ||
try { | ||
result = parser.trace(body) | ||
} catch (e) { | ||
return cb('Courier response parsing error: ' + e.message) | ||
} | ||
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result) | ||
@@ -101,0 +106,0 @@ }) |
@@ -77,3 +77,8 @@ 'use strict' | ||
var result = parser.trace(body, number) | ||
var result | ||
try { | ||
result = parser.trace(body, number) | ||
} catch (e) { | ||
return cb('Courier response parsing error: ' + e.message) | ||
} | ||
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result) | ||
@@ -80,0 +85,0 @@ }) |
@@ -103,3 +103,8 @@ 'use strict' | ||
var result = parser.trace(body) | ||
var result | ||
try { | ||
result = parser.trace(body) | ||
} catch (e) { | ||
return cb('Courier response parsing error: ' + e.message) | ||
} | ||
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result) | ||
@@ -106,0 +111,0 @@ }) |
@@ -92,2 +92,6 @@ 'use strict' | ||
NAME: 'XIOEXPRESS' | ||
}, | ||
EPARCEL: { | ||
CODE: 'eparcel', | ||
NAME: 'eParcel' | ||
} | ||
@@ -94,0 +98,0 @@ } |
{ | ||
"name": "delivery-tracker", | ||
"version": "2.2.3", | ||
"version": "2.3.0", | ||
"author": { | ||
@@ -5,0 +5,0 @@ "name": "egg", |
@@ -33,2 +33,3 @@ # delivery-tracker | ||
XIOExpress | @egg- | https://xioexpress.com/ | ||
eParcel | @egg- | https://eparcel.kr/ | ||
@@ -122,3 +123,4 @@ ## Installation | ||
SICEPAT | sicepat | SICEPAT | ||
XIOEXPRESS | sicepat | XIOExpress | ||
XIOEXPRESS | xioexpress | XIOExpress | ||
EPARCEL | eparcel | eParcel | ||
@@ -125,0 +127,0 @@ ### STATUS |
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
71948
30
2046
264