fix: use two separate routes to simulate :param* in hono

It seems that hono does not support this route syntax. We can simulate
it via two separate routes.

See https://github.com/orgs/honojs/discussions/1536
This commit is contained in:
Yufan You
2024-03-04 01:42:13 +08:00
parent be0a3c2735
commit b00a0a74a0
34 changed files with 96 additions and 48 deletions
+6 -3
View File
@@ -208,7 +208,8 @@ router.get('/utdallas/isso', lazyloadRouteHandler('./routes/universities/utdalla
router.get('/nchu/jwc/:type?', lazyloadRouteHandler('./routes/universities/nchu/jwc'));
// 重庆大学
router.get('/cqu/jwc/:path*', lazyloadRouteHandler('./routes/universities/cqu/jwc/announcement'));
router.get('/cqu/jwc/', lazyloadRouteHandler('./routes/universities/cqu/jwc/announcement'));
router.get('/cqu/jwc/:path{.+}', lazyloadRouteHandler('./routes/universities/cqu/jwc/announcement'));
router.get('/cqu/news/jzyg', lazyloadRouteHandler('./routes/universities/cqu/news/jzyg'));
router.get('/cqu/news/tz', lazyloadRouteHandler('./routes/universities/cqu/news/tz'));
router.get('/cqu/youth/:category', lazyloadRouteHandler('./routes/universities/cqu/youth/info'));
@@ -827,7 +828,8 @@ router.get('/hanime/video', lazyloadRouteHandler('./routes/hanime/video'));
// Soul
router.get('/soul/:id', lazyloadRouteHandler('./routes/soul'));
router.get('/soul/posts/hot/:pid*', lazyloadRouteHandler('./routes/soul/hot'));
router.get('/soul/posts/hot/', lazyloadRouteHandler('./routes/soul/hot'));
router.get('/soul/posts/hot/:pid{.+}', lazyloadRouteHandler('./routes/soul/hot'));
// 单向空间
router.get('/owspace/read/:type?', lazyloadRouteHandler('./routes/owspace/read'));
@@ -858,7 +860,8 @@ router.get('/queshu/book/:bookid', lazyloadRouteHandler('./routes/queshu/book'))
router.get('/latexstudio/home', lazyloadRouteHandler('./routes/latexstudio/home'));
// 邮箱
// router.get('/mail/imap/:email/:folder*', lazyloadRouteHandler('./routes/mail/imap'));
// router.get('/mail/imap/:email/', lazyloadRouteHandler('./routes/mail/imap'));
// router.get('/mail/imap/:email/:folder{.+}', lazyloadRouteHandler('./routes/mail/imap'));
// 北华航天工业学院 - 新闻
router.get('/nciae/news', lazyloadRouteHandler('./routes/universities/nciae/news'));
+2 -1
View File
@@ -1,5 +1,6 @@
export default (router) => {
router.get('/', './latest');
router.get('/cat/:cat*', './cat');
router.get('/cat/', './cat');
router.get('/cat/:cat{.+}', './cat');
router.get('/tag/:tag', './tag');
};
+2 -1
View File
@@ -1,3 +1,4 @@
export default (router) => {
router.get('/:category*', './');
router.get('/', './');
router.get('/:category{.+}', './');
};
+2 -1
View File
@@ -1,3 +1,4 @@
export default (router) => {
router.get('/:category*', './');
router.get('/', './');
router.get('/:category{.+}', './');
};
+2 -1
View File
@@ -1,6 +1,7 @@
export default (router) => {
router.get('/bs/:category?', './bs');
router.get('/dwxgb/:category/:type', './dwxgb');
router.get('/fdy/:path*', './fdy');
router.get('/fdy/', './fdy');
router.get('/fdy/:path{.+}', './fdy');
router.get('/lib/:category?', './lib');
};
+2 -1
View File
@@ -1,4 +1,5 @@
export default (router) => {
router.get('/news/:type', './news/index');
router.get('/sme/:path*', './sme');
router.get('/sme/', './sme');
router.get('/sme/:path{.+}', './sme');
};
+2 -1
View File
@@ -1,3 +1,4 @@
export default (router) => {
router.get('/:id*', './');
router.get('/', './');
router.get('/:id{.+}', './');
};
+2 -1
View File
@@ -1,3 +1,4 @@
export default (router) => {
router.get('/:id*', './');
router.get('/', './');
router.get('/:id{.+}', './');
};
+2 -1
View File
@@ -1,3 +1,4 @@
export default (router) => {
router.get('/:cate*', './index');
router.get('/', './index');
router.get('/:cate{.+}', './index');
};
+2 -1
View File
@@ -9,5 +9,6 @@ export default (router) => {
router.get('/news/zzkx', toZzkx);
router.get('/zzkx', toZzkx);
router.get('/video/:category?', './video');
router.get('/:category*', './');
router.get('/', './');
router.get('/:category{.+}', './');
};
+2 -1
View File
@@ -1,3 +1,4 @@
export default (router) => {
router.get('/:filter*', './index');
router.get('/', './index');
router.get('/:filter{.+}', './index');
};
+24 -12
View File
@@ -3,14 +3,17 @@ export default (router) => {
router.get('/cac/*', './cac/index');
router.get('/caac/cjwt/:category?', './caac/cjwt');
router.get('/ccdi/*', './ccdi');
router.get('/chinamine-safety/zfxxgk/:category*', './chinamine-safety/zfxxgk');
router.get('/chinamine-safety/xw/:category*', './chinamine-safety/xw');
router.get('/chinamine-safety/zfxxgk/', './chinamine-safety/zfxxgk');
router.get('/chinamine-safety/zfxxgk/:category{.+}', './chinamine-safety/zfxxgk');
router.get('/chinamine-safety/xw/', './chinamine-safety/xw');
router.get('/chinamine-safety/xw/:category{.+}', './chinamine-safety/xw');
router.get('/chinatax/latest', './chinatax/latest');
router.get('/cmse/fxrw', './cmse/fxrw');
router.get('/cmse/*', './cmse');
router.get('/cnnic/*', './cnnic');
router.get('/csrc/auditstatus/:apply_id', './csrc/auditstatus');
router.get('/csrc/news/:suffix*', './csrc/news');
router.get('/csrc/news/', './csrc/news');
router.get('/csrc/news/:suffix{.+}', './csrc/news');
router.get('/customs/list/:gchannel?', './customs/list');
router.get('/fmprc/:category?', './mfa/wjdt');
router.get('/forestry/gjlckjdjt/:category?', './forestry/gjlckjdjt');
@@ -20,14 +23,17 @@ export default (router) => {
router.get('/mee/ywdt/:category?', './mee/ywdt');
router.get('/mem/gk/sgcc/:category?', './mem/sgcc');
router.get('/mfa/wjdt/:category?', './mfa/wjdt');
router.get('/mot/:category*', './mot');
router.get('/mot/', './mot');
router.get('/mot/:category{.+}', './mot');
router.get('/miit/wjfb/:ministry', './miit/wjfb');
router.get('/miit/yjzj', './miit/yjzj');
router.get('/miit/zcwj', './miit/zcwj');
router.get('/miit/wjgs', './miit/wjgs');
router.get('/miit/zcjd', './miit/zcjd');
router.get('/moa/sjzxfb/:category*', './moa/zdscxx');
router.get('/moa/zdscxx/:category*', './moa/zdscxx');
router.get('/moa/sjzxfb/', './moa/zdscxx');
router.get('/moa/sjzxfb/:category{.+}', './moa/zdscxx');
router.get('/moa/zdscxx/', './moa/zdscxx');
router.get('/moa/zdscxx/:category{.+}', './moa/zdscxx');
router.get('/moa/:suburl(.*)', './moa/moa');
router.get('/moe/:type', './moe/moe');
router.get('/moe/s78/:column', './moe/s78');
@@ -35,11 +41,14 @@ export default (router) => {
router.get('/mofcom/article/:suffix{.+}', './mofcom/article');
router.get('/moj/aac/news/:type?', './moj/aac/news');
router.get('/moj/lfyjzj', './moj/lfyjzj');
router.get('/ndrc/fggz/:category*', './ndrc/fggz');
router.get('/ndrc/xwdt/:category*', './ndrc/xwdt');
router.get('/ndrc/fggz/', './ndrc/fggz');
router.get('/ndrc/fggz/:category{.+}', './ndrc/fggz');
router.get('/ndrc/xwdt/', './ndrc/xwdt');
router.get('/ndrc/xwdt/:category{.+}', './ndrc/xwdt');
router.get('/nea/sjzz/ghs', './nea/ghs');
router.get('/news/:uid', './news');
router.get('/nifdc/:path*', './nifdc');
router.get('/nifdc/', './nifdc');
router.get('/nifdc/:path{.+}', './nifdc');
router.get('/nmpa/*', './nmpa/generic');
router.get('/nopss/*', './nopss');
router.get('/npc/:caty', './npc/index');
@@ -59,14 +68,16 @@ export default (router) => {
router.get('/zhengce/wenjian/:pcodeJiguan?', './zhengce/wenjian');
router.get('/zhengce/zhengceku/:department', './zhengce/zhengceku');
router.get('/zhengce/zuixin', './zhengce');
router.get('/zhengce/:category*', './zhengce');
router.get('/zhengce/', './zhengce');
router.get('/zhengce/:category{.+}', './zhengce');
// province
router.get('/anhui/kjt/*', './anhui/kjt');
router.get('/beijing/bjedu/gh/:urlPath?', './beijing/bjedu/gh');
router.get('/beijing/bphc/*', './beijing/bphc');
router.get('/beijing/jw/tzgg', './beijing/jw/tzgg');
router.get('/beijing/kw/:channel', './beijing/kw/index');
router.get('/chongqing/gzw/:category*', './chongqing/gzw');
router.get('/chongqing/gzw/', './chongqing/gzw');
router.get('/chongqing/gzw/:category{.+}', './chongqing/gzw');
router.get('/chongqing/rsks', './chongqing/rsks');
router.get('/chongqing/sydwgkzp', './chongqing/sydwgkzp');
router.get('/dianbai/*', './dianbai/dianbai');
@@ -95,7 +106,8 @@ export default (router) => {
router.get('/sichuan/deyang/govpublicinfo/:countyName/:infoType?', './sichuan/deyang/govpublicinfo');
router.get('/sichuan/deyang/mztoday/:infoType?', './sichuan/deyang/mztoday');
router.get('/suzhou/doc', './suzhou/doc');
router.get('/suzhou/fg/:category*', './suzhou/fg');
router.get('/suzhou/fg/', './suzhou/fg');
router.get('/suzhou/fg/:category{.+}', './suzhou/fg');
router.get('/suzhou/news/:uid', './suzhou/news');
router.get('/taiyuan/rsj/:caty/:page?', './taiyuan/rsj');
router.get('/wuhan/sy/whyw', './wuhan/whyw');
+2 -1
View File
@@ -1,3 +1,4 @@
export default (router) => {
router.get('/v/:category*', './program');
router.get('/v/', './program');
router.get('/v/:category{.+}', './program');
};
+2 -1
View File
@@ -1,4 +1,5 @@
export default (router) => {
router.get('/list/:id', './list');
router.get('/:category*', './lists');
router.get('/', './lists');
router.get('/:category{.+}', './lists');
};
+2 -1
View File
@@ -1,3 +1,4 @@
export default (router) => {
router.get('/:region?/:category*', './');
router.get('/:region?', './');
router.get('/:region/:category{.+}', './');
};
+2 -1
View File
@@ -1,4 +1,5 @@
export default (router) => {
router.get('/itnews/:channel', './itnews');
router.get('/:params*', './');
router.get('/', './');
router.get('/:params{.+}', './');
};
+2 -1
View File
@@ -1,5 +1,6 @@
export default (router) => {
router.get('/lc_report/:id?', './report');
router.get('/report/:id?', './report');
router.get('/:category*', './');
router.get('/', './');
router.get('/:category{.+}', './');
};
+2 -1
View File
@@ -1,3 +1,4 @@
export default (router) => {
router.get('/:id?/:category*', './');
router.get('/:id?', './');
router.get('/:id/:category{.+}', './');
};
+2 -1
View File
@@ -1,3 +1,4 @@
export default (router) => {
router.get('/imap/:email/:folder*', './imap');
router.get('/imap/:email/', './imap');
router.get('/imap/:email/:folder{.+}', './imap');
};
+2 -1
View File
@@ -2,5 +2,6 @@ export default (router) => {
router.get('/cid/:id?', './cid');
router.get('/rank/:range?', './rank');
router.get('/zhibo', './cid');
router.get('/:category*', './');
router.get('/', './');
router.get('/:category{.+}', './');
};
+2 -1
View File
@@ -1,3 +1,4 @@
export default (router) => {
router.get('/cmdp/image/:id*', './cmdp');
router.get('/cmdp/image/', './cmdp');
router.get('/cmdp/image/:id{.+}', './cmdp');
};
+2 -1
View File
@@ -1,3 +1,4 @@
export default (router) => {
router.get('/:category*', './');
router.get('/', './');
router.get('/:category{.+}', './');
};
+2 -1
View File
@@ -1,5 +1,6 @@
export default (router) => {
router.get('/liuyan/:id/:state?', './liuyan');
router.get('/xjpjh/:keyword?/:year?', './xjpjh');
router.get('/:site?/:category*', './');
router.get('/:site?', './');
router.get('/:site/:category{.+}', './');
};
+2 -1
View File
@@ -1,3 +1,4 @@
export default (router) => {
router.get('/:topicPath*', './index');
router.get('/', './index');
router.get('/:topicPath{.+}', './index');
};
+2 -1
View File
@@ -1,3 +1,4 @@
export default (router) => {
router.get('/news/:path*', './news');
router.get('/news/', './news');
router.get('/news/:path{.+}', './news');
};
+2 -1
View File
@@ -1,3 +1,4 @@
export default (router) => {
router.get('/:path*', './news');
router.get('/', './news');
router.get('/:path{.+}', './news');
};
+2 -1
View File
@@ -1,3 +1,4 @@
export default (router) => {
router.get('/std/realtime/:category*', './std/realtime');
router.get('/std/realtime/', './std/realtime');
router.get('/std/realtime/:category{.+}', './std/realtime');
};
+2 -1
View File
@@ -1,3 +1,4 @@
export default (router) => {
router.get('/blog/:category*', './blog');
router.get('/blog/', './blog');
router.get('/blog/:category{.+}', './blog');
};
+2 -1
View File
@@ -1,3 +1,4 @@
export default (router) => {
router.get('/:params*', './');
router.get('/', './');
router.get('/:params{.+}', './');
};
+2 -1
View File
@@ -1,5 +1,6 @@
export default (router) => {
router.get('/blog/:category*', './blog');
router.get('/blog/', './blog');
router.get('/blog/:category{.+}', './blog');
router.get('/desktop', './desktop');
router.get('/pine/:version?', './pine');
};
+4 -2
View File
@@ -1,6 +1,8 @@
export default (router) => {
router.get('/cs/:type', './cs');
router.get('/gs/:type?', './gs/index.js');
router.get('/hyxt/:category*', './hyxt');
router.get('/news/:category*', './news');
router.get('/hyxt/', './hyxt');
router.get('/hyxt/:category{.+}', './hyxt');
router.get('/news/', './news');
router.get('/news/:category{.+}', './news');
};
+2 -1
View File
@@ -1,3 +1,4 @@
export default (router) => {
router.get('/publish/:category*', './publish');
router.get('/publish/', './publish');
router.get('/publish/:category{.+}', './publish');
};
+2 -1
View File
@@ -1,3 +1,4 @@
export default (router) => {
router.get('/:path*', './index');
router.get('/', './index');
router.get('/:path{.+}', './index');
};
+2 -1
View File
@@ -1,4 +1,5 @@
export default (router) => {
router.get('/epaper/:id?', './epaper');
router.get('/news/:category*', './news');
router.get('/news/', './news');
router.get('/news/:category{.+}', './news');
};