Files
RSSHub/lib/v2/orcid/index.js
忧郁的紫色毛衣男孩 75cb4f9e22 feat(route): add orcid (#7582)
* 完成issues#7485,在每日一图-国家地理中增加每日精选节点

* 修改文档和router位置

* 对日期pubDate规范进行了调整

* 优化调整获取内容逻辑,修改pubDate字段的获取方式

* 调整pubDate参数

* 删除代码中多余的console

* 调整parse-date引用

* 调整时区

* 修改国家地理每日一图

* issues-#7471,解决国家地理每日一图获取失败问题,因为网站更改,并且网站对图片进行了处理,所以调整获取方式。

* 删除无用代码

* 调整代码,错删了代码

* 重新提交,之前提交后部署失败。

* feat:add orcid works route

* feat(route):add ORCID 获取Works(前20条)

* 调整代码,使其更加规范

* fix: remove all unnecessary changes

* refactor: migrate to v2

Co-authored-by: TonyRL <TonyRL@users.noreply.github.com>
2022-02-21 01:49:05 +08:00

55 lines
1.9 KiB
JavaScript

const got = require('@/utils/got');
const { art } = require('@/utils/render');
const path = require('path');
module.exports = async (ctx) => {
const id = ctx.params.id;
const rootUrl = 'https://orcid.org/';
const currentUrl = `${rootUrl}${id}/worksPage.json?offset=0&sort=date&sortAsc=false&pageSize=20`;
const response = await got(currentUrl);
const items = response.data.groups;
const works = new Array();
const out = new Array();
for (let i = 0; i < items.length; i++) {
for (let j = 0; j < items[i].works.length; j++) {
works.push(items[i].works[j]);
}
}
works.map((work) => {
let Str = '';
for (let l = 0; l < work.workExternalIdentifiers.length; l++) {
if (work.workExternalIdentifiers[l].url) {
Str += '<a href="' + work.workExternalIdentifiers[l].url.value + '">' + work.workExternalIdentifiers[l].externalIdentifierType.value + ': ' + work.workExternalIdentifiers[l].externalIdentifierId.value + '</a><br>';
} else {
Str += work.workExternalIdentifiers[l].externalIdentifierType.value + ': ' + work.workExternalIdentifiers[l].externalIdentifierId.value + '<br>';
}
}
const info = {
title: work.title.value,
link: work.url,
description: art(path.join(__dirname, 'templates/description.art'), {
title: work.title.value,
journalTitle: work.journalTitle.value,
publicationDate: work.publicationDate,
workType: work.workType.value,
Str,
sourceName: work.sourceName,
}),
guid: work.putCode.value,
};
out.push(info);
return info;
});
ctx.state.data = {
title: 'ORCID Works List' + id,
link: currentUrl,
item: out,
};
};