diff --git a/docs/en/multimedia.md b/docs/en/multimedia.md index 847302ce12..8e03ec5b2d 100644 --- a/docs/en/multimedia.md +++ b/docs/en/multimedia.md @@ -6,9 +6,9 @@ pageClass: routes ## 60-Second Science - Scientific American -### Transcript + - +Full transcript support for better user experience. ## 99% Invisible diff --git a/docs/multimedia.md b/docs/multimedia.md index aee581d66d..9719460d6a 100644 --- a/docs/multimedia.md +++ b/docs/multimedia.md @@ -12,9 +12,9 @@ pageClass: routes ## 60-Second Science - Scientific American -### Transcript + - +输出 Transcript 从而提供比官方(podcast)更好的使用体验。 ## 99% Invisible diff --git a/lib/router.js b/lib/router.js index db2f74dc8d..bea4b8a0f0 100644 --- a/lib/router.js +++ b/lib/router.js @@ -985,7 +985,7 @@ router.get('/laosiji/feed', require('./routes/laosiji/feed')); router.get('/laosiji/hotshow/:id', require('./routes/laosiji/hotshow')); // Scientific American 60-Second Science -router.get('/60s-science/transcript', require('./routes/60s-science/transcript')); +router.get('/60s-science', require('./routes/60s-science/transcript')); // 99% Invisible router.get('/99percentinvisible/transcript', require('./routes/99percentinvisible/transcript')); diff --git a/lib/routes/60s-science/transcript.js b/lib/routes/60s-science/transcript.js index 4e16ef68f6..5c9f146ef1 100644 --- a/lib/routes/60s-science/transcript.js +++ b/lib/routes/60s-science/transcript.js @@ -3,6 +3,7 @@ const got = require('@/utils/got'); module.exports = async (ctx) => { const url = `https://www.scientificamerican.com/podcast/60-second-science/`; + const cover = `https://static.scientificamerican.com/sciam/cache/file/484FA146-8892-477F-B38D18775563CC9E_small.jpg`; const res = await got.get(url); const $ = cheerio.load(res.data); @@ -28,10 +29,17 @@ module.exports = async (ctx) => { capture('.transcript__close').remove(); const intro = capture('.article-media__object').html() + '

'; - const contents = intro + capture('.transcript__inner').html(); + const contents = + intro + + capture('.transcript__inner') + .html() + .replace(/

\[?\(?The above text.*this podcast.*?em.*?p>/g, ''); + const track = capture('.podcasts__media > div > a').attr('href'); const single = { title, description: contents, + enclosure_url: track, + enclosure_type: 'audio/mpeg', link: address, guid: address, author: author, @@ -42,7 +50,10 @@ module.exports = async (ctx) => { }) ); ctx.state.data = { - title: 'Transcripts of SA 60-Second Science', + itunes_author: 'Scientific American', + itunes_category: 'Science', + image: cover, + title: '60-Second Science', link: url, item: out, };