feat(route): cfachina (#13949)

This commit is contained in:
Tony 2023-12-04 15:58:50 +00:00 committed by GitHub
parent 3f00c0f588
commit f7aecbcb9d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 92 additions and 1 deletions

View File

@ -0,0 +1,60 @@
const got = require('@/utils/got');
const cheerio = require('cheerio');
const { parseDate } = require('@/utils/parse-date');
const timezone = require('@/utils/timezone');
module.exports = async (ctx) => {
let { program = '分析师园地' } = ctx.params;
const baseUrl = 'https://www.cfachina.org';
let pageData,
pageUrl = `${baseUrl}/servicesupport/analygarden/`;
if (program !== '分析师园地') {
pageUrl = `${pageUrl}${program}/`;
const response = await got(pageUrl);
const $ = cheerio.load(response.data);
program = $('script:contains("Paging")')
.text()
.match(/var name = '(.+)';/)[1];
pageData = {
category: $('.crumb a')
.toArray()
.map((item) => $(item).text())
.slice(-2),
};
}
const { data: response } = await got(`${baseUrl}/qx-search/api/wcmSearch/getDataByProgram`, {
headers: {
accept: 'application/json, text/plain, */*',
},
searchParams: {
pageNo: 1,
pageSize: ctx.query.limit ? parseInt(ctx.query.limit, 10) : 20,
keyword: '',
startTime: '',
endTime: '',
type: '',
programName: program,
},
});
const items = response.data.dataList.map((item) => {
const link = new URL(item.docPubUrl, baseUrl).href;
return {
title: item.docTitle,
author: item.docAuthor,
link,
pubDate: timezone(parseDate(item.operTime), +8),
enclosure_url: link,
enclosure_type: `application/${link.split('.').pop()}`,
};
});
ctx.state.data = {
title: `${pageData?.category.toReversed().join(' - ') ?? '分析师园地'} - 中国期货业协会`,
link: pageUrl,
item: items,
};
};

View File

@ -0,0 +1,3 @@
module.exports = {
'/servicesupport/analygarden/:program?': ['TonyRL'],
};

13
lib/v2/cfachina/radar.js Normal file
View File

@ -0,0 +1,13 @@
module.exports = {
'cfachina.org': {
_name: '中国期货业协会',
'.': [
{
title: '分析师园地',
docs: 'https://docs.rsshub.app/other#zhong-guo-qi-huo-ye-xie-hui',
source: ['/servicesupport/analygarden/:program?', '/'],
target: '/cfachina/servicesupport/analygarden/:program?',
},
],
},
};

View File

@ -0,0 +1,3 @@
module.exports = (router) => {
router.get('/servicesupport/analygarden/:program?', require('./analygarden'));
};

View File

@ -1318,6 +1318,19 @@ Refer to [the list of supported currencies](https://wise.com/tools/exchange-rate
<Route author="Fatpandac" example="/piyao/jrpy" path="/piyao/jrpy"/>
## 中国期货业协会 {#zhong-guo-qi-huo-ye-xie-hui}
### 分析师园地 {#zhong-guo-qi-huo-ye-xie-hui-fen-xi-shi-yuan-di}
<Route author="TonyRL" example="/cfachina/servicesupport/analygarden" path="/cfachina/servicesupport/analygarden/:program?" paramsDesc={['分类,见下表,留空为全部']} radar="1">
| 有色金属类 | 黑色金属类 | 能源化工类 | 贵金属类 | 农产品类 | 金融类 | 指数类 |
| --------- | -------- | -------- | ------- | ------- | ----- | ----- |
| ysjsl | hsjsl | nyhgl | gjjsl | ncpl | jrl | zsl |
</Route>
## 中国银行 {#zhong-guo-yin-hang}
### 外汇牌价 {#zhong-guo-yin-hang-wai-hui-pai-jia}
@ -1357,4 +1370,3 @@ Refer to [the list of supported currencies](https://wise.com/tools/exchange-rate
### はてな匿名ダイアリー - 人気記事アーカイブ {#%E3%81%AF%E3%81%A6%E3%81%AA-%E3%81%AF%E3%81%A6%E3%81%AA-ni-ming-%E3%83%80%E3%82%A4%E3%82%A2%E3%83%AA%E3%83%BC-ren-qi-ji-shi-%E3%82%A2%E3%83%BC%E3%82%AB%E3%82%A4%E3%83%96}
<Route author="masakichi" example="/hatena/anonymous_diary/archive" path="/hatena/anonymous_diary/archive"/>