rsshub 1.0.0-master.f72af1b → 1.0.0-master.f7347d9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/lib/config.ts +18 -0
  2. package/lib/middleware/template.tsx +10 -2
  3. package/lib/routes/163/music/playlist.ts +2 -1
  4. package/lib/routes/5eplay/index.ts +1 -51
  5. package/lib/routes/a9vg/index.ts +214 -0
  6. package/lib/routes/a9vg/namespace.ts +1 -0
  7. package/lib/routes/a9vg/templates/description.art +17 -0
  8. package/lib/routes/aibase/discover.ts +388 -0
  9. package/lib/routes/aibase/namespace.ts +8 -0
  10. package/lib/routes/aibase/news.ts +118 -0
  11. package/lib/routes/aibase/templates/description.art +100 -0
  12. package/lib/routes/aibase/topic.ts +614 -0
  13. package/lib/routes/aibase/util.ts +114 -0
  14. package/lib/routes/apnews/api.ts +18 -3
  15. package/lib/routes/apnews/rss.ts +1 -1
  16. package/lib/routes/apnews/topics.ts +4 -3
  17. package/lib/routes/apple/podcast.ts +19 -15
  18. package/lib/routes/bangumi/templates/tv/subject.art +6 -0
  19. package/lib/routes/bangumi/tv/other/followrank.ts +19 -22
  20. package/lib/routes/bangumi/tv/user/collections.ts +172 -0
  21. package/lib/routes/bilibili/cache.ts +16 -8
  22. package/lib/routes/bilibili/utils.ts +85 -3
  23. package/lib/routes/bilibili/video.ts +7 -9
  24. package/lib/routes/bilibili/vsearch.ts +1 -1
  25. package/lib/routes/bjnews/cat.ts +9 -1
  26. package/lib/routes/cbpanet/index.ts +380 -0
  27. package/lib/routes/cbpanet/namespace.ts +8 -0
  28. package/lib/routes/ceph/blog.ts +72 -0
  29. package/lib/routes/ceph/namespace.ts +7 -0
  30. package/lib/routes/chinanews/index.ts +1 -1
  31. package/lib/routes/chinaventure/index.ts +1 -1
  32. package/lib/routes/cisia/index.ts +264 -0
  33. package/lib/routes/cisia/namespace.ts +8 -0
  34. package/lib/routes/cjlu/namespace.ts +10 -0
  35. package/lib/routes/cjlu/yjsy/index.ts +107 -0
  36. package/lib/routes/cnki/journals.ts +31 -2
  37. package/lib/routes/cohere/index.ts +54 -0
  38. package/lib/routes/cohere/namespace.ts +6 -0
  39. package/lib/routes/coolapk/dyh.ts +7 -1
  40. package/lib/routes/coolapk/hot.ts +7 -1
  41. package/lib/routes/coolapk/huati.ts +7 -1
  42. package/lib/routes/coolapk/namespace.ts +6 -0
  43. package/lib/routes/coolapk/toutiao.ts +7 -1
  44. package/lib/routes/coolapk/tuwen.ts +10 -5
  45. package/lib/routes/coolapk/user-dynamic.ts +7 -1
  46. package/lib/routes/damai/activity.ts +3 -2
  47. package/lib/routes/dcfever/trading.ts +3 -5
  48. package/lib/routes/dcfever/utils.ts +13 -4
  49. package/lib/routes/dealstreetasia/home.ts +72 -0
  50. package/lib/routes/dealstreetasia/namespace.ts +6 -0
  51. package/lib/routes/dealstreetasia/section.ts +57 -0
  52. package/lib/routes/dlsite/campaign.ts +1 -2
  53. package/lib/routes/dlsite/new.ts +1 -2
  54. package/lib/routes/dlsite/{index.ts → z-index/index.ts} +1 -1
  55. package/lib/routes/douban/other/topic.ts +10 -4
  56. package/lib/routes/douyin/types.ts +795 -0
  57. package/lib/routes/douyin/user.ts +51 -23
  58. package/lib/routes/douyin/utils.ts +1 -87
  59. package/lib/routes/dribbble/keyword.ts +1 -1
  60. package/lib/routes/dribbble/popular.ts +1 -1
  61. package/lib/routes/dribbble/user.ts +1 -1
  62. package/lib/routes/dribbble/utils.ts +16 -18
  63. package/lib/routes/famitsu/category.ts +1 -1
  64. package/lib/routes/fanbox/index.ts +1 -1
  65. package/lib/routes/fanbox/types.ts +1 -5
  66. package/lib/routes/fediverse/timeline.ts +21 -3
  67. package/lib/routes/follow/profile.ts +4 -2
  68. package/lib/routes/follow/types.ts +11 -1
  69. package/lib/routes/github/advisor.ts +97 -0
  70. package/lib/routes/github/discussions.ts +194 -0
  71. package/lib/routes/github/issue.ts +1 -1
  72. package/lib/routes/github/pulls.ts +1 -1
  73. package/lib/routes/gmcmonline/chinacustoms.ts +130 -0
  74. package/lib/routes/gmcmonline/namespace.ts +8 -0
  75. package/lib/routes/gov/csrc/csrc.ts +541 -0
  76. package/lib/routes/gov/customs/list.ts +5 -2
  77. package/lib/routes/gov/customs/namespace.ts +7 -0
  78. package/lib/routes/gov/jgjcndrc/index.ts +95 -66
  79. package/lib/routes/gov/moa/moa.ts +3 -3
  80. package/lib/routes/gov/moa/szcpxx.ts +115 -0
  81. package/lib/routes/gov/moa/zdscxx.ts +71 -21
  82. package/lib/routes/gov/ndrc/zfxxgk.ts +106 -0
  83. package/lib/routes/gov/pudong/zwgk.ts +65 -0
  84. package/lib/routes/gov/zj/search.ts +17 -12
  85. package/lib/routes/guancha/member.ts +1 -1
  86. package/lib/routes/hellogithub/index.ts +17 -67
  87. package/lib/routes/hellogithub/report.ts +1 -1
  88. package/lib/routes/hex-rays/index.ts +23 -29
  89. package/lib/routes/hfut/hf/notice.ts +43 -0
  90. package/lib/routes/hfut/hf/utils.ts +80 -0
  91. package/lib/routes/hfut/namespace.ts +6 -0
  92. package/lib/routes/hfut/xc/notice.ts +43 -0
  93. package/lib/routes/hfut/xc/utils.ts +73 -0
  94. package/lib/routes/hko/earthquake.ts +56 -0
  95. package/lib/routes/hko/namespace.ts +8 -0
  96. package/lib/routes/hko/weather.ts +56 -0
  97. package/lib/routes/huggingface/blog-zh.ts +1 -1
  98. package/lib/routes/hust/mse.ts +575 -0
  99. package/lib/routes/i-cable/namespace.ts +6 -0
  100. package/lib/routes/i-cable/news.ts +77 -0
  101. package/lib/routes/i-cable/templates/description.art +8 -0
  102. package/lib/routes/infoq/presentations.ts +203 -0
  103. package/lib/routes/infoq/templates/description.art +41 -0
  104. package/lib/routes/ipsw.dev/index.ts +64 -0
  105. package/lib/routes/ipsw.dev/namespace.ts +7 -0
  106. package/lib/routes/ipsw.dev/templates/description.art +20 -0
  107. package/lib/routes/ixigua/user-video.ts +18 -7
  108. package/lib/routes/javtiful/actress.ts +37 -0
  109. package/lib/routes/javtiful/channel.ts +37 -0
  110. package/lib/routes/javtiful/namespace.ts +6 -0
  111. package/lib/routes/javtiful/templates/description.art +7 -0
  112. package/lib/routes/javtiful/utils.ts +18 -0
  113. package/lib/routes/kisskiss/blog.ts +74 -0
  114. package/lib/routes/kisskiss/namespace.ts +6 -0
  115. package/lib/routes/ktown4u/artist-brandlist.ts +61 -0
  116. package/lib/routes/ktown4u/namespace.ts +6 -0
  117. package/lib/routes/lorientlejour/index.ts +186 -0
  118. package/lib/routes/lorientlejour/namespace.ts +7 -0
  119. package/lib/routes/lorientlejour/templates/description.art +18 -0
  120. package/lib/routes/lovelive-anime/namespace.ts +1 -1
  121. package/lib/routes/lovelive-anime/news.ts +56 -26
  122. package/lib/routes/lovelive-anime/schedules.ts +18 -6
  123. package/lib/routes/lovelive-anime/templates/description.art +1 -1
  124. package/lib/routes/lovelive-anime/templates/scheduleDesc.art +0 -1
  125. package/lib/routes/lovelive-anime/topics.ts +1 -1
  126. package/lib/routes/manhuagui/comic.ts +1 -1
  127. package/lib/routes/mi/crowdfunding.ts +43 -22
  128. package/lib/routes/mi/templates/crowdfunding.art +28 -0
  129. package/lib/routes/mi/types.ts +40 -0
  130. package/lib/routes/mi/utils.ts +80 -0
  131. package/lib/routes/misskey/utils.ts +1 -0
  132. package/lib/routes/misskon/namespace.ts +6 -0
  133. package/lib/routes/misskon/posts.ts +33 -0
  134. package/lib/routes/misskon/tag.ts +38 -0
  135. package/lib/routes/misskon/top.ts +67 -0
  136. package/lib/routes/misskon/utils.ts +41 -0
  137. package/lib/routes/natgeo/dailyphoto.ts +1 -1
  138. package/lib/routes/natgeo/dailyselection.ts +1 -1
  139. package/lib/routes/ncku/namespace.ts +1 -1
  140. package/lib/routes/ncku/phys.ts +95 -0
  141. package/lib/routes/news/namespace.ts +1 -1
  142. package/lib/routes/nikkei/cn/index.ts +12 -1
  143. package/lib/routes/nudt/yjszs.ts +33 -13
  144. package/lib/routes/nytimes/book.ts +11 -11
  145. package/lib/routes/nytimes/daily-briefing-chinese.ts +4 -4
  146. package/lib/routes/nytimes/namespace.ts +1 -1
  147. package/lib/routes/oncc/templates/article.art +1 -1
  148. package/lib/routes/papers/index.ts +7 -1
  149. package/lib/routes/parliament.uk/commonslibrary.ts +55 -0
  150. package/lib/routes/parliament.uk/lordslibrary.ts +55 -0
  151. package/lib/routes/parliament.uk/namespace.ts +6 -0
  152. package/lib/routes/picuki/profile.ts +50 -39
  153. package/lib/routes/pornhub/model.ts +3 -5
  154. package/lib/routes/pornhub/pornstar.ts +3 -5
  155. package/lib/routes/pornhub/users.ts +3 -5
  156. package/lib/routes/resonac/namespace.ts +6 -0
  157. package/lib/routes/resonac/products.ts +85 -0
  158. package/lib/routes/rsshub/transform/html.ts +114 -75
  159. package/lib/routes/rsshub/transform/json.ts +14 -8
  160. package/lib/routes/sciencenet/user.ts +3 -1
  161. package/lib/routes/scmp/utils.ts +2 -2
  162. package/lib/routes/skeb/following-creators.ts +52 -0
  163. package/lib/routes/skeb/following-works.ts +52 -0
  164. package/lib/routes/skeb/friend-works.ts +52 -0
  165. package/lib/routes/skeb/index.ts +131 -0
  166. package/lib/routes/skeb/namespace.ts +6 -0
  167. package/lib/routes/skeb/search.ts +77 -0
  168. package/lib/routes/skeb/templates/creator.art +8 -0
  169. package/lib/routes/skeb/templates/work.art +10 -0
  170. package/lib/routes/skeb/utils.ts +155 -0
  171. package/lib/routes/skeb/works.ts +88 -0
  172. package/lib/routes/skebetter/illust.ts +83 -0
  173. package/lib/routes/skebetter/index.ts +83 -0
  174. package/lib/routes/skebetter/manga.ts +65 -0
  175. package/lib/routes/skebetter/namespace.ts +6 -0
  176. package/lib/routes/skebetter/utils.ts +72 -0
  177. package/lib/routes/spankbang/namespace.ts +6 -0
  178. package/lib/routes/spankbang/new-videos.ts +90 -0
  179. package/lib/routes/spankbang/templates/video.art +7 -0
  180. package/lib/routes/straitstimes/index.ts +135 -0
  181. package/lib/routes/straitstimes/namespace.ts +7 -0
  182. package/lib/routes/straitstimes/templates/description.art +27 -0
  183. package/lib/routes/szftedu/dongtai.ts +62 -0
  184. package/lib/routes/szftedu/gonggao.ts +62 -0
  185. package/lib/routes/szftedu/namespace.ts +6 -0
  186. package/lib/routes/the/index.ts +1 -1
  187. package/lib/routes/tkww/index.ts +83 -0
  188. package/lib/routes/tkww/namespace.ts +6 -0
  189. package/lib/routes/ttv/index.ts +1 -1
  190. package/lib/routes/tvb/news.ts +2 -1
  191. package/lib/routes/twitter/api/mobile-api/login.ts +5 -0
  192. package/lib/routes/twitter/api/web-api/api.ts +16 -10
  193. package/lib/routes/twitter/api/web-api/constants.ts +1 -1
  194. package/lib/routes/twitter/api/web-api/utils.ts +94 -56
  195. package/lib/routes/twitter/list.ts +4 -12
  196. package/lib/routes/twitter/media.ts +13 -4
  197. package/lib/routes/twitter/user.ts +15 -6
  198. package/lib/routes/udn/breaking-news.ts +2 -2
  199. package/lib/routes/uestc/gr.ts +65 -37
  200. package/lib/routes/uestc/jwc.ts +49 -28
  201. package/lib/routes/wechat/ershcimi.ts +4 -2
  202. package/lib/routes/weibo/user.ts +10 -2
  203. package/lib/routes/xaut/index.ts +13 -20
  204. package/lib/routes/xaut/namespace.ts +1 -1
  205. package/lib/routes/xbookcn/blog.ts +66 -0
  206. package/lib/routes/xbookcn/namespace.ts +6 -0
  207. package/lib/routes/xiaoyuzhou/podcast.ts +35 -7
  208. package/lib/routes/xueqiu/cookies.ts +5 -3
  209. package/lib/routes/xueqiu/stock-info.ts +6 -12
  210. package/lib/routes/yande/namespace.ts +1 -1
  211. package/lib/routes/yande/post.ts +6 -6
  212. package/lib/routes/zaobao/util.ts +41 -43
  213. package/lib/routes/zhihu/activities.ts +2 -1
  214. package/lib/routes/zhihu/timeline.ts +6 -1
  215. package/lib/routes/zhihu/utils.ts +1 -1
  216. package/lib/routes/zjut/cs/index.ts +105 -0
  217. package/lib/routes/zjut/jwc/index.ts +117 -0
  218. package/lib/utils/cache/redis.ts +1 -1
  219. package/package.json +35 -36
  220. package/lib/routes/a9vg/a9vg.ts +0 -45
  221. package/lib/routes/gov/ndrc/zfxxgk/articles.ts +0 -73
  222. package/lib/routes-deprecated/hko/weather.js +0 -44
@@ -0,0 +1,575 @@
1
+ import { Route } from '@/types';
2
+
3
+ import cache from '@/utils/cache';
4
+ import got from '@/utils/got';
5
+ import { load } from 'cheerio';
6
+ import { parseDate } from '@/utils/parse-date';
7
+
8
+ export const handler = async (ctx) => {
9
+ const { category = 'sylm/xyxw' } = ctx.req.param();
10
+ const limit = ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit'), 10) : 11;
11
+
12
+ const domain = 'mse.hust.edu.cn';
13
+ const rootUrl = `https://${domain}`;
14
+ const currentUrl = new URL(`${category}.htm`, rootUrl).href;
15
+
16
+ const { data: response } = await got(currentUrl);
17
+
18
+ const $ = load(response);
19
+
20
+ const language = $('html').prop('lang');
21
+
22
+ let items = $('div.list ul li')
23
+ .slice(0, limit)
24
+ .toArray()
25
+ .map((item) => {
26
+ item = $(item);
27
+
28
+ const a = item.find('a');
29
+
30
+ return {
31
+ title: a.text(),
32
+ pubDate: parseDate(item.find('span.time').text()),
33
+ link: new URL(a.prop('href'), currentUrl).href,
34
+ language,
35
+ };
36
+ });
37
+
38
+ items = await Promise.all(
39
+ items.map((item) =>
40
+ cache.tryGet(item.link, async () => {
41
+ if (!item.link.includes(domain)) {
42
+ return item;
43
+ }
44
+
45
+ const { data: detailResponse } = await got(item.link);
46
+
47
+ const $$ = load(detailResponse);
48
+
49
+ const title = $$('h1.article_title').text() || $$('div.article_title').text() || item.title;
50
+ const description = $$('div.v_news_content').html();
51
+
52
+ for (const d of $$('div.article_data').contents().toArray()) {
53
+ const data = $$(d).text();
54
+
55
+ if (!item.pubDate && data.startsWith('发布')) {
56
+ const pubDate = data.split(/:/)?.pop();
57
+ item.pubDate = pubDate ? parseDate(pubDate) : item.pubDate;
58
+ } else if (!item.author && data.startsWith('作者')) {
59
+ item.author = data.split(/:/)?.pop() ?? undefined;
60
+ } else if (!item.author && data.startsWith('编辑')) {
61
+ item.author = data.split(/:/)?.pop() ?? undefined;
62
+ }
63
+ }
64
+
65
+ item.title = title;
66
+ item.description = description;
67
+ item.content = {
68
+ html: description,
69
+ text: $$('div.v_news_content').text(),
70
+ };
71
+ item.language = language;
72
+
73
+ return item;
74
+ })
75
+ )
76
+ );
77
+
78
+ const title = $('meta[name="keywords"]').prop('content')?.replace(/,/g, ' - ') ?? $('title').text();
79
+ const image = new URL($('div.logo img').prop('src'), rootUrl).href;
80
+
81
+ return {
82
+ title,
83
+ description: title.split(/-/).pop()?.trim(),
84
+ link: currentUrl,
85
+ item: items,
86
+ allowEmpty: true,
87
+ image,
88
+ author: title.split(/-/)[0]?.trim(),
89
+ language,
90
+ };
91
+ };
92
+
93
+ export const route: Route = {
94
+ path: '/mse/:category{.+}?',
95
+ name: '机械科学与工程学院',
96
+ url: 'mse.hust.edu.cn',
97
+ maintainers: ['nczitzk'],
98
+ handler,
99
+ example: '/hust/mse/sylm/xyxw',
100
+ parameters: { category: '分类,默认为 `sylm/xyxw`,即学院新闻,可在对应分类页 URL 中找到' },
101
+ description: `:::tip
102
+ 若订阅 [通知公告](https://mse.hust.edu.cn/sylm/tzgg.htm),网址为 \`https://mse.hust.edu.cn/sylm/tzgg.htm\`。截取 \`https://mse.hust.edu.cn/\` 到末尾 \`.html\` 的部分 \`sylm/tzgg\` 作为参数填入,此时路由为 [\`/hust/mse/sylm/tzgg\`](https://rsshub.app/hust/mse/sylm/tzgg)。
103
+ :::
104
+
105
+ #### [首页栏目](https://mse.hust.edu.cn/xyxw.htm)
106
+
107
+ | [学院新闻](https://mse.hust.edu.cn/xyxw.htm) | [通知公告](https://mse.hust.edu.cn/tzgg.htm) | [招生招聘](https://mse.hust.edu.cn/zszp.htm) | [媒体聚焦](https://mse.hust.edu.cn/mtjj.htm) |
108
+ | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- |
109
+ | [xyxw](https://rsshub.app/hust/mse/xyxw) | [tzgg](https://rsshub.app/hust/mse/tzgg) | [zszp](https://rsshub.app/hust/mse/zszp) | [mtjj](https://rsshub.app/hust/mse/mtjj) |
110
+
111
+ | [期刊动态](https://mse.hust.edu.cn/qkdt.htm) | [学术活动](https://mse.hust.edu.cn/xshd.htm) | [师生天地](https://mse.hust.edu.cn/sstd.htm) | [STAR风采](https://mse.hust.edu.cn/STARfc.htm) |
112
+ | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | ---------------------------------------------- |
113
+ | [qkdt](https://rsshub.app/hust/mse/qkdt) | [xshd](https://rsshub.app/hust/mse/xshd) | [sstd](https://rsshub.app/hust/mse/sstd) | [STARfc](https://rsshub.app/hust/mse/STARfc) |
114
+
115
+ <details>
116
+ <summary>更多分类</summary>
117
+
118
+ #### [理论学习](https://mse.hust.edu.cn/llxx1.htm)
119
+
120
+ | [党务动态](https://mse.hust.edu.cn/llxx1/dwdt/djxw.htm) | [共青团](https://mse.hust.edu.cn/llxx1/gqt/xwdt.htm) | [工会组织](https://mse.hust.edu.cn/llxx1/ghzz/xwgg.htm) | [学习参考](https://mse.hust.edu.cn/llxx1/xxck.htm) | [资料汇编](https://mse.hust.edu.cn/llxx1/zlhb.htm) | [其他群团](https://mse.hust.edu.cn/llxx1/ghzz1/lmmc.htm) |
121
+ | -------------------------------------------------------------- | ------------------------------------------------------------ | -------------------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------------------- |
122
+ | [llxx1/dwdt/djxw](https://rsshub.app/hust/mse/llxx1/dwdt/djxw) | [llxx1/gqt/xwdt](https://rsshub.app/hust/mse/llxx1/gqt/xwdt) | [llxx1/ghzz/xwgg](https://rsshub.app/hust/mse/llxx1/ghzz/xwgg) | [llxx1/xxck](https://rsshub.app/hust/mse/llxx1/xxck) | [llxx1/zlhb](https://rsshub.app/hust/mse/llxx1/zlhb) | [llxx1/ghzz1/lmmc](https://rsshub.app/hust/mse/llxx1/ghzz1/lmmc) |
123
+
124
+ #### [师资队伍](https://mse.hust.edu.cn/szdw/jsml/jsml/qb.htm)
125
+
126
+ | [人才招聘](https://mse.hust.edu.cn/szdw/rczp.htm) | [常用下载](https://mse.hust.edu.cn/szdw/cyxz.htm) |
127
+ | -------------------------------------------------- | -------------------------------------------------- |
128
+ | [szdw/rczp](https://rsshub.app/hust/mse/szdw/rczp) | [szdw/cyxz](https://rsshub.app/hust/mse/szdw/cyxz) |
129
+
130
+ #### [人才培养](https://mse.hust.edu.cn/rcpy.htm)
131
+
132
+ | [本科生教育](https://mse.hust.edu.cn/rcpy/bksjy.htm) | [研究生教育](https://mse.hust.edu.cn/rcpy/yjsjy.htm) | [学生工作](https://mse.hust.edu.cn/rcpy/xsg_z.htm) | [机械创新基地](https://mse.hust.edu.cn/rcpy/jxcxjd.htm) | [常用下载](https://mse.hust.edu.cn/rcpy/cyxz.htm) |
133
+ | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ------------------------------------------------------- | -------------------------------------------------- |
134
+ | [rcpy/bksjy](https://rsshub.app/hust/mse/rcpy/bksjy) | [rcpy/yjsjy](https://rsshub.app/hust/mse/rcpy/yjsjy) | [rcpy/xsg_z](https://rsshub.app/hust/mse/rcpy/xsg_z) | [rcpy/jxcxjd](https://rsshub.app/hust/mse/rcpy/jxcxjd) | [rcpy/cyxz](https://rsshub.app/hust/mse/rcpy/cyxz) |
135
+
136
+ #### [科学研究](https://mse.hust.edu.cn/kxyj.htm)
137
+
138
+ | [科研动态](https://mse.hust.edu.cn/kxyj/kydt.htm) | [安全管理](https://mse.hust.edu.cn/kxyj/aqgl.htm) | [设备开放](https://mse.hust.edu.cn/kxyj/sbkf.htm) | [科研成果](https://mse.hust.edu.cn/kxyj/kycg.htm) | [常用下载](https://mse.hust.edu.cn/kxyj/cyxz.htm) |
139
+ | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- |
140
+ | [kxyj/kydt](https://rsshub.app/hust/mse/kxyj/kydt) | [kxyj/aqgl](https://rsshub.app/hust/mse/kxyj/aqgl) | [kxyj/sbkf](https://rsshub.app/hust/mse/kxyj/sbkf) | [kxyj/kycg](https://rsshub.app/hust/mse/kxyj/kycg) | [kxyj/cyxz](https://rsshub.app/hust/mse/kxyj/cyxz) |
141
+
142
+ #### [社会服务](https://mse.hust.edu.cn/shfw.htm)
143
+
144
+ | [驻外研究院](https://mse.hust.edu.cn/shfw/zwyjy.htm) | [产业公司](https://mse.hust.edu.cn/shfw/cygs.htm) |
145
+ | ---------------------------------------------------- | -------------------------------------------------- |
146
+ | [shfw/zwyjy](https://rsshub.app/hust/mse/shfw/zwyjy) | [shfw/cygs](https://rsshub.app/hust/mse/shfw/cygs) |
147
+
148
+ #### [合作交流](https://mse.hust.edu.cn/hzjl.htm)
149
+
150
+ | [专家来访](https://mse.hust.edu.cn/hzjl/zjlf.htm) | [师生出访](https://mse.hust.edu.cn/hzjl/sscf.htm) | [项目合作](https://mse.hust.edu.cn/hzjl/xmhz.htm) | [国际会议](https://mse.hust.edu.cn/hzjl/gjhy.htm) | [常用下载](https://mse.hust.edu.cn/hzjl/cyxz.htm) |
151
+ | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- |
152
+ | [hzjl/zjlf](https://rsshub.app/hust/mse/hzjl/zjlf) | [hzjl/sscf](https://rsshub.app/hust/mse/hzjl/sscf) | [hzjl/xmhz](https://rsshub.app/hust/mse/hzjl/xmhz) | [hzjl/gjhy](https://rsshub.app/hust/mse/hzjl/gjhy) | [hzjl/cyxz](https://rsshub.app/hust/mse/hzjl/cyxz) |
153
+
154
+ #### [校友专栏](https://mse.hust.edu.cn/xyzl.htm)
155
+
156
+ | [校友动态](https://mse.hust.edu.cn/xyzl/xydt.htm) | [杰出校友](https://mse.hust.edu.cn/xyzl/jcxy.htm) | [校友名录](https://mse.hust.edu.cn/xyzl/xyml.htm) | [校友照片](https://mse.hust.edu.cn/xyzl/xyzp.htm) | [服务校友](https://mse.hust.edu.cn/xyzl/fwxy.htm) | [常用下载](https://mse.hust.edu.cn/xyzl/cyxz.htm) |
157
+ | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- |
158
+ | [xyzl/xydt](https://rsshub.app/hust/mse/xyzl/xydt) | [xyzl/jcxy](https://rsshub.app/hust/mse/xyzl/jcxy) | [xyzl/xyml](https://rsshub.app/hust/mse/xyzl/xyml) | [xyzl/xyzp](https://rsshub.app/hust/mse/xyzl/xyzp) | [xyzl/fwxy](https://rsshub.app/hust/mse/xyzl/fwxy) | [xyzl/cyxz](https://rsshub.app/hust/mse/xyzl/cyxz) |
159
+
160
+ #### [理论学习](https://mse.hust.edu.cn/sylm/xyxw.htm#)
161
+
162
+ | [党务动态](https://mse.hust.edu.cn/llxx1/dwdt/djxw.htm) | [共青团](https://mse.hust.edu.cn/llxx1/gqt/xwdt.htm) | [工会组织](https://mse.hust.edu.cn/llxx1/ghzz/xwgg.htm) | [学习参考](https://mse.hust.edu.cn/llxx1/xxck.htm) | [资料汇编](https://mse.hust.edu.cn/llxx1/zlhb.htm) | [其他群团](https://mse.hust.edu.cn/llxx1/ghzz1/lmmc.htm) |
163
+ | -------------------------------------------------------------- | ------------------------------------------------------------ | -------------------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------------------- |
164
+ | [llxx1/dwdt/djxw](https://rsshub.app/hust/mse/llxx1/dwdt/djxw) | [llxx1/gqt/xwdt](https://rsshub.app/hust/mse/llxx1/gqt/xwdt) | [llxx1/ghzz/xwgg](https://rsshub.app/hust/mse/llxx1/ghzz/xwgg) | [llxx1/xxck](https://rsshub.app/hust/mse/llxx1/xxck) | [llxx1/zlhb](https://rsshub.app/hust/mse/llxx1/zlhb) | [llxx1/ghzz1/lmmc](https://rsshub.app/hust/mse/llxx1/ghzz1/lmmc) |
165
+
166
+ #### [师资队伍](https://mse.hust.edu.cn/sylm/xyxw.htm#)
167
+
168
+ | [人才招聘](https://mse.hust.edu.cn/szdw/rczp.htm) | [常用下载](https://mse.hust.edu.cn/szdw/cyxz.htm) |
169
+ | -------------------------------------------------- | -------------------------------------------------- |
170
+ | [szdw/rczp](https://rsshub.app/hust/mse/szdw/rczp) | [szdw/cyxz](https://rsshub.app/hust/mse/szdw/cyxz) |
171
+
172
+ #### [人才培养](https://mse.hust.edu.cn/sylm/xyxw.htm#)
173
+
174
+ | [本科生教育](https://mse.hust.edu.cn/rcpy/bksjy.htm) | [研究生教育](https://mse.hust.edu.cn/rcpy/yjsjy.htm) | [学生工作](https://mse.hust.edu.cn/rcpy/xsg_z.htm) | [机械创新基地](https://mse.hust.edu.cn/rcpy/jxcxjd.htm) | [常用下载](https://mse.hust.edu.cn/rcpy/cyxz.htm) |
175
+ | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ------------------------------------------------------- | -------------------------------------------------- |
176
+ | [rcpy/bksjy](https://rsshub.app/hust/mse/rcpy/bksjy) | [rcpy/yjsjy](https://rsshub.app/hust/mse/rcpy/yjsjy) | [rcpy/xsg_z](https://rsshub.app/hust/mse/rcpy/xsg_z) | [rcpy/jxcxjd](https://rsshub.app/hust/mse/rcpy/jxcxjd) | [rcpy/cyxz](https://rsshub.app/hust/mse/rcpy/cyxz) |
177
+
178
+ #### [科学研究](https://mse.hust.edu.cn/sylm/xyxw.htm#)
179
+
180
+ | [科研动态](https://mse.hust.edu.cn/kxyj/kydt.htm) | [安全管理](https://mse.hust.edu.cn/kxyj/aqgl.htm) | [设备开放](https://mse.hust.edu.cn/kxyj/sbkf.htm) | [科研成果](https://mse.hust.edu.cn/kxyj/kycg.htm) | [常用下载](https://mse.hust.edu.cn/kxyj/cyxz.htm) |
181
+ | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- |
182
+ | [kxyj/kydt](https://rsshub.app/hust/mse/kxyj/kydt) | [kxyj/aqgl](https://rsshub.app/hust/mse/kxyj/aqgl) | [kxyj/sbkf](https://rsshub.app/hust/mse/kxyj/sbkf) | [kxyj/kycg](https://rsshub.app/hust/mse/kxyj/kycg) | [kxyj/cyxz](https://rsshub.app/hust/mse/kxyj/cyxz) |
183
+
184
+ #### [社会服务](https://mse.hust.edu.cn/sylm/xyxw.htm#)
185
+
186
+ | [驻外研究院](https://mse.hust.edu.cn/shfw/zwyjy.htm) | [产业公司](https://mse.hust.edu.cn/shfw/cygs.htm) |
187
+ | ---------------------------------------------------- | -------------------------------------------------- |
188
+ | [shfw/zwyjy](https://rsshub.app/hust/mse/shfw/zwyjy) | [shfw/cygs](https://rsshub.app/hust/mse/shfw/cygs) |
189
+
190
+ #### [合作交流](https://mse.hust.edu.cn/sylm/xyxw.htm#)
191
+
192
+ | [专家来访](https://mse.hust.edu.cn/hzjl/zjlf.htm) | [师生出访](https://mse.hust.edu.cn/hzjl/sscf.htm) | [项目合作](https://mse.hust.edu.cn/hzjl/xmhz.htm) | [国际会议](https://mse.hust.edu.cn/hzjl/gjhy.htm) | [常用下载](https://mse.hust.edu.cn/hzjl/cyxz.htm) |
193
+ | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- |
194
+ | [hzjl/zjlf](https://rsshub.app/hust/mse/hzjl/zjlf) | [hzjl/sscf](https://rsshub.app/hust/mse/hzjl/sscf) | [hzjl/xmhz](https://rsshub.app/hust/mse/hzjl/xmhz) | [hzjl/gjhy](https://rsshub.app/hust/mse/hzjl/gjhy) | [hzjl/cyxz](https://rsshub.app/hust/mse/hzjl/cyxz) |
195
+
196
+ #### [校友专栏](https://mse.hust.edu.cn/sylm/xyxw.htm#)
197
+
198
+ | [校友动态](https://mse.hust.edu.cn/xyzl/xydt.htm) | [杰出校友](https://mse.hust.edu.cn/xyzl/jcxy.htm) | [校友名录](https://mse.hust.edu.cn/xyzl/xyml.htm) | [校友照片](https://mse.hust.edu.cn/xyzl/xyzp.htm) | [服务校友](https://mse.hust.edu.cn/xyzl/fwxy.htm) | [常用下载](https://mse.hust.edu.cn/xyzl/cyxz.htm) |
199
+ | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- |
200
+ | [xyzl/xydt](https://rsshub.app/hust/mse/xyzl/xydt) | [xyzl/jcxy](https://rsshub.app/hust/mse/xyzl/jcxy) | [xyzl/xyml](https://rsshub.app/hust/mse/xyzl/xyml) | [xyzl/xyzp](https://rsshub.app/hust/mse/xyzl/xyzp) | [xyzl/fwxy](https://rsshub.app/hust/mse/xyzl/fwxy) | [xyzl/cyxz](https://rsshub.app/hust/mse/xyzl/cyxz) |
201
+
202
+ </details>
203
+ `,
204
+ categories: ['university'],
205
+
206
+ features: {
207
+ requireConfig: false,
208
+ requirePuppeteer: false,
209
+ antiCrawler: false,
210
+ supportRadar: true,
211
+ supportBT: false,
212
+ supportPodcast: false,
213
+ supportScihub: false,
214
+ },
215
+ radar: [
216
+ {
217
+ source: ['mse.hust.edu.cn/:category?'],
218
+ target: (params) => {
219
+ const category = params.category;
220
+
221
+ return `/hust/mse${category ? `/${category}` : ''}`;
222
+ },
223
+ },
224
+ {
225
+ title: '首页栏目 - 学院新闻',
226
+ source: ['mse.hust.edu.cn/xyxw.htm'],
227
+ target: '/mse/xyxw',
228
+ },
229
+ {
230
+ title: '首页栏目 - 通知公告',
231
+ source: ['mse.hust.edu.cn/tzgg.htm'],
232
+ target: '/mse/tzgg',
233
+ },
234
+ {
235
+ title: '首页栏目 - 招生招聘',
236
+ source: ['mse.hust.edu.cn/zszp.htm'],
237
+ target: '/mse/zszp',
238
+ },
239
+ {
240
+ title: '首页栏目 - 媒体聚焦',
241
+ source: ['mse.hust.edu.cn/mtjj.htm'],
242
+ target: '/mse/mtjj',
243
+ },
244
+ {
245
+ title: '首页栏目 - 期刊动态',
246
+ source: ['mse.hust.edu.cn/qkdt.htm'],
247
+ target: '/mse/qkdt',
248
+ },
249
+ {
250
+ title: '首页栏目 - 学术活动',
251
+ source: ['mse.hust.edu.cn/xshd.htm'],
252
+ target: '/mse/xshd',
253
+ },
254
+ {
255
+ title: '首页栏目 - 师生天地',
256
+ source: ['mse.hust.edu.cn/sstd.htm'],
257
+ target: '/mse/sstd',
258
+ },
259
+ {
260
+ title: '首页栏目 - STAR风采',
261
+ source: ['mse.hust.edu.cn/STARfc.htm'],
262
+ target: '/mse/STARfc',
263
+ },
264
+ {
265
+ title: '理论学习 - 党务动态',
266
+ source: ['mse.hust.edu.cn/llxx1/dwdt/djxw.htm'],
267
+ target: '/mse/llxx1/dwdt/djxw',
268
+ },
269
+ {
270
+ title: '理论学习 - 共青团',
271
+ source: ['mse.hust.edu.cn/llxx1/gqt/xwdt.htm'],
272
+ target: '/mse/llxx1/gqt/xwdt',
273
+ },
274
+ {
275
+ title: '理论学习 - 工会组织',
276
+ source: ['mse.hust.edu.cn/llxx1/ghzz/xwgg.htm'],
277
+ target: '/mse/llxx1/ghzz/xwgg',
278
+ },
279
+ {
280
+ title: '理论学习 - 学习参考',
281
+ source: ['mse.hust.edu.cn/llxx1/xxck.htm'],
282
+ target: '/mse/llxx1/xxck',
283
+ },
284
+ {
285
+ title: '理论学习 - 资料汇编',
286
+ source: ['mse.hust.edu.cn/llxx1/zlhb.htm'],
287
+ target: '/mse/llxx1/zlhb',
288
+ },
289
+ {
290
+ title: '理论学习 - 其他群团',
291
+ source: ['mse.hust.edu.cn/llxx1/ghzz1/lmmc.htm'],
292
+ target: '/mse/llxx1/ghzz1/lmmc',
293
+ },
294
+ {
295
+ title: '师资队伍 - 人才招聘',
296
+ source: ['mse.hust.edu.cn/szdw/rczp.htm'],
297
+ target: '/mse/szdw/rczp',
298
+ },
299
+ {
300
+ title: '师资队伍 - 常用下载',
301
+ source: ['mse.hust.edu.cn/szdw/cyxz.htm'],
302
+ target: '/mse/szdw/cyxz',
303
+ },
304
+ {
305
+ title: '人才培养 - 本科生教育',
306
+ source: ['mse.hust.edu.cn/rcpy/bksjy.htm'],
307
+ target: '/mse/rcpy/bksjy',
308
+ },
309
+ {
310
+ title: '人才培养 - 研究生教育',
311
+ source: ['mse.hust.edu.cn/rcpy/yjsjy.htm'],
312
+ target: '/mse/rcpy/yjsjy',
313
+ },
314
+ {
315
+ title: '人才培养 - 学生工作',
316
+ source: ['mse.hust.edu.cn/rcpy/xsg_z.htm'],
317
+ target: '/mse/rcpy/xsg_z',
318
+ },
319
+ {
320
+ title: '人才培养 - 机械创新基地',
321
+ source: ['mse.hust.edu.cn/rcpy/jxcxjd.htm'],
322
+ target: '/mse/rcpy/jxcxjd',
323
+ },
324
+ {
325
+ title: '人才培养 - 常用下载',
326
+ source: ['mse.hust.edu.cn/rcpy/cyxz.htm'],
327
+ target: '/mse/rcpy/cyxz',
328
+ },
329
+ {
330
+ title: '科学研究 - 科研动态',
331
+ source: ['mse.hust.edu.cn/kxyj/kydt.htm'],
332
+ target: '/mse/kxyj/kydt',
333
+ },
334
+ {
335
+ title: '科学研究 - 安全管理',
336
+ source: ['mse.hust.edu.cn/kxyj/aqgl.htm'],
337
+ target: '/mse/kxyj/aqgl',
338
+ },
339
+ {
340
+ title: '科学研究 - 设备开放',
341
+ source: ['mse.hust.edu.cn/kxyj/sbkf.htm'],
342
+ target: '/mse/kxyj/sbkf',
343
+ },
344
+ {
345
+ title: '科学研究 - 科研成果',
346
+ source: ['mse.hust.edu.cn/kxyj/kycg.htm'],
347
+ target: '/mse/kxyj/kycg',
348
+ },
349
+ {
350
+ title: '科学研究 - 常用下载',
351
+ source: ['mse.hust.edu.cn/kxyj/cyxz.htm'],
352
+ target: '/mse/kxyj/cyxz',
353
+ },
354
+ {
355
+ title: '社会服务 - 驻外研究院',
356
+ source: ['mse.hust.edu.cn/shfw/zwyjy.htm'],
357
+ target: '/mse/shfw/zwyjy',
358
+ },
359
+ {
360
+ title: '社会服务 - 产业公司',
361
+ source: ['mse.hust.edu.cn/shfw/cygs.htm'],
362
+ target: '/mse/shfw/cygs',
363
+ },
364
+ {
365
+ title: '合作交流 - 专家来访',
366
+ source: ['mse.hust.edu.cn/hzjl/zjlf.htm'],
367
+ target: '/mse/hzjl/zjlf',
368
+ },
369
+ {
370
+ title: '合作交流 - 师生出访',
371
+ source: ['mse.hust.edu.cn/hzjl/sscf.htm'],
372
+ target: '/mse/hzjl/sscf',
373
+ },
374
+ {
375
+ title: '合作交流 - 项目合作',
376
+ source: ['mse.hust.edu.cn/hzjl/xmhz.htm'],
377
+ target: '/mse/hzjl/xmhz',
378
+ },
379
+ {
380
+ title: '合作交流 - 国际会议',
381
+ source: ['mse.hust.edu.cn/hzjl/gjhy.htm'],
382
+ target: '/mse/hzjl/gjhy',
383
+ },
384
+ {
385
+ title: '合作交流 - 常用下载',
386
+ source: ['mse.hust.edu.cn/hzjl/cyxz.htm'],
387
+ target: '/mse/hzjl/cyxz',
388
+ },
389
+ {
390
+ title: '校友专栏 - 校友动态',
391
+ source: ['mse.hust.edu.cn/xyzl/xydt.htm'],
392
+ target: '/mse/xyzl/xydt',
393
+ },
394
+ {
395
+ title: '校友专栏 - 杰出校友',
396
+ source: ['mse.hust.edu.cn/xyzl/jcxy.htm'],
397
+ target: '/mse/xyzl/jcxy',
398
+ },
399
+ {
400
+ title: '校友专栏 - 校友名录',
401
+ source: ['mse.hust.edu.cn/xyzl/xyml.htm'],
402
+ target: '/mse/xyzl/xyml',
403
+ },
404
+ {
405
+ title: '校友专栏 - 校友照片',
406
+ source: ['mse.hust.edu.cn/xyzl/xyzp.htm'],
407
+ target: '/mse/xyzl/xyzp',
408
+ },
409
+ {
410
+ title: '校友专栏 - 服务校友',
411
+ source: ['mse.hust.edu.cn/xyzl/fwxy.htm'],
412
+ target: '/mse/xyzl/fwxy',
413
+ },
414
+ {
415
+ title: '校友专栏 - 常用下载',
416
+ source: ['mse.hust.edu.cn/xyzl/cyxz.htm'],
417
+ target: '/mse/xyzl/cyxz',
418
+ },
419
+ {
420
+ title: '理论学习 - 党务动态',
421
+ source: ['mse.hust.edu.cn/llxx1/dwdt/djxw.htm'],
422
+ target: '/mse/llxx1/dwdt/djxw',
423
+ },
424
+ {
425
+ title: '理论学习 - 共青团',
426
+ source: ['mse.hust.edu.cn/llxx1/gqt/xwdt.htm'],
427
+ target: '/mse/llxx1/gqt/xwdt',
428
+ },
429
+ {
430
+ title: '理论学习 - 工会组织',
431
+ source: ['mse.hust.edu.cn/llxx1/ghzz/xwgg.htm'],
432
+ target: '/mse/llxx1/ghzz/xwgg',
433
+ },
434
+ {
435
+ title: '理论学习 - 学习参考',
436
+ source: ['mse.hust.edu.cn/llxx1/xxck.htm'],
437
+ target: '/mse/llxx1/xxck',
438
+ },
439
+ {
440
+ title: '理论学习 - 资料汇编',
441
+ source: ['mse.hust.edu.cn/llxx1/zlhb.htm'],
442
+ target: '/mse/llxx1/zlhb',
443
+ },
444
+ {
445
+ title: '理论学习 - 其他群团',
446
+ source: ['mse.hust.edu.cn/llxx1/ghzz1/lmmc.htm'],
447
+ target: '/mse/llxx1/ghzz1/lmmc',
448
+ },
449
+ {
450
+ title: '师资队伍 - 人才招聘',
451
+ source: ['mse.hust.edu.cn/szdw/rczp.htm'],
452
+ target: '/mse/szdw/rczp',
453
+ },
454
+ {
455
+ title: '师资队伍 - 常用下载',
456
+ source: ['mse.hust.edu.cn/szdw/cyxz.htm'],
457
+ target: '/mse/szdw/cyxz',
458
+ },
459
+ {
460
+ title: '人才培养 - 本科生教育',
461
+ source: ['mse.hust.edu.cn/rcpy/bksjy.htm'],
462
+ target: '/mse/rcpy/bksjy',
463
+ },
464
+ {
465
+ title: '人才培养 - 研究生教育',
466
+ source: ['mse.hust.edu.cn/rcpy/yjsjy.htm'],
467
+ target: '/mse/rcpy/yjsjy',
468
+ },
469
+ {
470
+ title: '人才培养 - 学生工作',
471
+ source: ['mse.hust.edu.cn/rcpy/xsg_z.htm'],
472
+ target: '/mse/rcpy/xsg_z',
473
+ },
474
+ {
475
+ title: '人才培养 - 机械创新基地',
476
+ source: ['mse.hust.edu.cn/rcpy/jxcxjd.htm'],
477
+ target: '/mse/rcpy/jxcxjd',
478
+ },
479
+ {
480
+ title: '人才培养 - 常用下载',
481
+ source: ['mse.hust.edu.cn/rcpy/cyxz.htm'],
482
+ target: '/mse/rcpy/cyxz',
483
+ },
484
+ {
485
+ title: '科学研究 - 科研动态',
486
+ source: ['mse.hust.edu.cn/kxyj/kydt.htm'],
487
+ target: '/mse/kxyj/kydt',
488
+ },
489
+ {
490
+ title: '科学研究 - 安全管理',
491
+ source: ['mse.hust.edu.cn/kxyj/aqgl.htm'],
492
+ target: '/mse/kxyj/aqgl',
493
+ },
494
+ {
495
+ title: '科学研究 - 设备开放',
496
+ source: ['mse.hust.edu.cn/kxyj/sbkf.htm'],
497
+ target: '/mse/kxyj/sbkf',
498
+ },
499
+ {
500
+ title: '科学研究 - 科研成果',
501
+ source: ['mse.hust.edu.cn/kxyj/kycg.htm'],
502
+ target: '/mse/kxyj/kycg',
503
+ },
504
+ {
505
+ title: '科学研究 - 常用下载',
506
+ source: ['mse.hust.edu.cn/kxyj/cyxz.htm'],
507
+ target: '/mse/kxyj/cyxz',
508
+ },
509
+ {
510
+ title: '社会服务 - 驻外研究院',
511
+ source: ['mse.hust.edu.cn/shfw/zwyjy.htm'],
512
+ target: '/mse/shfw/zwyjy',
513
+ },
514
+ {
515
+ title: '社会服务 - 产业公司',
516
+ source: ['mse.hust.edu.cn/shfw/cygs.htm'],
517
+ target: '/mse/shfw/cygs',
518
+ },
519
+ {
520
+ title: '合作交流 - 专家来访',
521
+ source: ['mse.hust.edu.cn/hzjl/zjlf.htm'],
522
+ target: '/mse/hzjl/zjlf',
523
+ },
524
+ {
525
+ title: '合作交流 - 师生出访',
526
+ source: ['mse.hust.edu.cn/hzjl/sscf.htm'],
527
+ target: '/mse/hzjl/sscf',
528
+ },
529
+ {
530
+ title: '合作交流 - 项目合作',
531
+ source: ['mse.hust.edu.cn/hzjl/xmhz.htm'],
532
+ target: '/mse/hzjl/xmhz',
533
+ },
534
+ {
535
+ title: '合作交流 - 国际会议',
536
+ source: ['mse.hust.edu.cn/hzjl/gjhy.htm'],
537
+ target: '/mse/hzjl/gjhy',
538
+ },
539
+ {
540
+ title: '合作交流 - 常用下载',
541
+ source: ['mse.hust.edu.cn/hzjl/cyxz.htm'],
542
+ target: '/mse/hzjl/cyxz',
543
+ },
544
+ {
545
+ title: '校友专栏 - 校友动态',
546
+ source: ['mse.hust.edu.cn/xyzl/xydt.htm'],
547
+ target: '/mse/xyzl/xydt',
548
+ },
549
+ {
550
+ title: '校友专栏 - 杰出校友',
551
+ source: ['mse.hust.edu.cn/xyzl/jcxy.htm'],
552
+ target: '/mse/xyzl/jcxy',
553
+ },
554
+ {
555
+ title: '校友专栏 - 校友名录',
556
+ source: ['mse.hust.edu.cn/xyzl/xyml.htm'],
557
+ target: '/mse/xyzl/xyml',
558
+ },
559
+ {
560
+ title: '校友专栏 - 校友照片',
561
+ source: ['mse.hust.edu.cn/xyzl/xyzp.htm'],
562
+ target: '/mse/xyzl/xyzp',
563
+ },
564
+ {
565
+ title: '校友专栏 - 服务校友',
566
+ source: ['mse.hust.edu.cn/xyzl/fwxy.htm'],
567
+ target: '/mse/xyzl/fwxy',
568
+ },
569
+ {
570
+ title: '校友专栏 - 常用下载',
571
+ source: ['mse.hust.edu.cn/xyzl/cyxz.htm'],
572
+ target: '/mse/xyzl/cyxz',
573
+ },
574
+ ],
575
+ };
@@ -0,0 +1,6 @@
1
+ import type { Namespace } from '@/types';
2
+
3
+ export const namespace: Namespace = {
4
+ name: '有線新聞',
5
+ url: 'i-cable.com',
6
+ };
@@ -0,0 +1,77 @@
1
+ import { Route } from '@/types';
2
+ import cache from '@/utils/cache';
3
+ import got from '@/utils/got';
4
+ import { getCurrentPath } from '@/utils/helpers';
5
+ import path from 'node:path';
6
+ import { art } from '@/utils/render';
7
+ import { config } from '@/config';
8
+ import InvalidParameterError from '@/errors/types/invalid-parameter';
9
+
10
+ const __dirname = getCurrentPath(import.meta.url);
11
+
12
+ export const route: Route = {
13
+ path: '/news/:category?',
14
+ categories: ['traditional-media'],
15
+ example: '/i-cable/news',
16
+ parameters: { category: '分類,默認為新聞資訊' },
17
+ features: {
18
+ requireConfig: false,
19
+ requirePuppeteer: false,
20
+ antiCrawler: false,
21
+ supportBT: false,
22
+ supportPodcast: false,
23
+ supportScihub: false,
24
+ },
25
+ radar: [
26
+ {
27
+ source: ['www.i-cable.com'],
28
+ target: '/news',
29
+ },
30
+ {
31
+ source: ['www.i-cable.com/category/:category'],
32
+ target: '/news/:category',
33
+ },
34
+ ],
35
+ name: '新聞',
36
+ maintainers: ['quiniapiezoelectricity'],
37
+ handler,
38
+ url: 'www.i-cable.com/',
39
+ description: `
40
+ :::tip
41
+ 分類只可用分類名稱,如:新聞資訊/港聞
42
+ :::`,
43
+ };
44
+
45
+ async function handler(ctx) {
46
+ const category = ctx.req.param('category') ?? '新聞資訊';
47
+ const limit = ctx.req.query('limit') ?? 20;
48
+ const root = 'https://www.i-cable.com/wp-json/wp/v2';
49
+
50
+ const response = await cache.tryGet(`${root}/categories?slug=${category}`, async () => await got(`${root}/categories?slug=${category}`), config.cache.routeExpire, false);
51
+ if (response.data.length < 1) {
52
+ throw new InvalidParameterError(`Invalid Category: ${category}`);
53
+ }
54
+ const metadata = response.data[0];
55
+
56
+ const list = await got(`${root}/posts?_embed=1&categories=${metadata.id}&per_page=${limit}`);
57
+ const items = list.data.map((item) => {
58
+ const description = art(path.join(__dirname, 'templates/description.art'), {
59
+ media: item._embedded['wp:featuredmedia'] ?? [],
60
+ content: item.content.rendered,
61
+ });
62
+ return {
63
+ title: item.title.rendered,
64
+ link: item.link,
65
+ pubDate: item.date_gmt,
66
+ description,
67
+ category: item._embedded['wp:term'][0].map((term) => term.name) ?? [],
68
+ };
69
+ });
70
+
71
+ return {
72
+ title: `有線新聞 - ${metadata.name}`,
73
+ description: metadata.description,
74
+ link: metadata.link,
75
+ item: items,
76
+ };
77
+ }