Skip to content

Commit

Permalink
feat(route): hinatazaka46 blog support id params (DIYgod#12700)
Browse files Browse the repository at this point in the history
* fix(route): page field change fixes

* feat: add route info

* feat: migrate to route v2

* feat: support id param

* fix(route): news page field change fixes
  • Loading branch information
AkashiGakki authored Jun 23, 2023
1 parent ab24f40 commit cdd1170
Show file tree
Hide file tree
Showing 6 changed files with 198 additions and 75 deletions.
100 changes: 75 additions & 25 deletions docs/en/new-media.md
Original file line number Diff line number Diff line change
Expand Up @@ -692,30 +692,42 @@ Compared to the official one, this feed:

<RouteEn author="victor21813 nczitzk akashigakki" example="/sakurazaka46/blog" path="/sakurazaka46/blog/:id?/:page?" :paramsDesc="['Member ID, see below, `all` by default', 'Page, `0` by default']">

| Member ID | Name |
| --------- | ----------- |
| 03 | 上村 莉菜 |
| 04 | 尾関 梨香 |
| 06 | 小池 美波 |
| 07 | 小林 由依 |
| 08 | 齋藤 冬優花 |
| 11 | 菅井 友香 |
| 14 | 土生 瑞穂 |
| 15 | 原田 葵 |
| 43 | 井上 梨名 |
| 53 | 遠藤 光莉 |
| 54 | 大園 玲 |
| 55 | 大沼 晶保 |
| 56 | 幸阪 茉里乃 |
| 44 | 関 有美子 |
| 45 | 武元 唯衣 |
| 46 | 田村 保乃 |
| 47 | 藤吉 夏鈴 |
| 57 | 増本 綺良 |
| 48 | 松田 里奈 |
| 50 | 森田 ひかる |
| 58 | 守屋 麗奈 |
| 51 | 山﨑 天 |
| Member ID | Name |
| --------- | ------------ |
| 2000 | 三期生リレー |
| 69 | 山下 瞳月 |
| 68 | 村山 美羽 |
| 67 | 村井 優 |
| 66 | 向井 純葉 |
| 65 | 的野 美青 |
| 64 | 中嶋 優月 |
| 63 | 谷口 愛季 |
| 62 | 小島 凪紗 |
| 61 | 小田倉 麗奈 |
| 60 | 遠藤 理子 |
| 59 | 石森 璃花 |
| 58 | 守屋 麗奈 |
| 57 | 増本 綺良 |
| 56 | 幸阪 茉里乃 |
| 55 | 大沼 晶保 |
| 54 | 大園 玲 |
| 53 | 遠藤 光莉 |
| 51 | 山﨑 天 |
| 50 | 森田 ひかる |
| 48 | 松田 里奈 |
| 47 | 藤吉 夏鈴 |
| 46 | 田村 保乃 |
| 45 | 武元 唯衣 |
| 44 | 関 有美子 |
| 43 | 井上 梨名 |
| 15 | 原田 葵 |
| 14 | 土生 瑞穂 |
| 11 | 菅井 友香 |
| 08 | 齋藤 冬優花 |
| 07 | 小林 由依 |
| 06 | 小池 美波 |
| 04 | 尾関 梨香 |
| 03 | 上村 莉菜 |

</RouteEn>

Expand All @@ -725,7 +737,45 @@ Compared to the official one, this feed:

### Hinatazaka46 Blog

<RouteEn author="nwindz" example="/hinatazaka46/blog" path="/hinatazaka46/blog" />
<RouteEn author="nwindz" example="/hinatazaka46/blog" path="/hinatazaka46/blog/:id?" :paramsDesc="['Member ID, see below, `all` by default']">

| Member ID | Name |
| --------- | ------------ |
| 2000 | 四期生リレー |
| 36 | 渡辺 莉奈 |
| 35 | 山下 葉留花 |
| 34 | 宮地 すみれ |
| 33 | 藤嶌 果歩 |
| 32 | 平岡 海月 |
| 31 | 平尾 帆夏 |
| 30 | 竹内 希来里 |
| 29 | 正源司 陽子 |
| 28 | 清水 理央 |
| 27 | 小西 夏菜実 |
| 26 | 岸 帆夏 |
| 25 | 石塚 瑶季 |
| 24 | 山口 陽世 |
| 23 | 森本 茉莉 |
| 22 | 髙橋 未来虹 |
| 21 | 上村 ひなの |
| 18 | 松田 好花 |
| 17 | 濱岸 ひより |
| 16 | 丹生 明里 |
| 15 | 富田 鈴花 |
| 14 | 小坂 菜緒 |
| 13 | 河田 陽菜 |
| 12 | 金村 美玖 |
| 11 | 東村 芽依 |
| 10 | 高本 彩花 |
| 9 | 高瀬 愛奈 |
| 8 | 佐々木 美玲 |
| 7 | 佐々木 久美 |
| 6 | 齊藤 京子 |
| 5 | 加藤 史帆 |
| 4 | 影山 優佳 |
| 2 | 潮 紗理菜 |

</RouteEn>

## Samsung

Expand Down
104 changes: 79 additions & 25 deletions docs/new-media.md
Original file line number Diff line number Diff line change
Expand Up @@ -1794,30 +1794,44 @@ Supported sub-sites:

<Route author="victor21813 nczitzk akashigakki" example="/sakurazaka46/blog" path="/sakurazaka46/blog/:id?/:page?" :paramsDesc="['成员编号,见下表,默认为`all` (全部)', '订阅页码,默认为`0` (第一页)']">

| 编号 | 姓名 |
| ---- | ----------- |
| 03 | 上村 莉菜 |
| 04 | 尾関 梨香 |
| 06 | 小池 美波 |
| 07 | 小林 由依 |
| 08 | 齋藤 冬優花 |
| 11 | 菅井 友香 |
| 14 | 土生 瑞穂 |
| 15 | 原田 葵 |
| 43 | 井上 梨名 |
| 53 | 遠藤 光莉 |
| 54 | 大園 玲 |
| 55 | 大沼 晶保 |
| 56 | 幸阪 茉里乃 |
| 44 | 関 有美子 |
| 45 | 武元 唯衣 |
| 46 | 田村 保乃 |
| 47 | 藤吉 夏鈴 |
| 57 | 増本 綺良 |
| 48 | 松田 里奈 |
| 50 | 森田 ひかる |
| 58 | 守屋 麗奈 |
| 51 | 山﨑 天 |
| 编号 | 姓名 |
| ---- | ------------ |
| 2000 | 三期生リレー |
| 69 | 山下 瞳月 |
| 68 | 村山 美羽 |
| 67 | 村井 優 |
| 66 | 向井 純葉 |
| 65 | 的野 美青 |
| 64 | 中嶋 優月 |
| 63 | 谷口 愛季 |
| 62 | 小島 凪紗 |
| 61 | 小田倉 麗奈 |
| 60 | 遠藤 理子 |
| 59 | 石森 璃花 |
| 58 | 守屋 麗奈 |
| 57 | 増本 綺良 |
| 56 | 幸阪 茉里乃 |
| 55 | 大沼 晶保 |
| 54 | 大園 玲 |
| 53 | 遠藤 光莉 |
| 51 | 山﨑 天 |
| 50 | 森田 ひかる |
| 48 | 松田 里奈 |
| 47 | 藤吉 夏鈴 |
| 46 | 田村 保乃 |
| 45 | 武元 唯衣 |
| 44 | 関 有美子 |
| 43 | 井上 梨名 |
| 15 | 原田 葵 |
| 14 | 土生 瑞穂 |
| 11 | 菅井 友香 |
| 08 | 齋藤 冬優花 |
| 07 | 小林 由依 |
| 06 | 小池 美波 |
| 04 | 尾関 梨香 |
| 03 | 上村 莉菜 |

> 注:三期生个人博客暂未开通,统一博客编号为 `2000`
</Route>

Expand All @@ -1827,7 +1841,47 @@ Supported sub-sites:

### 日向坂 46 博客

<Route author="nwindz" example="/hinatazaka46/blog" path="/hinatazaka46/blog" />
<Route author="nwindz" example="/hinatazaka46/blog" path="/hinatazaka46/blog/:id?" :paramsDesc="['成员编号,见下表,默认为`all` (全部)']">

| 编号 | 姓名 |
| ---- | ------------ |
| 2000 | 四期生リレー |
| 36 | 渡辺 莉奈 |
| 35 | 山下 葉留花 |
| 34 | 宮地 すみれ |
| 33 | 藤嶌 果歩 |
| 32 | 平岡 海月 |
| 31 | 平尾 帆夏 |
| 30 | 竹内 希来里 |
| 29 | 正源司 陽子 |
| 28 | 清水 理央 |
| 27 | 小西 夏菜実 |
| 26 | 岸 帆夏 |
| 25 | 石塚 瑶季 |
| 24 | 山口 陽世 |
| 23 | 森本 茉莉 |
| 22 | 髙橋 未来虹 |
| 21 | 上村 ひなの |
| 18 | 松田 好花 |
| 17 | 濱岸 ひより |
| 16 | 丹生 明里 |
| 15 | 富田 鈴花 |
| 14 | 小坂 菜緒 |
| 13 | 河田 陽菜 |
| 12 | 金村 美玖 |
| 11 | 東村 芽依 |
| 10 | 高本 彩花 |
| 9 | 高瀬 愛奈 |
| 8 | 佐々木 美玲 |
| 7 | 佐々木 久美 |
| 6 | 齊藤 京子 |
| 5 | 加藤 史帆 |
| 4 | 影山 優佳 |
| 2 | 潮 紗理菜 |

> 注:四期生个人博客暂未开通,统一博客编号为 `2000`
</Route>

## 半月谈

Expand Down
4 changes: 3 additions & 1 deletion lib/v2/hinatazaka46/blog.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ const { parseDate } = require('@/utils/parse-date');
const rootUrl = 'https://www.hinatazaka46.com';

module.exports = async (ctx) => {
const currentUrl = `${rootUrl}/s/official/diary/member/list`;
const id = ctx.params.id ?? 'all';
const params = id === 'all' ? '' : `?ct=${id}`;
const currentUrl = `${rootUrl}/s/official/diary/member/list${params}`;

const response = await got({
method: 'get',
Expand Down
2 changes: 1 addition & 1 deletion lib/v2/hinatazaka46/maintainer.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module.exports = {
'/news': ['crispgm', 'akashigakki'],
'/blog': ['nwindz', 'akashigakki'],
'/blog/:id?': ['nwindz', 'akashigakki'],
};
61 changes: 39 additions & 22 deletions lib/v2/hinatazaka46/news.js
Original file line number Diff line number Diff line change
@@ -1,34 +1,51 @@
const got = require('@/utils/got');
const cheerio = require('cheerio');
const { parseDate } = require('@/utils/parse-date');

module.exports = async (ctx) => {
const rootUrl = 'https://www.hinatazaka46.com';
const currentUrl = `${rootUrl}/s/official/news/list`;

const response = await got({
method: 'get',
url: 'https://www.hinatazaka46.com/s/official/news/list',
headers: {
Referer: 'http://www.hinatazaka46.com/',
},
url: currentUrl,
});

const data = response.data;
const $ = cheerio.load(data);
const list = $('main div.l-maincontents--news ul.p-news__list li');
const $ = cheerio.load(response.data);

let items = $('.p-news__list .p-news__item a')
.slice(0, ctx.query.limit ? parseInt(ctx.query.limit) : 30)
.toArray()
.map((item) => {
item = $(item);

return {
title: item.find('.c-news__text').text(),
link: `${rootUrl}${item.attr('href').split('?')[0]}`,
pubDate: parseDate(item.find('.c-news__date').text()),
};
});

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

const content = cheerio.load(detailResponse.data);

item.description = content('.p-article__text').html();

return item;
})
)
);

ctx.state.data = {
allowEmpty: true,
title: '日向坂46官网 NEWS',
link: 'http://www.hinatazaka46.com/news/',
item:
list &&
list
.map((index, item) => {
item = $(item);
return {
title: item.find('a p.c-news__text').first().text(),
link: item.find('a').attr('href'),
pubDate: item.find('a time.c-news__date').first().text(),
};
})
.get(),
title: $('title').text(),
link: currentUrl,
item: items,
};
};
2 changes: 1 addition & 1 deletion lib/v2/hinatazaka46/router.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module.exports = function (router) {
router.get('/news', require('./news'));
router.get('/blog', require('./blog'));
router.get('/blog/:id?', require('./blog'));
};

0 comments on commit cdd1170

Please sign in to comment.