Skip to content

Commit

Permalink
feat(route): add 中国汽车工业协会统计信息网 (#14339)
Browse files Browse the repository at this point in the history
  • Loading branch information
nczitzk authored Jan 30, 2024
1 parent 25edc8e commit 38fbcf0
Show file tree
Hide file tree
Showing 5 changed files with 118 additions and 0 deletions.
65 changes: 65 additions & 0 deletions lib/v2/auto-stats/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
const got = require('@/utils/got');
const cheerio = require('cheerio');
const iconv = require('iconv-lite');
const timezone = require('@/utils/timezone');
const { parseDate } = require('@/utils/parse-date');

module.exports = async (ctx) => {
const { category = 'xxkd' } = ctx.params;
const limit = ctx.query.limit ? Number.parseInt(ctx.query.limit, 10) : 30;

const rootUrl = 'http://www.auto-stats.org.cn';
const currentUrl = new URL(`${category}.asp`, rootUrl).href;

const { data: response } = await got(currentUrl, {
responseType: 'buffer',
});

const $ = cheerio.load(iconv.decode(response, 'gbk'));

let items = $('a.dnews font')
.slice(0, limit)
.toArray()
.map((item) => {
item = $(item);

const title = item.text();
const pubDate = title.match(/(\d{4}(?:\/\d{1,2}){2}\s\d{1,2}(?::\d{2}){2})/)?.[1] ?? undefined;

return {
title: title.replace(//, '').split(/\d+/)[0],
link: new URL(item.parent().prop('href'), rootUrl).href,
pubDate: timezone(parseDate(pubDate, 'YYYY/M/D H:mm:ss'), +8),
};
});

items = await Promise.all(
items.map((item) =>
ctx.cache.tryGet(item.link, async () => {
const { data: detailResponse } = await got(item.link, {
responseType: 'buffer',
});

const content = cheerio.load(iconv.decode(detailResponse, 'gbk'));

item.description = content('table tbody tr td.dd').last().html();

return item;
})
)
);

const subtitle = $('title').text().split(//).pop();
const image = new URL('images/logo.jpg', rootUrl).href;

ctx.state.data = {
item: items,
title: $('title').text(),
link: currentUrl,
description: subtitle,
language: 'zh',
image,
subtitle,
allowEmpty: true,
};
};
3 changes: 3 additions & 0 deletions lib/v2/auto-stats/maintainer.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
'/:category?': ['nczitzk'],
};
35 changes: 35 additions & 0 deletions lib/v2/auto-stats/radar.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
module.exports = {
'auto-stats.org.cn': {
_name: '中国汽车工业协会统计信息网',
'.': [
{
title: '分类',
docs: 'https://docs.rsshub.app/routes/other#zhong-guo-qi-che-xie-hui-tong-ji-xin-xi-wang-fen-lei',
source: ['/:category'],
target: (params) => {
const category = params.category;

return `/auto-stats${category ? `/${category.replace(/\.asp$/, '')}` : ''}`;
},
},
{
title: '信息快递',
docs: 'https://docs.rsshub.app/routes/other#zhong-guo-qi-che-xie-hui-tong-ji-xin-xi-wang-fen-lei',
source: ['/xxkd.asp'],
target: '/auto-stats/xxkd',
},
{
title: '工作动态',
docs: 'https://docs.rsshub.app/routes/other#zhong-guo-qi-che-xie-hui-tong-ji-xin-xi-wang-fen-lei',
source: ['/gzdt.asp'],
target: '/auto-stats/gzdt',
},
{
title: '专题分析',
docs: 'https://docs.rsshub.app/routes/other#zhong-guo-qi-che-xie-hui-tong-ji-xin-xi-wang-fen-lei',
source: ['/ztfx.asp'],
target: '/auto-stats/ztfx',
},
],
},
};
3 changes: 3 additions & 0 deletions lib/v2/auto-stats/router.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = (router) => {
router.get('/:category?', require('./'));
};
12 changes: 12 additions & 0 deletions website/docs/routes/other.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -1047,6 +1047,18 @@ Specify options (in the format of query string) in parameter `routeParams` param
| 299 | 2143 |
</Route>

## 中国汽车工业协会统计信息网

### 分类

<Route author="nczitzk" example="/auto-stats" path="/auto-stats/:category?" paramsDesc={['分类,见下表,默认为信息快递']} radar="1">

| 信息快递 | 工作动态 | 专题分析 |
| -------- | -------- | -------- |
| xxkd | gzdt | ztfx |

</Route>

## 中国期货业协会 {#zhong-guo-qi-huo-ye-xie-hui}

### 分析师园地 {#zhong-guo-qi-huo-ye-xie-hui-fen-xi-shi-yuan-di}
Expand Down

0 comments on commit 38fbcf0

Please sign in to comment.