diff --git a/docs/en/journal.md b/docs/en/journal.md index 3f0678243b..cae7456b77 100644 --- a/docs/en/journal.md +++ b/docs/en/journal.md @@ -140,24 +140,6 @@ The parameter id in the route is the id in the URL of the user's Google Scholar -## JASA - -### Latest Research - - - - - -### Section Research - - - -| Section | REFLECTIONS | ANIMAL BIOACOUSTICS | others | -| :-----: | :---------: | :-----------------: | :----: | -| `:id` | REFLECTIONS | ANIMAL+BIOACOUSTICS | ... | - - - ## MIT Technology Review @@ -346,11 +328,11 @@ _only support Science Journal_ ### Journal - + ### Section - + ## Springer diff --git a/docs/journal.md b/docs/journal.md index 05ca99be25..fe07ff13df 100644 --- a/docs/journal.md +++ b/docs/journal.md @@ -134,24 +134,6 @@ pageClass: routes -## JASA - -### 最新文章 - - - - - -### 专栏 - - - -| Section | REFLECTIONS | ANIMAL BIOACOUSTICS | others | -| :-----: | :---------: | :-----------------: | :----: | -| `:id` | REFLECTIONS | ANIMAL+BIOACOUSTICS | ... | - - - ## Nature 系列 ::: tip Tips @@ -313,11 +295,11 @@ You can get all short name of a journal from ### 期刊 - + ### 专栏 - + ## Springer diff --git a/lib/v2/jasa/latest.js b/lib/v2/jasa/latest.js deleted file mode 100644 index bf3658c1bf..0000000000 --- a/lib/v2/jasa/latest.js +++ /dev/null @@ -1,70 +0,0 @@ -const got = require('@/utils/got'); -const cheerio = require('cheerio'); -const config = require('@/config').value; -const path = require('path'); -const { art } = require('@/utils/render'); - -module.exports = async (ctx) => { - const host = 'https://asa.scitation.org'; - const hostUrl = host.concat('/toc/jas/current?size=all'); - const resp = await got(host); - const cookie = resp.headers['set-cookie'].join(' '); - const headers = { - 'X-Requested-With': 'XMLHttpRequest', - 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', - 'Accept-Encoding': 'gzip, deflate, br', - 'User-Agent': config.ua, - cookie, - }; - - const curtResponse = await got({ - method: 'get', - url: hostUrl, - headers, - }); - const $ = cheerio.load(curtResponse.data); - const list = $('.card') - .map((_, item) => { - $(item).find('.access-text').remove(); - const title = $(item).find('.hlFld-Title').text(); - const authors = $(item).find('.entryAuthor.all').text(); - const img = $(item).find('img').attr('src'); - const link = $(item).find('.ref.nowrap').attr('href'); - const doi = link.replace('/doi/full/', ''); - return { - title, - link, - doi, - authors, - img, - }; - }) - .get(); - - const renderDesc = (item) => - art(path.join(__dirname, 'templates/description.art'), { - item, - }); - await Promise.all( - list.map((item) => - ctx.cache.tryGet(item.link, async () => { - const itemResponse = await got({ - method: 'post', - url: host.concat('/action/PB2showAjaxAbstract'), - headers, - body: 'doi=' + item.doi, - }); - const content = cheerio.load(itemResponse.data); - item.abstract = content('span').text(); - item.description = renderDesc(item); - return item; - }) - ) - ); - - ctx.state.data = { - title: 'JASA - Latest', - link: hostUrl, - item: list, - }; -}; diff --git a/lib/v2/jasa/maintainer.js b/lib/v2/jasa/maintainer.js deleted file mode 100644 index 44b2b961e7..0000000000 --- a/lib/v2/jasa/maintainer.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - '/latest': ['Derekmini', 'auto-bot-ty'], - '/section/:id': ['Derekmini'], -}; diff --git a/lib/v2/jasa/radar.js b/lib/v2/jasa/radar.js deleted file mode 100644 index 4408984782..0000000000 --- a/lib/v2/jasa/radar.js +++ /dev/null @@ -1,19 +0,0 @@ -module.exports = { - 'scitation.org': { - _name: 'JASA', - asa: [ - { - title: 'latest', - docs: 'https://docs.rsshub.app/journal.html#jasa', - source: '/*', - target: '/jasa/latest', - }, - { - title: 'section', - docs: 'https://docs.rsshub.app/journal.html#jasa', - source: '/*', - target: (params, url) => `/jasa/section/${new URL(url).searchParams.get('tocSection')}`, - }, - ], - }, -}; diff --git a/lib/v2/jasa/router.js b/lib/v2/jasa/router.js deleted file mode 100644 index ab0269c9b0..0000000000 --- a/lib/v2/jasa/router.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = function (router) { - router.get('/latest', require('./latest')); - router.get('/section/:id', require('./section')); -}; diff --git a/lib/v2/jasa/section.js b/lib/v2/jasa/section.js deleted file mode 100644 index 8065e8d04d..0000000000 --- a/lib/v2/jasa/section.js +++ /dev/null @@ -1,95 +0,0 @@ -const got = require('@/utils/got'); -const cheerio = require('cheerio'); -const config = require('@/config').value; -const path = require('path'); -const { art } = require('@/utils/render'); - -module.exports = async (ctx) => { - const host = 'https://asa.scitation.org'; - const hostUrl = host.concat('/toc/jas/current?size=all'); - const resp = await got(host); - const cookie = resp.headers['set-cookie'].join(' '); - const headers = { - 'X-Requested-With': 'XMLHttpRequest', - 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', - 'Accept-Encoding': 'gzip, deflate, br', - 'User-Agent': config.ua, - cookie, - }; - - const curtResponse = await got({ - method: 'get', - url: hostUrl, - headers, - }); - const $1 = cheerio.load(curtResponse.data); - const baseUrl = $1('.row.js_issue.highlighted').find('a').attr('href'); - const heading = $1('.subject-heading') - .map((_, item) => ({ - section: $1(item).text(), - })) - .get(); - - let list; - let ifContainSection = false; - const id = ctx.params.id.split('+').join(' '); - for (let i = 0, l = heading.length; i < l; i++) { - if (heading[i].section === id) { - ifContainSection = true; - } - } - if (ifContainSection === true) { - const sectUrl = baseUrl.concat('?tocSection=', id); - const response = await got({ - method: 'get', - url: sectUrl, - headers, - }); - const $ = cheerio.load(response.data); - list = $('.card') - .map((_, item) => { - $(item).find('.access-text').remove(); - const title = $(item).find('.hlFld-Title').text(); - const authors = $(item).find('.entryAuthor.all').text(); - const img = $(item).find('img').attr('src'); - const link = $(item).find('.ref.nowrap').attr('href'); - const doi = link.replace('/doi/full/', ''); - return { - title, - link, - doi, - authors, - img, - }; - }) - .get(); - - const renderDesc = (item) => - art(path.join(__dirname, 'templates/description.art'), { - item, - }); - await Promise.all( - list.map((item) => - ctx.cache.tryGet(item.link, async () => { - const itemResponse = await got({ - method: 'post', - url: host.concat('/action/PB2showAjaxAbstract'), - headers, - body: 'doi=' + item.doi, - }); - const content = cheerio.load(itemResponse.data); - item.abstract = content('span').text(); - item.description = renderDesc(item); - return item; - }) - ) - ); - } - - ctx.state.data = { - title: 'JASA - '.concat(id), - link: hostUrl, - item: list, - allowEmpty: true, - }; -}; diff --git a/lib/v2/jasa/templates/description.art b/lib/v2/jasa/templates/description.art deleted file mode 100644 index 466129fcee..0000000000 --- a/lib/v2/jasa/templates/description.art +++ /dev/null @@ -1,11 +0,0 @@ -

- {{ item.title }}
-

-

- {{ item.authors }}
- https://doi.org/{{ item.doi }}
- -

-

- {{ item.abstract }}
-

\ No newline at end of file