delivery-tracker
Advanced tools
Comparing version 2.5.4 to 2.5.5
@@ -0,1 +1,4 @@ | ||
# 2.5.5 | ||
* fixed an issue in SICEPAT is not working. | ||
# 2.5.4 | ||
@@ -2,0 +5,0 @@ * fixed RTS issue in JNT. |
@@ -5,3 +5,2 @@ 'use strict' | ||
var moment = require('moment') | ||
var cheerio = require('cheerio') | ||
@@ -82,21 +81,12 @@ var tracker = require('../') | ||
var extractNumber = function (str) { | ||
var matches = str.match(/(\d+)/) | ||
return matches ? matches[1] : null | ||
} | ||
return { | ||
trackingInfo: function (number) { | ||
return { | ||
method: 'POST', | ||
url: 'https://www.sicepat.com/checkAwb', | ||
rejectUnauthorized: false, | ||
data: { | ||
'textarea-awb': number | ||
} | ||
method: 'GET', | ||
url: 'https://content-main-api-production.sicepat.com/public/check-awb/' + number, | ||
json: true | ||
} | ||
}, | ||
parser: { | ||
trace: function (body, number) { | ||
var $ = cheerio.load(body) | ||
trace: function (data, number) { | ||
var courier = { | ||
@@ -109,46 +99,28 @@ code: tracker.COURIER.SICEPAT.CODE, | ||
courier: courier, | ||
number: number, | ||
status: tracker.STATUS.PENDING, | ||
checkpoints: [] | ||
number: data.waybill_number, | ||
status: tracker.STATUS.PENDING | ||
} | ||
var checkpoints = [] | ||
var $body = $('#awb-list') | ||
var $summary = $body.find('.res-item') | ||
for (var i = 0; i < data.track_history.length; i++) { | ||
var item = data.track_history[i] | ||
var checkpoint = { | ||
courier: courier, | ||
location: '', | ||
message: item.city || item.receiver_name, | ||
status: tracker.STATUS.IN_TRANSIT, | ||
time: moment(item.date_time + '+0700', 'YYYY-MM-DD HH:mmZ').utc().format('YYYY-MM-DDTHH:mm:ssZ') | ||
} | ||
if ($summary.length > 0) { | ||
var currentDate = null | ||
result.number = extractNumber($summary.find('td').eq(1).text()) | ||
if (item.status === 'PICKREQ') { | ||
checkpoint.status = tracker.STATUS.INFO_RECEIVED | ||
} else if (item.status === 'DELIVERED') { | ||
checkpoint.status = tracker.STATUS.DELIVERED | ||
} | ||
checkpoints.push(checkpoint) | ||
} | ||
$body.find('.history-awb-timeline li').each(function (idx) { | ||
var checkpoint = { | ||
courier: courier, | ||
location: '', | ||
message: $(this).find('.history-detail p').eq(1).text().trim(), | ||
status: tracker.STATUS.IN_TRANSIT | ||
} | ||
var date = $(this).find('.history-date h5').text().trim() | ||
var time = $(this).find('.history-detail p').eq(0).text().trim() | ||
result.checkpoints = checkpoints.reverse() | ||
result.status = tracker.normalizeStatus(result.checkpoints) | ||
if (date) { | ||
currentDate = date | ||
} | ||
checkpoint.time = moment(currentDate + time + '+0700', 'DD-MMM-YYYYHH:mmZ').utc().format('YYYY-MM-DDTHH:mmZ') | ||
if (checkpoint.message.indexOf('TERIMA PERMINTAAN PICK UP') !== -1) { | ||
checkpoint.status = tracker.STATUS.INFO_RECEIVED | ||
} | ||
checkpoints.push(checkpoint) | ||
}) | ||
result.checkpoints = checkpoints.reverse() | ||
result.status = tracker.normalizeStatus(result.checkpoints) | ||
if ($summary.find('td').eq(7).text().trim() === 'DELIVERED') { | ||
result.status = tracker.STATUS.DELIVERED | ||
result.checkpoints[0].status = tracker.STATUS.DELIVERED | ||
} | ||
} | ||
return result | ||
@@ -158,7 +130,3 @@ } | ||
load: function (tracking, cb) { | ||
request.post({ | ||
url: tracking.url, | ||
form: tracking.data, | ||
rejectUnauthorized: false | ||
}, cb) | ||
request(tracking, cb) | ||
} | ||
@@ -179,3 +147,3 @@ } | ||
try { | ||
var result = handler.parser.trace(body, number) | ||
var result = handler.parser.trace(body.sicepat.result, number) | ||
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result) | ||
@@ -182,0 +150,0 @@ } catch (e) { |
{ | ||
"name": "delivery-tracker", | ||
"version": "2.5.4", | ||
"version": "2.5.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
80704
2303