feat(route): support europechinese (#15019)

* support europechinese

* fix time
This commit is contained in:
Enoch Ma 2024-04-04 21:52:02 +02:00 committed by GitHub
parent 5da0ec13b0
commit 3ba4a634cf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 72 additions and 0 deletions

View File

@ -0,0 +1,66 @@
import { Route } from '@/types';
import { load } from 'cheerio';
import cache from '@/utils/cache';
import got from '@/utils/got';
export const route: Route = {
path: '/latest',
categories: ['new-media'],
example: '/europechinese/latest',
parameters: {},
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,
supportPodcast: false,
supportScihub: false,
},
radar: [
{
source: ['europechinese.blogspot.com'],
},
],
name: '最新',
maintainers: ['emdoe'],
handler,
url: 'europechinese.blogspot.com/',
};
async function handler() {
const url = `https://europechinese.blogspot.com/`;
const { data: response } = await got(url);
const $ = load(response);
const list = $('h3.post-title');
const out = await Promise.all(
list.map((_, item) => {
const title = $(item).find('a').text();
const link = $(item).find('a').attr('href');
return cache.tryGet(link, async () => {
const { data: response } = await got(link);
const $ = load(response);
$('div.widget-content').remove();
$('div.byline').remove();
$('div.post-sidebar').remove();
const time = $('time.published').attr('datetime');
const text = $('div.post-body-container').html();
return {
title,
link,
guid: link,
description: text,
pubDate: time,
};
});
})
);
return {
title: `歐洲動態(國際)| 最新`,
link: url,
item: out,
};
}

View File

@ -0,0 +1,6 @@
import type { Namespace } from '@/types';
export const namespace: Namespace = {
name: '歐洲動態(國際)',
url: 'europechinese.blogspot.com',
};