fix: ProductHunt Today (#5140)

This commit is contained in:
Henry Wang 2020-07-07 10:39:45 +01:00 committed by GitHub
parent 9fb68e77f5
commit 065ddbfd07
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 18 additions and 23 deletions

View File

@ -1,6 +1,5 @@
const got = require('@/utils/got');
const jsdom = require('jsdom');
const { JSDOM } = jsdom;
const { JSDOM } = require('jsdom');
module.exports = async (ctx) => {
const PROVINCE = ctx.params.province || '国内';

View File

@ -1,6 +1,5 @@
const got = require('@/utils/got');
const jsdom = require('jsdom');
const { JSDOM } = jsdom;
const { JSDOM } = require('jsdom');
module.exports = async (ctx) => {
const response = await got({

View File

@ -1,8 +1,7 @@
const cheerio = require('cheerio');
const got = require('@/utils/got');
const url = require('url');
const jsdom = require('jsdom');
const { JSDOM } = jsdom;
const { JSDOM } = require('jsdom');
const ProcessVideo = (content) => {
content('div.video').each((i, v) => {

View File

@ -1,7 +1,6 @@
const got = require('@/utils/got');
const cheerio = require('cheerio');
const jsdom = require('jsdom');
const { JSDOM } = jsdom;
const { JSDOM } = require('jsdom');
async function nuxtReader(data) {
let nuxt = {};

View File

@ -1,24 +1,24 @@
const got = require('@/utils/got');
const cheerio = require('cheerio');
module.exports = async (ctx) => {
const response = await got.get('https://www.producthunt.com/');
const $ = cheerio.load(response.data);
const data = JSON.parse(response.data.match(/(?<=window\.__APOLLO_STATE__ =)(.*?)(?=;<\/script>)/)[0]);
const list = Object.values(data).filter((o) => o.__typename === 'Post');
const list = $('ul[class^="postsList"] li');
ctx.state.data = {
title: 'Product Hunt Today Popular',
link: 'https://www.producthunt.com/',
item: list
.map((i, item) => {
const itemDom = $(item);
return {
title: itemDom.find('h3').text(),
description: `${itemDom.find('h3 + p').text()}<br><img src="${itemDom.find('h3').attr('src')}">`,
link: 'https://www.producthunt.com' + itemDom.find('a').attr('href'),
};
})
.get(),
item: list.map((l) => {
const img = `https://ph-files.imgix.net/${data[l.thumbnail.id].image_uuid}?auto=format&auto=compress&codec=mozjpeg&cs=strip&w=150&h=150&fit=crop`;
return {
title: l.name,
description: `${l.tagline}<br><img src="${img}">`,
link: 'https://www.producthunt.com/post/' + l.slug,
pubDate: new Date(l.updated_at),
};
}),
};
};

View File

@ -1,6 +1,5 @@
const got = require('@/utils/got');
const jsdom = require('jsdom');
const { JSDOM } = jsdom;
const { JSDOM } = require('jsdom');
async function nuxtReader(data) {
let nuxt = {};