diff --git a/lib/routes/3dm/news_center.js b/lib/routes/3dm/news_center.js index 48857f1b5..07513dc75 100644 --- a/lib/routes/3dm/news_center.js +++ b/lib/routes/3dm/news_center.js @@ -9,25 +9,27 @@ module.exports = async (ctx) => { url: url, }); const $ = cheerio.load(res.data); - const list = $('.news_list .list li') - .slice(0, 10) - .get(); + const list = $('.Revision_list .selectpost').get(); const out = await Promise.all( list.map(async (i) => { const item = $(i); const itemUrl = $(item) - .find('.selectarcpost') + .find('.text') + .find('a') .attr('href'); const cache = await ctx.cache.get(itemUrl); if (cache) { return Promise.resolve(JSON.parse(cache)); } const title = $(item) - .find('.bt') - .text(); - const content = $(item) - .find('p') + .find('.text') + .find('a') .text(); + + const itemReponse = await got.get(itemUrl); + const itemElement = cheerio.load(itemReponse.data); + const description = itemElement('.news_warp_center').html(); + const pageInfo = $(item) .find('.time') .text(); @@ -35,9 +37,10 @@ module.exports = async (ctx) => { const regRes = regex.exec(pageInfo); const time = regRes === null ? new Date() : new Date(regRes[0]); time.setTime(time.getTime() + (sourceTimezoneOffset - time.getTimezoneOffset() / 60) * 60 * 60 * 1000); + const single = { title: title, - description: content, + description: description, pubDate: time.toUTCString(), link: itemUrl, guid: itemUrl, @@ -47,10 +50,13 @@ module.exports = async (ctx) => { return Promise.resolve(single); }) ); + ctx.state.data = { - title: $('title') - .text() - .split('_')[0], + title: + '3DM - ' + + $('title') + .text() + .split('_')[0], link: url, item: out, };