Files
RSSHub/lib/v2/penguin-random-house/articles.js
StevenRCE0 2af4df23e6 feat(route): Penguin Random House (#10287)
* Initial commit of route Penguin Random House

* WIP: parse books into templates

* Updated radar info

* Added articles route

* Renamed the route and added docs

* Update lib/v2/penguin-random-house/articles.js according to suggestion

Co-authored-by: Tony <TonyRL@users.noreply.github.com>

* Changed category to Reading, added En docs

* Changed pubDate format

* Update lib/v2/penguin-random-house/router.js

Co-authored-by: Tony <TonyRL@users.noreply.github.com>

* Update lib/v2/penguin-random-house/articles.js

Co-authored-by: Tony <TonyRL@users.noreply.github.com>

* Update lib/v2/penguin-random-house/thereaddown.js

Co-authored-by: Tony <TonyRL@users.noreply.github.com>

* Parse time

* Fallback on failed regex matches

* Fallback date to undefined

* Update lib/v2/penguin-random-house/utils.js

Co-authored-by: Tony <TonyRL@users.noreply.github.com>

* fix: radar domain
2022-07-24 22:21:46 +08:00

28 lines
893 B
JavaScript

const utils = require('./utils');
const cheerio = require('cheerio');
const got = require('@/utils/got');
module.exports = async (ctx) => {
const link = 'https://www.penguinrandomhouse.com/articles/';
const res = await got(link);
const $ = cheerio.load(res.data);
const itemArray = $('.archive-module-half-container,.archive-module-third-container')
.map(function () {
return {
url: $(this).find('a').attr('href'),
title: $(this).find('.archive-module-text').first().text(),
};
})
.get();
const out = await utils.parseList(itemArray, ctx, utils.parseArticle);
ctx.state.data = {
title: 'Penguin Random House Articles',
link,
description: 'In-depth interviews, author essays, fascinating essays. Go deeper into the books you love.',
item: out,
};
};