Socket
Socket
Sign inDemoInstall

delivery-tracker

Package Overview
Dependencies
Maintainers
1
Versions
90
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

delivery-tracker - npm Package Compare versions

Comparing version 2.4.3 to 2.4.4

3

CHANGELOG.md

@@ -0,1 +1,4 @@

# 2.4.4
* fixed an issue in CJKOREAEXPRESS is not working.
# 2.4.3

@@ -2,0 +5,0 @@ * fixed an issue of UPS that always marked as InTransit

88

lib/courier/cjkoreaexpress.js
'use strict'
var request = require('request')
var cheerio = require('cheerio')
var moment = require('moment')

@@ -10,9 +9,18 @@

var trackingInfo = function (number) {
number = (number + '').replace(/-/gm, '')
return {
method: 'POST',
url: 'https://www.doortodoor.co.kr/parcel/doortodoor.do',
data: {
'fsp_action': 'PARC_ACT_002',
'fsp_cmd': 'retrieveInvNoACT2',
'invc_no': (number + '').replace(/-/gm, '')
cookie: {
url: 'https://www.cjlogistics.com/ko/tool/parcel/tracking',
method: 'GET'
},
detail: function (csrf) {
return {
method: 'POST',
url: 'https://www.cjlogistics.com/ko/tool/parcel/tracking-detail',
json: true,
form: {
'_csrf': csrf,
'paramInvcNo': number
}
}
}

@@ -23,4 +31,7 @@ }

var parser = {
csfr: function (body) {
var matches = body.match(/name="_csrf"\s+value="([\d\w-]+)"/i)
return matches ? matches[1] : ''
},
trace: function (body) {
var $ = cheerio.load(body)
var courier = {

@@ -32,3 +43,2 @@ code: tracker.COURIER.CJKOREAEXPRESS.CODE,

courier: courier,
number: $('#inv_no').val(),
status: tracker.STATUS.PENDING,

@@ -39,23 +49,24 @@ checkpoints: []

$('table.ptb10.mb15').find('tr').each(function (idx) {
if (idx > 0) {
var cols = $(this).find('td')
var status = cols.eq(0).text().trim().replace(/\s{2,}/, ' ')
var time = cols.eq(1).text().trim().replace(/\s{2,}/, ' ')
var resultMap = body.parcelDetailResultMap
result.number = resultMap.paramInvcNo
var checkpoint = {
courier: courier,
location: cols.eq(1).text().trim(),
message: status,
status: tracker.STATUS.IN_TRANSIT,
time: moment(time, 'YYYY-MM-DD HH:mm').format('YYYY-MM-DDTHH:mm:ss+0900')
}
for (var i = 0; i < resultMap.resultList.length; i++) {
var item = resultMap.resultList[i]
var checkpoint = {
courier: courier,
location: item.regBranNm,
message: [item.crgNm],
status: tracker.STATUS.IN_TRANSIT,
time: moment(item.dTime + '+0900').utc().format('YYYY-MM-DDTHH:mmZ')
}
checkpoint.message.indexOf('집화처리') !== -1 && (checkpoint.status = tracker.STATUS.INFO_RECEIVED)
checkpoint.message.indexOf('배달완료') !== -1 && (checkpoint.status = tracker.STATUS.DELIVERED)
checkpoints.push(checkpoint)
if (['집화처리', '상품인수'].indexOf(item.scanNm) !== -1) {
checkpoint.status = tracker.STATUS.INFO_RECEIVED
} else if (item.scanNm === '배달완료') {
checkpoint.status = tracker.STATUS.DELIVERED
}
})
checkpoints.push(checkpoint)
}
result.checkpoints = checkpoints.reverse()

@@ -73,8 +84,5 @@ result.status = tracker.normalizeStatus(result.checkpoints)

var tracking = trackingInfo(number)
var req = request.defaults({ jar: true })
request.post({
url: tracking.url,
form: tracking.data,
strictSSL: false
}, function (err, res, body) {
req(tracking.cookie, function (err, res, body) {
if (err) {

@@ -84,8 +92,14 @@ return cb(err)

try {
var result = parser.trace(body)
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result)
} catch (e) {
cb(e.message)
}
var csfrValue = parser.csfr(body)
req(tracking.detail(csfrValue), function (err, res, body) {
if (err) {
return cb(err)
}
try {
var result = parser.trace(body)
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result)
} catch (e) {
cb(e.message)
}
})
})

@@ -92,0 +106,0 @@ }

@@ -18,5 +18,5 @@ 'use strict'

},
checkpoints: function (parma) {
checkpoints: function (hash) {
return {
url: 'https://www.lbcexpress.com/track/' + parma.hash,
url: 'https://www.lbcexpress.com/track/' + hash,
method: 'GET'

@@ -75,3 +75,3 @@ }

request(trackingInfo(number).hash, function (err, req, body) {
cb(err, err ? null : JSON.parse(body))
cb(err, err ? null : JSON.parse(body).hash)
})

@@ -78,0 +78,0 @@ }

{
"name": "delivery-tracker",
"version": "2.4.3",
"version": "2.4.4",
"author": {

@@ -5,0 +5,0 @@ "name": "egg",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc