- Introduced a new CaptchaError class to handle captcha-related errors.
- Updated the dynamic route to throw CaptchaError when encountering specific error codes.
- Added tests for CaptchaError to ensure proper error handling in the API.
* feat(middleware): add title translation using LLM
* refactor: combine title and description
* fix: camelCase for variables
* refactor: try to update the test case
---------
* feat(core/utils/wechat-mp): major rewrite
* Support more `item_show_type`: `APP_MSG_PAGE`, `VIDEO_SHARE_PAGE`,
`AUDIO_SHARE_PAGE`, and `IMG_SHARE_PAGE`. Previously only the first one
could be parsed properly. There are still some other known types waiting
for live examples for further adaptation. If this is the case, a
fallback method will try to generate entries using mostly OpenGraph
metadata. Meanwhile, the administrator of self-hosted instances will see
warnings in the log, asking them to report the URL as a new live
example. Still, `VIDEO_SHARE_PAGE` explicitly uses the fallback method
without any warning, as there is no possible approach to generate a
video/iframe URL from page metadata.
* Show audio and videos in `APP_MSG_PAGE`. However, not all videos
can be shown due to the same reason as `VIDEO_SHARE_PAGE`.
* Show the location where the article is sent.
* Some bugs, mostly due to outdated cheerio selector, are fixed.
* Add a new sub-route `wechat-mp` to `/test` to make things easier.
* All changes are well-tested.
Signed-off-by: Rongrong <i@rong.moe>
* style(core/utils/wechat-mp): fix ESLint & CodeQL errors
Signed-off-by: Rongrong <i@rong.moe>
* style(core/utils/wechat-mp): fix a DeepScan issue
Signed-off-by: Rongrong <i@rong.moe>
* style(core/utils/wechat-mp): fix ESLint error
Another try w/ pre-commit hook disabled.
Signed-off-by: Rongrong <i@rong.moe>
---------
Signed-off-by: Rongrong <i@rong.moe>
* test: add critical routes test
* fix: youtube channels config
* test: add full routes test
* test: output full routes test result
* test: build routes before test
* test: use one reporter
* test: fix cache test errors
* test: fix cache test errors
* chore: puppeteerrc.cjs
* chore: puppeteerrc.cjs
* chore: puppeteerrc.cjs
* fix: build script
* chore: puppeteerrc rename
* test: route test names
* chore: pass test result to docs