diff --git a/lib/routes/japanpost/track.js b/lib/routes/japanpost/track.js index cd2d8dcb7a..fb9a6fd6b0 100644 --- a/lib/routes/japanpost/track.js +++ b/lib/routes/japanpost/track.js @@ -39,14 +39,16 @@ module.exports = async (ctx) => { const listOdd = list.odd(); const packageType = $('.tableType01').eq(0).find('tr').eq(1).find('td').eq(1).text().trim(); + const packageService = $('.tableType01').eq(0).find('tr').eq(1).find('td').eq(2).text().trim(); + const serviceText = locale === 'ja' ? '付加サービス:' : 'Additional services: '; let lastItemTimeStamp; let tz; ctx.state.data = { - title: `${baseTitle} ${packageType} ${reqCode}`, + title: `${baseTitle} ${reqCode} ${packageType}`, link: link, - description: `${baseTitle} ${packageType} ${reqCode}`, + description: `${baseTitle} ${reqCode} ${packageType}`, language: locale, item: listEven .map((index, item) => { @@ -79,10 +81,13 @@ module.exports = async (ctx) => { itemDescription += `
${i}`; } } + if (packageService) { + itemDescription += '
' + serviceText + packageService; + } } const itemPubDateText = itemTd.eq(0).text().trim(); - const itemGuid = utils.generateGuid(itemTitle + itemDescription + itemPubDateText); + const itemGuid = utils.generateGuid(reqCode + itemTitle + itemDescription + itemPubDateText); let thisItemTimeStamp; [thisItemTimeStamp, tz] = utils.parseDatetime(itemPubDateText, packageOffice, packageRegion, tz, locale); diff --git a/lib/routes/japanpost/utils.js b/lib/routes/japanpost/utils.js index 6fe8d61d8f..5eaaadfe93 100644 --- a/lib/routes/japanpost/utils.js +++ b/lib/routes/japanpost/utils.js @@ -64,12 +64,10 @@ const utils = { customFormat = dayjs(t, formatEnDate, true).isValid() ? formatEnDate : dayjs(t, formatEnDateTime, true).isValid() ? formatEnDateTime : undefined; break; } - if (!customFormat) { - return [new Date(t).getTime(), tz]; - } if (o) { - if (o.indexOf('郵便局') !== -1) { + const packageInJPKeywords = [['郵便局'], ['都​', '道', '府', '県']]; + if (packageInJPKeywords[0].some((i) => o.includes(i)) || packageInJPKeywords[1].some((i) => r.includes(i))) { tz = 'Asia/Tokyo'; } else { const oS = o.replace(' EMS', '').replace(' INT', ''); @@ -84,7 +82,12 @@ const utils = { } } } - return [dayjs.tz(t, customFormat, tz).valueOf(), tz]; + + if (!customFormat) { + return [new Date(t).getTime(), tz]; + } else { + return [dayjs.tz(t, customFormat, tz).valueOf(), tz]; + } }, };