mirror of
https://github.com/DIYgod/RSSHub.git
synced 2026-09-24 23:12:34 +08:00
fix: route syntax for hono (#14638)
* fix: use :param{.+} instead of :param+ for hono
* 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
* fix: use {} instead of () for regex in hono
* fix: revert changes to lib/router.js as it's still using koa router
* Revert "fix: use two separate routes to simulate :param* in hono"
This reverts commit b00a0a74a0.
* fix: use :param{.+}? to simulate :param*
* feat: add hint about trailing slash in error message
This commit is contained in:
@@ -68,6 +68,9 @@ export const errorHandler: ErrorHandler = (error, ctx) => {
|
||||
} else if (error instanceof NotFoundError) {
|
||||
ctx.status(404);
|
||||
message = 'wrong path';
|
||||
if (ctx.req.path.endsWith('/')) {
|
||||
message += ', you can try removing the trailing slash in the path';
|
||||
}
|
||||
} else {
|
||||
ctx.status(404);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export default (router) => {
|
||||
router.get('/', './latest');
|
||||
router.get('/cat/:cat*', './cat');
|
||||
router.get('/cat/:cat{.+}?', './cat');
|
||||
router.get('/tag/:tag', './tag');
|
||||
};
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export default (router) => {
|
||||
router.get('/:category*', './');
|
||||
router.get('/:category{.+}?', './');
|
||||
};
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export default (router) => {
|
||||
router.get('/:category*', './');
|
||||
router.get('/:category{.+}?', './');
|
||||
};
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
export default (router) => {
|
||||
router.get('/bs/:category?', './bs');
|
||||
router.get('/dwxgb/:category/:type', './dwxgb');
|
||||
router.get('/fdy/:path*', './fdy');
|
||||
router.get('/fdy/:path{.+}?', './fdy');
|
||||
router.get('/lib/:category?', './lib');
|
||||
};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export default (router) => {
|
||||
router.get('/news/:type', './news/index');
|
||||
router.get('/sme/:path*', './sme');
|
||||
router.get('/sme/:path{.+}?', './sme');
|
||||
};
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
export default (router) => {
|
||||
router.get('/cg/:caty?', './cg/index');
|
||||
router.get('/genetics/:path+', './genetics/index');
|
||||
router.get('/genetics/:path{.+}', './genetics/index');
|
||||
router.get('/ia/yjs', './ia/yjs');
|
||||
router.get('/iee/kydt', './iee/kydt');
|
||||
router.get('/is/:path+', './is/index');
|
||||
router.get('/is/:path{.+}', './is/index');
|
||||
router.get('/mesalab/kb', './mesalab/kb');
|
||||
router.get('/sim/kyjz', './sim/kyjz');
|
||||
};
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export default (router) => {
|
||||
router.get('/:id*', './');
|
||||
router.get('/:id{.+}?', './');
|
||||
};
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export default (router) => {
|
||||
router.get('/:id*', './');
|
||||
router.get('/:id{.+}?', './');
|
||||
};
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export default (router) => {
|
||||
router.get('/:cate*', './index');
|
||||
router.get('/:cate{.+}?', './index');
|
||||
};
|
||||
|
||||
@@ -9,5 +9,5 @@ export default (router) => {
|
||||
router.get('/news/zzkx', toZzkx);
|
||||
router.get('/zzkx', toZzkx);
|
||||
router.get('/video/:category?', './video');
|
||||
router.get('/:category*', './');
|
||||
router.get('/:category{.+}?', './');
|
||||
};
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export default (router) => {
|
||||
router.get('/:ver([7|x])/:cid([0-9]{2})/:link(.*)', './discuz');
|
||||
router.get('/:ver([7|x])/:link(.*)', './discuz');
|
||||
router.get('/:link(.*)', './discuz');
|
||||
router.get('/:ver{[7x]}/:cid{[0-9]{2}}/:link{.+}', './discuz');
|
||||
router.get('/:ver{[7x]}/:link{.+}', './discuz');
|
||||
router.get('/:link{.+}', './discuz');
|
||||
};
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export default (router) => {
|
||||
router.get('/:filter*', './index');
|
||||
router.get('/:filter{.+}?', './index');
|
||||
};
|
||||
|
||||
@@ -3,7 +3,7 @@ export default (router) => {
|
||||
router.get('/comments/:user/:repo/:type/:number', './comments'); // deprecated
|
||||
router.get('/comments/:user/:repo/:number?', './comments');
|
||||
router.get('/contributors/:user/:repo/:order?/:anon?', './contributors');
|
||||
router.get('/file/:user/:repo/:branch/:filepath+', './file');
|
||||
router.get('/file/:user/:repo/:branch/:filepath{.+}', './file');
|
||||
router.get('/gist/:gistId', './gist');
|
||||
router.get('/issue/:user/:repo/:state?/:labels?', './issue');
|
||||
router.get('/notifications', './notifications');
|
||||
|
||||
+15
-15
@@ -3,14 +3,14 @@ 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/:category{.+}?', './chinamine-safety/zfxxgk');
|
||||
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/:suffix{.+}?', './csrc/news');
|
||||
router.get('/customs/list/:gchannel?', './customs/list');
|
||||
router.get('/fmprc/:category?', './mfa/wjdt');
|
||||
router.get('/forestry/gjlckjdjt/:category?', './forestry/gjlckjdjt');
|
||||
@@ -20,26 +20,26 @@ 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/: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/:suburl(.*)', './moa/moa');
|
||||
router.get('/moa/sjzxfb/:category{.+}?', './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');
|
||||
router.get('/mof/bond/:category?', './mof/bond');
|
||||
router.get('/mofcom/article/:suffix+', './mofcom/article');
|
||||
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/:category{.+}?', './ndrc/fggz');
|
||||
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/:path{.+}?', './nifdc');
|
||||
router.get('/nmpa/*', './nmpa/generic');
|
||||
router.get('/nopss/*', './nopss');
|
||||
router.get('/npc/:caty', './npc/index');
|
||||
@@ -53,20 +53,20 @@ export default (router) => {
|
||||
router.get('/safe/business/:site?', './safe/business');
|
||||
router.get('/safe/complaint/:site?', './safe/complaint');
|
||||
router.get('/samr/xgzlyhd/:category?/:department?', './samr/xgzlyhd');
|
||||
router.get('/sasac/:path+', './sasac/generic');
|
||||
router.get('/sasac/:path{.+}', './sasac/generic');
|
||||
router.get('/stats/*', './stats');
|
||||
router.get('/zhengce/govall/:advance?', './zhengce/govall');
|
||||
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/: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/:category{.+}?', './chongqing/gzw');
|
||||
router.get('/chongqing/rsks', './chongqing/rsks');
|
||||
router.get('/chongqing/sydwgkzp', './chongqing/sydwgkzp');
|
||||
router.get('/dianbai/*', './dianbai/dianbai');
|
||||
@@ -95,7 +95,7 @@ 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/: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');
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export default (router) => {
|
||||
router.get('/v/:category*', './program');
|
||||
router.get('/v/:category{.+}?', './program');
|
||||
};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export default (router) => {
|
||||
router.get('/list/:id', './list');
|
||||
router.get('/:category*', './lists');
|
||||
router.get('/:category{.+}?', './lists');
|
||||
};
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export default (router) => {
|
||||
router.get('/:region?/:category*', './');
|
||||
router.get('/:region?/:category{.+}?', './');
|
||||
};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export default (router) => {
|
||||
router.get('/itnews/:channel', './itnews');
|
||||
router.get('/:params*', './');
|
||||
router.get('/:params{.+}?', './');
|
||||
};
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export default (router) => {
|
||||
router.get('/lc_report/:id?', './report');
|
||||
router.get('/report/:id?', './report');
|
||||
router.get('/:category*', './');
|
||||
router.get('/:category{.+}?', './');
|
||||
};
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export default (router) => {
|
||||
router.get('/:id?/:category*', './');
|
||||
router.get('/:id?/:category{.+}?', './');
|
||||
};
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export default (router) => {
|
||||
router.get('/imap/:email/:folder*', './imap');
|
||||
router.get('/imap/:email/:folder{.+}?', './imap');
|
||||
};
|
||||
|
||||
@@ -2,5 +2,5 @@ export default (router) => {
|
||||
router.get('/cid/:id?', './cid');
|
||||
router.get('/rank/:range?', './rank');
|
||||
router.get('/zhibo', './cid');
|
||||
router.get('/:category*', './');
|
||||
router.get('/:category{.+}?', './');
|
||||
};
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export default (router) => {
|
||||
router.get('/cmdp/image/:id*', './cmdp');
|
||||
router.get('/cmdp/image/:id{.+}?', './cmdp');
|
||||
};
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export default (router) => {
|
||||
router.get('/:category*', './');
|
||||
router.get('/:category{.+}?', './');
|
||||
};
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export default (router) => {
|
||||
router.get('/liuyan/:id/:state?', './liuyan');
|
||||
router.get('/xjpjh/:keyword?/:year?', './xjpjh');
|
||||
router.get('/:site?/:category*', './');
|
||||
router.get('/:site?/:category{.+}?', './');
|
||||
};
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export default (router) => {
|
||||
router.get('/:topicPath*', './index');
|
||||
router.get('/:topicPath{.+}?', './index');
|
||||
};
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export default (router) => {
|
||||
router.get('/news/:path*', './news');
|
||||
router.get('/news/:path{.+}?', './news');
|
||||
};
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export default (router) => {
|
||||
router.get('/:path+', './price');
|
||||
router.get('/:path{.+}', './price');
|
||||
};
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export default (router) => {
|
||||
router.get('/:path*', './news');
|
||||
router.get('/:path{.+}?', './news');
|
||||
};
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export default (router) => {
|
||||
router.get('/std/realtime/:category*', './std/realtime');
|
||||
router.get('/std/realtime/:category{.+}?', './std/realtime');
|
||||
};
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export default (router) => {
|
||||
router.get('/blog/:category*', './blog');
|
||||
router.get('/blog/:category{.+}?', './blog');
|
||||
};
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
export default (router) => {
|
||||
router.get('/', './index');
|
||||
router.get('/category/:id+', './index');
|
||||
router.get('/category/:id{.+}', './index');
|
||||
router.get('/info', './index');
|
||||
router.get('/report', './index');
|
||||
router.get('/topic/:id', './index');
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export default (router) => {
|
||||
router.get('/:params*', './');
|
||||
router.get('/:params{.+}?', './');
|
||||
};
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export default (router) => {
|
||||
router.get('/blog/:category*', './blog');
|
||||
router.get('/blog/:category{.+}?', './blog');
|
||||
router.get('/desktop', './desktop');
|
||||
router.get('/pine/:version?', './pine');
|
||||
};
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
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/:category{.+}?', './hyxt');
|
||||
router.get('/news/:category{.+}?', './news');
|
||||
};
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export default (router) => {
|
||||
router.get('/publish/:category*', './publish');
|
||||
router.get('/publish/:category{.+}?', './publish');
|
||||
};
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export default (router) => {
|
||||
router.get('/:path*', './index');
|
||||
router.get('/:path{.+}?', './index');
|
||||
};
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
export default (router) => {
|
||||
router.get('/2yuan/news/:id?', './2yuan/news');
|
||||
router.get('/dean/:subpath+', './dean');
|
||||
router.get('/dyyy/:path+', './dyyy/index');
|
||||
router.get('/dean/:subpath{.+}', './dean');
|
||||
router.get('/dyyy/:path{.+}', './dyyy/index');
|
||||
router.get('/ee/:id?', './ee');
|
||||
router.get('/gs/tzgg', './gs/tzgg');
|
||||
router.get('/international/:subpath+', './international');
|
||||
router.get('/international/:subpath{.+}', './international');
|
||||
router.get('/job/:subpath?', './job');
|
||||
router.get('/std/:category?', './std');
|
||||
};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export default (router) => {
|
||||
router.get('/epaper/:id?', './epaper');
|
||||
router.get('/news/:category*', './news');
|
||||
router.get('/news/:category{.+}?', './news');
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user