diff --git a/index.js b/index.js index 7059c8d9d5..86d83d4433 100644 --- a/index.js +++ b/index.js @@ -27,4 +27,7 @@ app.get('/juejin/category/:category', require('./routes/juejin/category')); // 自如 app.get('/ziroom/room/:city/:iswhole/:room/:keyword', require('./routes/ziroom/room')); +// 快递 +app.get('/express/:company/:number', require('./routes/express/express')); + app.listen(1200); \ No newline at end of file diff --git a/routes/express/express.js b/routes/express/express.js new file mode 100644 index 0000000000..6739208fa4 --- /dev/null +++ b/routes/express/express.js @@ -0,0 +1,47 @@ +const request = require('request'); +const art = require('art-template'); +const path = require('path'); +const base = require('../base'); +const mix = require('../../utils/mix'); + +module.exports = (req, res) => { + const company = req.params.company; + const number = req.params.number; + + base({ + req: req, + res: res, + getHTML: (callback) => { + request.get({ + url: `https://www.kuaidi100.com/query?type=${company}&postid=${number}`, + headers: { + 'User-Agent': mix.ua, + 'Referer': 'https://www.kuaidi100.com' + } + }, (err, httpResponse, body) => { + let data; + try { + data = JSON.parse(body); + } + catch (e) { + data = {}; + } + const result = data.data || []; + + const html = art(path.resolve(__dirname, '../../views/rss.art'), { + title: `快递 ${company}-${number}`, + link: 'https://www.kuaidi100.com', + description: `快递 ${company}-${number}`, + lastBuildDate: new Date().toUTCString(), + item: result && result.map((item) => ({ + title: item.context, + description: item.context, + pubDate: new Date(item.time || item.ftime).toUTCString(), + link: item.context + })), + }); + callback(html); + }); + } + }); +}; \ No newline at end of file