Skip to content

Commit

Permalink
feat(route): add fish shell release notes (DIYgod#12139)
Browse files Browse the repository at this point in the history
* feat(route): add fish shell release notes

* fix(route): fish shell release notes

* fix(route): fish shell release notes
---------
  • Loading branch information
x2cf authored Mar 20, 2023
1 parent 3d6d8eb commit c22b0c1
Show file tree
Hide file tree
Showing 6 changed files with 58 additions and 0 deletions.
6 changes: 6 additions & 0 deletions docs/en/program-update.md
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,12 @@ Language

<RouteEn author="DIYgod" example="/firefox/addons/rsshub-radar" path="/firefox/addons/:id" :paramsDesc="['Add-ons id, can be found in add-ons url']"/>

## fish shell

### Release Notes

<RouteEn author="x2cf" example="/fishshell" path="/fishshell" radar="1" />

## FossHub

### Software Update
Expand Down
6 changes: 6 additions & 0 deletions docs/program-update.md
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,12 @@ pageClass: routes

<Route author="DIYgod" example="/firefox/addons/rsshub-radar" path="/firefox/addons/:id" :paramsDesc="['附加组件 id, 可在应用页 URL 中找到']" />

## fish shell

### Release Notes

<Route author="x2cf" example="/fishshell" path="/fishshell" radar="1" />

## FossHub

### Software Update
Expand Down
27 changes: 27 additions & 0 deletions lib/v2/fishshell/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
const cheerio = require('cheerio');
const got = require('@/utils/got');
const config = require('@/config').value;
const { parseDate } = require('@/utils/parse-date');

module.exports = async (ctx) => {
const link = 'https://fishshell.com/docs/current/relnotes.html';
const data = await ctx.cache.tryGet(link, async () => (await got(link)).data, config.cache.contentExpire, false);
const $ = cheerio.load(data);
ctx.state.data = {
link,
title: 'Release notes — fish-shell',
language: 'en',
item: $('#release-notes > section')
.map((_, item) => {
const title = $(item).find('h2').contents().first().text();
const date = title.match(/\(released (.+?)\)/)?.[1];
return {
title,
link: new URL($(item).find('a').attr('href'), link).href,
pubDate: date ? parseDate(date, 'MMMM D, YYYY') : undefined,
description: $(item).html(),
};
})
.get(),
};
};
3 changes: 3 additions & 0 deletions lib/v2/fishshell/maintainer.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
'/': ['x2cf'],
};
13 changes: 13 additions & 0 deletions lib/v2/fishshell/radar.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
module.exports = {
'fishshell.com': {
_name: 'fish shell',
'.': [
{
title: 'Release Notes',
docs: 'https://docs.rsshub.app/program-update.html#fish-shell',
source: ['/'],
target: '/fishshell',
},
],
},
};
3 changes: 3 additions & 0 deletions lib/v2/fishshell/router.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = function (router) {
router.get('/', require('./index'));
};

0 comments on commit c22b0c1

Please sign in to comment.