Skip to content

fix(github): restore empty pull request and issue feeds - #23724

Merged
TonyRL merged 1 commit into
DIYgod:masterfrom
NekoAria:fix/github-allow-empty
Oct 29, 2026
Merged

TonyRL merged 1 commit into
DIYgod:masterfrom
NekoAria:fix/github-allow-empty

Conversation

@NekoAria

Copy link
Copy Markdown
Contributor

Involved Issue / 该 PR 相关 Issue

Related historical fixes: #3222 and #4174.

Example for the Proposed Route(s) / 路由地址示例

/github/pull/DIYgod/RSSHub
/github/issue/DIYgod/RSSHub

New RSS Route Checklist / 新 RSS 路由检查表

  • New Route / 新的路由
  • Anti-bot or rate limit / 反爬/频率限制
    • If yes, do your code reflect this sign? / 如果有, 是否有对应的措施?
  • Date and time / 日期和时间
    • Parsed / 可以解析
    • Correct time zone / 时区正确
  • New package added / 添加了新的包
  • Puppeteer

Note / 说明

Repeated errors may cause RSS services to disable otherwise valid subscriptions, preventing users from receiving future updates.

Other GitHub routes affected by the same removal, such as notifications and activity, may need similar fixes.

Restore the route-specific allowEmpty flags removed in 5374aa1 so successful empty responses no longer produce 503 errors.

Keep request and parsing failures unchanged. Leave other GitHub routes for separate review.
@github-actions github-actions Bot added route auto: ready to review Human review will come in after lint issues and merge conflicts are fixed labels Oct 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Successfully generated as following:

http://localhost:1200/github/pull/DIYgod/RSSHub - Success ✔️
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>DIYgod/RSSHub Open Pull Requests</title>
    <link>https://github.com/DIYgod/RSSHub/pulls</link>
    <atom:link href="http://localhost:1200/github/pull/DIYgod/RSSHub" rel="self" type="application/rss+xml"></atom:link>
    <description>DIYgod/RSSHub Open Pull Requests - Powered by RSSHub</description>
    <generator>RSSHub</generator>
    <webMaster>contact@rsshub.app (RSSHub)</webMaster>
    <language>en</language>
    <lastBuildDate>Thu, 29 Oct 2026 08:37:07 GMT</lastBuildDate>
    <ttl>5</ttl>
    <item>
      <title>fix(github): restore empty pull request and issue feeds</title>
      <description>&lt;h2&gt;Involved Issue / 该 PR 相关 Issue&lt;/h2&gt;
        &lt;p&gt;Related historical fixes: #3222 and #4174.&lt;/p&gt;
        &lt;h2&gt;Example for the Proposed Route(s) / 路由地址示例&lt;/h2&gt;
        &lt;!--
        Please include route starts with /, with all required and optional parameters.
        Fail to comply will result in your pull request being closed automatically.
        请在 `routes` 区域填写以 / 开头的完整路由地址,否则你的 PR 将会被无条件关闭。
        如果路由包含在文档中列出可以完全穷举的参数(例如分类),请依次全部列出。
        ```routes
        /some/route
        /some/other/route
        /dont/use/this/or/modify/it
        /use/the/fenced/code/block/below
        ```
        If your changes are not related to route, please fill in `routes` section with `NOROUTE`. Fail to comply will result in your PR being closed.
        如果你的 PR 与路由无关, 请在 `routes` 区域 填写 `NOROUTE`,而不是直接删除 `routes` 区域。否则你的 PR 将会被无条件关闭。
        --&gt;
        &lt;pre&gt;&lt;code class=&quot;language-routes&quot;&gt;/github/pull/DIYgod/RSSHub
        /github/issue/DIYgod/RSSHub
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h2&gt;New RSS Route Checklist / 新 RSS 路由检查表&lt;/h2&gt;
        &lt;ul&gt;
        &lt;li&gt;[ ] New Route / 新的路由
        &lt;ul&gt;
        &lt;li&gt;[ ] Follows &lt;a href=&quot;https://docs.rsshub.app/joinus/advanced/script-standard&quot;&gt;Script Standard&lt;/a&gt; / 跟随 &lt;a href=&quot;https://docs.rsshub.app/zh/joinus/advanced/script-standard&quot;&gt;路由规范&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[ ] Anti-bot or rate limit / 反爬/频率限制
        &lt;ul&gt;
        &lt;li&gt;[ ] If yes, do your code reflect this sign? / 如果有, 是否有对应的措施?&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[ ] &lt;a href=&quot;https://docs.rsshub.app/joinus/advanced/pub-date&quot;&gt;Date and time&lt;/a&gt; / &lt;a href=&quot;https://docs.rsshub.app/zh/joinus/advanced/pub-date&quot;&gt;日期和时间&lt;/a&gt;
        &lt;ul&gt;
        &lt;li&gt;[ ] Parsed / 可以解析&lt;/li&gt;
        &lt;li&gt;[ ] Correct time zone / 时区正确&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[ ] New package added / 添加了新的包&lt;/li&gt;
        &lt;li&gt;[ ] &lt;code&gt;Puppeteer&lt;/code&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;h2&gt;Note / 说明&lt;/h2&gt;
        &lt;p&gt;Repeated errors may cause RSS services to disable otherwise valid subscriptions, preventing users from receiving future updates.&lt;/p&gt;
        &lt;p&gt;Other GitHub routes affected by the same removal, such as notifications and activity, may need similar fixes.&lt;/p&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/pull/23724</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/pull/23724</guid>
      <pubDate>Thu, 29 Oct 2026 08:32:19 GMT</pubDate>
      <dc:creator>NekoAria</dc:creator>
    </item>
    <item>
      <title>chore(deps): bump devenv from `d9f86dc` to `7d3fbff` in the nix group</title>
      <description>&lt;p&gt;Bumps the nix group with 1 update: &lt;a href=&quot;https://github.com/cachix/devenv&quot;&gt;devenv&lt;/a&gt;.&lt;/p&gt;
        &lt;p&gt;Updates &lt;code&gt;devenv&lt;/code&gt; from &lt;code&gt;d9f86dc&lt;/code&gt; to &lt;code&gt;7d3fbff&lt;/code&gt;&lt;/p&gt;
        &lt;details&gt;
        &lt;summary&gt;Commits&lt;/summary&gt;
        &lt;ul&gt;
        &lt;li&gt;&lt;a href=&quot;https://github.com/cachix/devenv/commit/7d3fbffcb7594cc43a5aeaa2a372e29daa7f7911&quot;&gt;&lt;code&gt;7d3fbff&lt;/code&gt;&lt;/a&gt; chore(deps): bump docker/login-action from 4.6.0 to 4.7.0 (&lt;a href=&quot;https://redirect.github.com/cachix/devenv/issues/3320&quot;&gt;#3320&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://github.com/cachix/devenv/commit/80591248bdcd9c12d7d0e8328a5f12972246626f&quot;&gt;&lt;code&gt;8059124&lt;/code&gt;&lt;/a&gt; Auto generate docs/public/devenv.user.schema.json&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://github.com/cachix/devenv/commit/fc38b6bb9eb69228083bd880bd1f1f6c2e68a38e&quot;&gt;&lt;code&gt;fc38b6b&lt;/code&gt;&lt;/a&gt; Auto generate missing individual markdowns&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://github.com/cachix/devenv/commit/8d6ad7146672e135f85505e2035da7a9dda462b1&quot;&gt;&lt;code&gt;8d6ad71&lt;/code&gt;&lt;/a&gt; Auto generate docs options data&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://github.com/cachix/devenv/commit/d3058640a623d3314ad28a8426955911263811ca&quot;&gt;&lt;code&gt;d305864&lt;/code&gt;&lt;/a&gt; feat(languages.clojure): add jdk.package option (&lt;a href=&quot;https://redirect.github.com/cachix/devenv/issues/3310&quot;&gt;#3310&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://github.com/cachix/devenv/commit/6175d73dc699a41dd97567c21fb88d5e86437aa0&quot;&gt;&lt;code&gt;6175d73&lt;/code&gt;&lt;/a&gt; feat(tui): detach from an attached process manager with q (&lt;a href=&quot;https://redirect.github.com/cachix/devenv/issues/3317&quot;&gt;#3317&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://github.com/cachix/devenv/commit/89e738f0f42f09da16f3c6833c1f82b01498c29e&quot;&gt;&lt;code&gt;89e738f&lt;/code&gt;&lt;/a&gt; fix: npm install lock (&lt;a href=&quot;https://redirect.github.com/cachix/devenv/issues/3315&quot;&gt;#3315&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;See full diff in &lt;a href=&quot;https://github.com/cachix/devenv/compare/d9f86dc6fe4cb74c0f9377e5535acc0cdacee721...7d3fbffcb7594cc43a5aeaa2a372e29daa7f7911&quot;&gt;compare view&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/details&gt;
        &lt;br&gt;
        &lt;p&gt;Dependabot will resolve any conflicts with this PR as long as you don&#39;t alter it yourself. You can also trigger a rebase manually by commenting &lt;code&gt;@dependabot rebase&lt;/code&gt;.&lt;/p&gt;
        &lt;hr&gt;
        &lt;details&gt;
        &lt;summary&gt;Dependabot commands and options&lt;/summary&gt;
        &lt;br&gt;
        &lt;p&gt;You can trigger Dependabot actions by commenting on this PR:&lt;/p&gt;
        &lt;ul&gt;
        &lt;li&gt;&lt;code&gt;@dependabot rebase&lt;/code&gt; will rebase this PR&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;@dependabot recreate&lt;/code&gt; will recreate this PR, overwriting any edits that have been made to it&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;@dependabot show &amp;lt;dependency name&amp;gt; ignore conditions&lt;/code&gt; will show all of the ignore conditions of the specified dependency&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;@dependabot ignore &amp;lt;dependency name&amp;gt; major version&lt;/code&gt; will close this group update PR and stop Dependabot creating any more for the specific dependency&#39;s major version (unless you unignore this specific dependency&#39;s major version or upgrade to it yourself)&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;@dependabot ignore &amp;lt;dependency name&amp;gt; minor version&lt;/code&gt; will close this group update PR and stop Dependabot creating any more for the specific dependency&#39;s minor version (unless you unignore this specific dependency&#39;s minor version or upgrade to it yourself)&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;@dependabot ignore &amp;lt;dependency name&amp;gt;&lt;/code&gt; will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;@dependabot unignore &amp;lt;dependency name&amp;gt;&lt;/code&gt; will remove all of the ignore conditions of the specified dependency&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;@dependabot unignore &amp;lt;dependency name&amp;gt; &amp;lt;ignore condition&amp;gt;&lt;/code&gt; will remove the ignore condition of the specified dependency and ignore conditions&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/details&gt;</description>
      <link>https://github.com/DIYgod/RSSHub/pull/23723</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/pull/23723</guid>
      <pubDate>Thu, 29 Oct 2026 08:08:50 GMT</pubDate>
      <dc:creator>dependabot[bot]</dc:creator>
    </item>
    <item>
      <title>chore(deps): bump twitter-api-v2 from 1.29.1 to 1.31.0</title>
      <description>&lt;p&gt;Bumps &lt;a href=&quot;https://github.com/plhery/node-twitter-api-v2&quot;&gt;twitter-api-v2&lt;/a&gt; from 1.29.1 to 1.31.0.&lt;/p&gt;
        &lt;details&gt;
        &lt;summary&gt;Release notes&lt;/summary&gt;
        &lt;p&gt;&lt;em&gt;Sourced from &lt;a href=&quot;https://github.com/plhery/node-twitter-api-v2/releases&quot;&gt;twitter-api-v2&#39;s releases&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
        &lt;blockquote&gt;
        &lt;h2&gt;1.31.0&lt;/h2&gt;
        &lt;ul&gt;
        &lt;li&gt;docs: fix wrong snippets, add a credentials guide and common errors &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/654&quot;&gt;#654&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix(stream): close() stops pending reconnections, for await survives reconnections &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/655&quot;&gt;#655&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;feat(v2): missing common endpoints and OAuth 1.0a token exchange &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/656&quot;&gt;#656&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix(paginators): stop at the last page, and dedupe merged includes &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/651&quot;&gt;#651&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;feat(types): bring the v2 types up to date with X&#39;s docs &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/653&quot;&gt;#653&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix(errors): match v2 problem types, explain X&#39;s errors, reject cut responses &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/652&quot;&gt;#652&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix(client): retry a failed current user fetch, plugin hook errors, cloneWithPrefix() &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/650&quot;&gt;#650&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix: TwitterApiReadOnly and TwitterApiReadWrite named imports crashed on Node 22 &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/649&quot;&gt;#649&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix: encode URL parameters, so that an ID can&#39;t change the endpoint &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/648&quot;&gt;#648&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;test: a fake X API for offline tests, CI on pull requests &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/647&quot;&gt;#647&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;/ul&gt;
        &lt;h2&gt;1.30.0&lt;/h2&gt;
        &lt;ul&gt;
        &lt;li&gt;fix(paginators): v1 searchUsers fetchNext() and fetchLast() kept asking for page 2 &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/644&quot;&gt;#644&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix(types): tweet entity lists and user description entities are optional &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/645&quot;&gt;#645&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;feat(media): report the upload progress of v2.uploadMedia with onProgress &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/646&quot;&gt;#646&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;refactor: remove the redundant socket close listener of requests &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/643&quot;&gt;#643&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix: ApiRequestError.requestError was always undefined &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/642&quot;&gt;#642&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;docs: deprecate retired v1.1 and Labs methods, flag Enterprise-only endpoints &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/641&quot;&gt;#641&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix: reject instead of hanging when a compressed response fails &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/640&quot;&gt;#640&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;feat(media): accept file paths and handles in v2.uploadMedia &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/639&quot;&gt;#639&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;/ul&gt;
        &lt;h2&gt;1.29.2&lt;/h2&gt;
        &lt;ul&gt;
        &lt;li&gt;fix(paginators): keep oldest_id when fetchNext() returns an empty page &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/638&quot;&gt;#638&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix(stream): don&#39;t drop a payload whose CRLF separator arrives alone &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/638&quot;&gt;#638&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix(paginators): keep the cursor when previous() returns an empty page &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/637&quot;&gt;#637&lt;/a&gt; (&lt;a href=&quot;https://github.com/OsamaAnsar&quot;&gt;&lt;code&gt;@OsamaAnsar&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix(stream): decode chunks with a stateful UTF-8 decoder &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/636&quot;&gt;#636&lt;/a&gt; (&lt;a href=&quot;https://github.com/OsamaAnsar&quot;&gt;&lt;code&gt;@OsamaAnsar&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/blockquote&gt;
        &lt;/details&gt;
        &lt;details&gt;
        &lt;summary&gt;Changelog&lt;/summary&gt;
        &lt;p&gt;&lt;em&gt;Sourced from &lt;a href=&quot;https://github.com/plhery/node-twitter-api-v2/blob/master/changelog.md&quot;&gt;twitter-api-v2&#39;s changelog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
        &lt;blockquote&gt;
        &lt;h2&gt;1.31.0&lt;/h2&gt;
        &lt;ul&gt;
        &lt;li&gt;docs: fix wrong snippets, add a credentials guide and common errors &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/654&quot;&gt;#654&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix(stream): close() stops pending reconnections, for await survives reconnections &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/655&quot;&gt;#655&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;feat(v2): missing common endpoints and OAuth 1.0a token exchange &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/656&quot;&gt;#656&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix(paginators): stop at the last page, and dedupe merged includes &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/651&quot;&gt;#651&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;feat(types): bring the v2 types up to date with X&#39;s docs &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/653&quot;&gt;#653&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix(errors): match v2 problem types, explain X&#39;s errors, reject cut responses &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/652&quot;&gt;#652&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix(client): retry a failed current user fetch, plugin hook errors, cloneWithPrefix() &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/650&quot;&gt;#650&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix: TwitterApiReadOnly and TwitterApiReadWrite named imports crashed on Node 22 &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/649&quot;&gt;#649&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix: encode URL parameters, so that an ID can&#39;t change the endpoint &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/648&quot;&gt;#648&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;test: a fake X API for offline tests, CI on pull requests &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/647&quot;&gt;#647&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;/ul&gt;
        &lt;h2&gt;1.30.0&lt;/h2&gt;
        &lt;ul&gt;
        &lt;li&gt;fix(paginators): v1 searchUsers fetchNext() and fetchLast() kept asking for page 2 &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/644&quot;&gt;#644&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix(types): tweet entity lists and user description entities are optional &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/645&quot;&gt;#645&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;feat(media): report the upload progress of v2.uploadMedia with onProgress &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/646&quot;&gt;#646&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;refactor: remove the redundant socket close listener of requests &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/643&quot;&gt;#643&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix: ApiRequestError.requestError was always undefined &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/642&quot;&gt;#642&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;docs: deprecate retired v1.1 and Labs methods, flag Enterprise-only endpoints &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/641&quot;&gt;#641&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix: reject instead of hanging when a compressed response fails &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/640&quot;&gt;#640&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;feat(media): accept file paths and handles in v2.uploadMedia &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/639&quot;&gt;#639&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;/ul&gt;
        &lt;h2&gt;1.29.2&lt;/h2&gt;
        &lt;ul&gt;
        &lt;li&gt;fix(paginators): keep oldest_id when fetchNext() returns an empty page &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/638&quot;&gt;#638&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix(stream): don&#39;t drop a payload whose CRLF separator arrives alone &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/638&quot;&gt;#638&lt;/a&gt; (&lt;a href=&quot;https://github.com/plhery&quot;&gt;&lt;code&gt;@plhery&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix(paginators): keep the cursor when previous() returns an empty page &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/637&quot;&gt;#637&lt;/a&gt; (&lt;a href=&quot;https://github.com/OsamaAnsar&quot;&gt;&lt;code&gt;@OsamaAnsar&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;fix(stream): decode chunks with a stateful UTF-8 decoder &lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/636&quot;&gt;#636&lt;/a&gt; (&lt;a href=&quot;https://github.com/OsamaAnsar&quot;&gt;&lt;code&gt;@OsamaAnsar&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/blockquote&gt;
        &lt;/details&gt;
        &lt;details&gt;
        &lt;summary&gt;Commits&lt;/summary&gt;
        &lt;ul&gt;
        &lt;li&gt;&lt;a href=&quot;https://github.com/plhery/node-twitter-api-v2/commit/d4ba72dfcf30395f02c551b318d53f51310ccdd0&quot;&gt;&lt;code&gt;d4ba72d&lt;/code&gt;&lt;/a&gt; upgrade to 1.31.0&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://github.com/plhery/node-twitter-api-v2/commit/da673b7e4dcb60235be15fb1e598472f2a113223&quot;&gt;&lt;code&gt;da673b7&lt;/code&gt;&lt;/a&gt; docs: fix wrong snippets, add a credentials guide and common errors (&lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/654&quot;&gt;#654&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://github.com/plhery/node-twitter-api-v2/commit/cd59930fd496fdd78280e57848d83448707a8cd5&quot;&gt;&lt;code&gt;cd59930&lt;/code&gt;&lt;/a&gt; fix(stream): close() stops pending reconnections, for await survives reconnec...&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://github.com/plhery/node-twitter-api-v2/commit/9e0799dec040e2b64e4a90c148c2c67571133121&quot;&gt;&lt;code&gt;9e0799d&lt;/code&gt;&lt;/a&gt; feat(v2): missing common endpoints and OAuth 1.0a token exchange (&lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/656&quot;&gt;#656&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://github.com/plhery/node-twitter-api-v2/commit/bf376131a4a8314aa0e9526fe6bbd55a9ffa2ed6&quot;&gt;&lt;code&gt;bf37613&lt;/code&gt;&lt;/a&gt; fix(paginators): stop at the last page, and dedupe merged includes (&lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/651&quot;&gt;#651&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://github.com/plhery/node-twitter-api-v2/commit/e17853e95c28a0cdffbd5893b17305df7ea19483&quot;&gt;&lt;code&gt;e17853e&lt;/code&gt;&lt;/a&gt; feat(types): bring the v2 types up to date with X&#39;s docs (&lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/653&quot;&gt;#653&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://github.com/plhery/node-twitter-api-v2/commit/13705e8d5e21c565a5acae932af1d12e5304ab15&quot;&gt;&lt;code&gt;13705e8&lt;/code&gt;&lt;/a&gt; fix(errors): match v2 problem types, explain X&#39;s errors, reject cut responses...&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://github.com/plhery/node-twitter-api-v2/commit/09e2050d87210ea5b5b112f7c033cee923012423&quot;&gt;&lt;code&gt;09e2050&lt;/code&gt;&lt;/a&gt; fix(client): retry a failed current user fetch, plugin hook errors, cloneWith...&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://github.com/plhery/node-twitter-api-v2/commit/e7264eed7eeda3e0e300dd03ea5a1775d629232d&quot;&gt;&lt;code&gt;e7264ee&lt;/code&gt;&lt;/a&gt; fix: TwitterApiReadOnly and TwitterApiReadWrite named imports crashed on Node...&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://github.com/plhery/node-twitter-api-v2/commit/7e98a0c1e84c3de146a0289c3560a5097a0584d1&quot;&gt;&lt;code&gt;7e98a0c&lt;/code&gt;&lt;/a&gt; fix: encode URL parameters, so that an ID can&#39;t change the endpoint (&lt;a href=&quot;https://redirect.github.com/plhery/node-twitter-api-v2/issues/648&quot;&gt;#648&lt;/a&gt;)&lt;/li&gt;
        &lt;li&gt;Additional commits viewable in &lt;a href=&quot;https://github.com/plhery/node-twitter-api-v2/compare/1.29.1...1.31.0&quot;&gt;compare view&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/details&gt;
        &lt;br&gt;
        &lt;p&gt;&lt;a href=&quot;https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores&quot;&gt;&lt;img src=&quot;https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=twitter-api-v2&amp;amp;package-manager=npm_and_yarn&amp;amp;previous-version=1.29.1&amp;amp;new-version=1.31.0&quot; alt=&quot;Dependabot compatibility score&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/a&gt;&lt;/p&gt;
        &lt;p&gt;Dependabot will resolve any conflicts with this PR as long as you don&#39;t alter it yourself. You can also trigger a rebase manually by commenting &lt;code&gt;@dependabot rebase&lt;/code&gt;.&lt;/p&gt;
        &lt;hr&gt;
        &lt;details&gt;
        &lt;summary&gt;Dependabot commands and options&lt;/summary&gt;
        &lt;br&gt;
        &lt;p&gt;You can trigger Dependabot actions by commenting on this PR:&lt;/p&gt;
        &lt;ul&gt;
        &lt;li&gt;&lt;code&gt;@dependabot rebase&lt;/code&gt; will rebase this PR&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;@dependabot recreate&lt;/code&gt; will recreate this PR, overwriting any edits that have been made to it&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;@dependabot show &amp;lt;dependency name&amp;gt; ignore conditions&lt;/code&gt; will show all of the ignore conditions of the specified dependency&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;@dependabot ignore this major version&lt;/code&gt; will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;@dependabot ignore this minor version&lt;/code&gt; will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;@dependabot ignore this dependency&lt;/code&gt; will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/details&gt;</description>
      <link>https://github.com/DIYgod/RSSHub/pull/23722</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/pull/23722</guid>
      <pubDate>Thu, 29 Oct 2026 08:04:43 GMT</pubDate>
      <dc:creator>dependabot[bot]</dc:creator>
    </item>
    <item>
      <title>chore(deps-dev): bump @cloudflare/workers-types from 5.20261025.1 to 5.20261026.1 in the cloudflare group</title>
      <description>&lt;p&gt;Bumps the cloudflare group with 1 update: &lt;a href=&quot;https://github.com/cloudflare/workerd&quot;&gt;@cloudflare/workers-types&lt;/a&gt;.&lt;/p&gt;
        &lt;p&gt;Updates &lt;code&gt;@cloudflare/workers-types&lt;/code&gt; from 5.20261025.1 to 5.20261026.1&lt;/p&gt;
        &lt;details&gt;
        &lt;summary&gt;Commits&lt;/summary&gt;
        &lt;ul&gt;
        &lt;li&gt;See full diff in &lt;a href=&quot;https://github.com/cloudflare/workerd/commits&quot;&gt;compare view&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/details&gt;
        &lt;br&gt;
        &lt;p&gt;&lt;a href=&quot;https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores&quot;&gt;&lt;img src=&quot;https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@cloudflare/workers-types&amp;amp;package-manager=npm_and_yarn&amp;amp;previous-version=5.20261025.1&amp;amp;new-version=5.20261026.1&quot; alt=&quot;Dependabot compatibility score&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/a&gt;&lt;/p&gt;
        &lt;p&gt;Dependabot will resolve any conflicts with this PR as long as you don&#39;t alter it yourself. You can also trigger a rebase manually by commenting &lt;code&gt;@dependabot rebase&lt;/code&gt;.&lt;/p&gt;
        &lt;hr&gt;
        &lt;details&gt;
        &lt;summary&gt;Dependabot commands and options&lt;/summary&gt;
        &lt;br&gt;
        &lt;p&gt;You can trigger Dependabot actions by commenting on this PR:&lt;/p&gt;
        &lt;ul&gt;
        &lt;li&gt;&lt;code&gt;@dependabot rebase&lt;/code&gt; will rebase this PR&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;@dependabot recreate&lt;/code&gt; will recreate this PR, overwriting any edits that have been made to it&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;@dependabot show &amp;lt;dependency name&amp;gt; ignore conditions&lt;/code&gt; will show all of the ignore conditions of the specified dependency&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;@dependabot ignore &amp;lt;dependency name&amp;gt; major version&lt;/code&gt; will close this group update PR and stop Dependabot creating any more for the specific dependency&#39;s major version (unless you unignore this specific dependency&#39;s major version or upgrade to it yourself)&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;@dependabot ignore &amp;lt;dependency name&amp;gt; minor version&lt;/code&gt; will close this group update PR and stop Dependabot creating any more for the specific dependency&#39;s minor version (unless you unignore this specific dependency&#39;s minor version or upgrade to it yourself)&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;@dependabot ignore &amp;lt;dependency name&amp;gt;&lt;/code&gt; will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;@dependabot unignore &amp;lt;dependency name&amp;gt;&lt;/code&gt; will remove all of the ignore conditions of the specified dependency&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;@dependabot unignore &amp;lt;dependency name&amp;gt; &amp;lt;ignore condition&amp;gt;&lt;/code&gt; will remove the ignore condition of the specified dependency and ignore conditions&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/details&gt;</description>
      <link>https://github.com/DIYgod/RSSHub/pull/23720</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/pull/23720</guid>
      <pubDate>Thu, 29 Oct 2026 08:03:12 GMT</pubDate>
      <dc:creator>dependabot[bot]</dc:creator>
    </item>
    <item>
      <title>fix(route/xueqiu): reuse complete timeline text and preserve fallback media</title>
      <description>&lt;h2&gt;Involved Issue / 该 PR 相关 Issue&lt;/h2&gt;
        &lt;p&gt;Related: #23129, which tracks detail-failure cache validation.&lt;/p&gt;
        &lt;p&gt;Supersedes #23715 after correcting the test layout to pass the repository&#39;s orphan-file check.&lt;/p&gt;
        &lt;h2&gt;Example for the Proposed Route(s) / 路由地址示例&lt;/h2&gt;
        &lt;pre&gt;&lt;code class=&quot;language-routes&quot;&gt;/xueqiu/user/8152922548
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h2&gt;New RSS Route Checklist / 新 RSS 路由检查表&lt;/h2&gt;
        &lt;ul&gt;
        &lt;li&gt;[ ] New Route / 新的路由&lt;/li&gt;
        &lt;li&gt;[x] Anti-bot or rate limit / 反爬/频率限制
        &lt;ul&gt;
        &lt;li&gt;[x] If yes, do your code reflect this sign? / 如果有, 是否有对应的措施?&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[x] Date and time / 日期和时间
        &lt;ul&gt;
        &lt;li&gt;[x] Parsed / 可以解析&lt;/li&gt;
        &lt;li&gt;[x] Correct time zone / 时区正确&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[ ] New package added / 添加了新的包&lt;/li&gt;
        &lt;li&gt;[ ] &lt;code&gt;Puppeteer&lt;/code&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;h2&gt;Note / 说明&lt;/h2&gt;
        &lt;p&gt;Timeline entries can already contain nonempty, untruncated &lt;code&gt;text&lt;/code&gt; while &lt;code&gt;legal_user_visible&lt;/code&gt; is false. The current route still fetches each detail, then falls back to &lt;code&gt;description&lt;/code&gt; alone if that request fails. This can both add unnecessary detail requests and drop text, pictures or repost content already available in the list.&lt;/p&gt;
        &lt;ul&gt;
        &lt;li&gt;Reuse nonempty list &lt;code&gt;text&lt;/code&gt; when &lt;code&gt;truncated&lt;/code&gt; is not true. Outside the existing &lt;code&gt;legal_user_visible&lt;/code&gt; shortcut, explicitly truncated entries continue through the detail path.&lt;/li&gt;
        &lt;li&gt;Build list and fallback bodies with the shared text/image/repost formatter. Prefer usable &lt;code&gt;text&lt;/code&gt;, then &lt;code&gt;description&lt;/code&gt;, and tolerate missing repost authors or malformed image lists.&lt;/li&gt;
        &lt;li&gt;Keep the existing &lt;code&gt;legal_user_visible&lt;/code&gt; shortcut when it has usable content; allow an empty entry to attempt detail retrieval.&lt;/li&gt;
        &lt;/ul&gt;
        &lt;p&gt;The existing detail-cache key, failure classification and concurrency of three are unchanged. Detail-cache corrections are handled separately in #23129, avoiding a duplicate submission here.&lt;/p&gt;
        &lt;p&gt;Validation:&lt;/p&gt;
        &lt;ul&gt;
        &lt;li&gt;Temporary local regression checks passed 10 synthetic Xueqiu cases with timeline/detail requests mocked per test and assertions on the serialized RSS. Covers zero detail requests for complete entries, explicitly truncated entries, list media/reposts, empty or invalid text, description-only details and detail-failure fallback. The same harness against the unmodified base reproduces six failures.&lt;/li&gt;
        &lt;li&gt;Per &lt;code&gt;AGENTS.md&lt;/code&gt; rule 50, route fixture tests are excluded from the final PR diff. The existing application tests remain unchanged; the local synthetic harness is separate from the repository&#39;s automatic tests.&lt;/li&gt;
        &lt;li&gt;Repository checks: &lt;code&gt;pnpm vitest run lib/app.test.ts&lt;/code&gt;, &lt;code&gt;pnpm typecheck&lt;/code&gt;, and &lt;code&gt;pnpm build:routes&lt;/code&gt;.&lt;/li&gt;
        &lt;li&gt;Type checking, oxlint, ESLint and formatting pass for the submitted change.&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;pnpm build:routes&lt;/code&gt; passes, including the repository&#39;s orphan-file check.&lt;/li&gt;
        &lt;li&gt;No live Xueqiu requests were made for this validation. Fixtures are synthetic and contain no captured posts, account data or credentials.&lt;/li&gt;
        &lt;/ul&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/pull/23717</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/pull/23717</guid>
      <pubDate>Wed, 28 Oct 2026 18:01:38 GMT</pubDate>
      <dc:creator>ZZG97</dc:creator>
    </item>
    <item>
      <title>fix(route/twitter): preserve full quoted notes and source links</title>
      <description>&lt;h2&gt;Involved Issue / 该 PR 相关 Issue&lt;/h2&gt;
        &lt;p&gt;Fixes truncated quoted notes in existing Twitter routes.&lt;/p&gt;
        &lt;p&gt;Supersedes #23714 after correcting the test layout to pass the repository&#39;s orphan-file check.&lt;/p&gt;
        &lt;h2&gt;Example for the Proposed Route(s) / 路由地址示例&lt;/h2&gt;
        &lt;pre&gt;&lt;code class=&quot;language-routes&quot;&gt;/twitter/user/DIYgod
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h2&gt;New RSS Route Checklist / 新 RSS 路由检查表&lt;/h2&gt;
        &lt;ul&gt;
        &lt;li&gt;[ ] New Route / 新的路由&lt;/li&gt;
        &lt;li&gt;[x] Anti-bot or rate limit / 反爬/频率限制
        &lt;ul&gt;
        &lt;li&gt;[x] If yes, do your code reflect this sign? / 如果有, 是否有对应的措施?&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[x] Date and time / 日期和时间
        &lt;ul&gt;
        &lt;li&gt;[x] Parsed / 可以解析&lt;/li&gt;
        &lt;li&gt;[x] Correct time zone / 时区正确&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[ ] New package added / 添加了新的包&lt;/li&gt;
        &lt;li&gt;[ ] &lt;code&gt;Puppeteer&lt;/code&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;h2&gt;Note / 说明&lt;/h2&gt;
        &lt;p&gt;When a quoted tweet contains &lt;code&gt;note_tweet&lt;/code&gt; text but &lt;code&gt;legacy.full_text&lt;/code&gt; is only a preview, the Web API parser currently keeps the preview. Main tweets and retweets already use the note, so the same post can appear complete on its own and truncated when quoted.&lt;/p&gt;
        &lt;p&gt;Use the same hydration helper for main tweets, retweets and quotes: copy the full note text, available entity arrays and the tweet&#39;s own &lt;code&gt;rest_id&lt;/code&gt;. Handle wrapped retweet results as well. Missing note data keeps the legacy text and entities.&lt;/p&gt;
        &lt;p&gt;Show an explicit quote permalink in both display modes. Use the quote&#39;s own ID and omit that link when it is unavailable, so a conversation-root ID cannot produce a link to a different post. Existing item GUIDs, reply-context filtering and subscriber previews remain covered by the regression suite. No additional API requests are introduced.&lt;/p&gt;
        &lt;p&gt;Validation:&lt;/p&gt;
        &lt;ul&gt;
        &lt;li&gt;Temporary local regression checks passed 15 synthetic Twitter cases, including quoted notes through the user route and RSS serialization in both display modes. Additional cases cover entities, direct/wrapped results, main/retweet notes, own IDs, unavailable quotes, sparse notes, reply context and subscriber previews. The same harness against the unmodified base reproduces eight failures.&lt;/li&gt;
        &lt;li&gt;Per &lt;code&gt;AGENTS.md&lt;/code&gt; rule 50, route fixture tests are excluded from the final PR diff. The existing application tests remain unchanged; the local synthetic harness is separate from the repository&#39;s automatic tests.&lt;/li&gt;
        &lt;li&gt;Repository checks: &lt;code&gt;pnpm vitest run lib/app.test.ts&lt;/code&gt;, &lt;code&gt;pnpm typecheck&lt;/code&gt;, and &lt;code&gt;pnpm build:routes&lt;/code&gt;.&lt;/li&gt;
        &lt;li&gt;Type checking, oxlint, ESLint and formatting pass for the submitted change.&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;pnpm build:routes&lt;/code&gt; passes, including the repository&#39;s orphan-file check.&lt;/li&gt;
        &lt;li&gt;Additional local checks with three saved API responses verified full quote text, entities and source permalinks. No captured response, tweet text, credentials or local configuration is included in this PR.&lt;/li&gt;
        &lt;/ul&gt;
        &lt;p&gt;This uses note text already present in the response. External article previews and unavailable content retain their existing behavior.&lt;/p&gt;
        &lt;p&gt;The automatic live example check requires configured Twitter API authentication; an unconfigured test container returns &lt;code&gt;ConfigNotFoundError&lt;/code&gt;. No credentials are included in the contribution.&lt;/p&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/pull/23716</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/pull/23716</guid>
      <pubDate>Wed, 28 Oct 2026 18:01:14 GMT</pubDate>
      <dc:creator>ZZG97</dc:creator>
    </item>
    <item>
      <title>feat(calif): add research route</title>
      <description>&lt;h2&gt;Involved Issue / 该 PR 相关 Issue&lt;/h2&gt;
        &lt;p&gt;Add calif research route support&lt;/p&gt;
        &lt;h2&gt;Example for the Proposed Route(s) / 路由地址示例&lt;/h2&gt;
        &lt;!--
        Please include route starts with /, with all required and optional parameters.
        Fail to comply will result in your pull request being closed automatically.
        请在 `routes` 区域填写以 / 开头的完整路由地址,否则你的 PR 将会被无条件关闭。
        如果路由包含在文档中列出可以完全穷举的参数(例如分类),请依次全部列出。
        ```routes
        /some/route
        /some/other/route
        /dont/use/this/or/modify/it
        /use/the/fenced/code/block/below
        ```
        If your changes are not related to route, please fill in `routes` section with `NOROUTE`. Fail to comply will result in your PR being closed.
        如果你的 PR 与路由无关, 请在 `routes` 区域 填写 `NOROUTE`,而不是直接删除 `routes` 区域。否则你的 PR 将会被无条件关闭。
        --&gt;
        &lt;pre&gt;&lt;code class=&quot;language-routes&quot;&gt;/calif/research
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h2&gt;New RSS Route Checklist / 新 RSS 路由检查表&lt;/h2&gt;
        &lt;ul&gt;
        &lt;li&gt;[x] New Route / 新的路由
        &lt;ul&gt;
        &lt;li&gt;[x] Follows &lt;a href=&quot;https://docs.rsshub.app/joinus/advanced/script-standard&quot;&gt;Script Standard&lt;/a&gt; / 跟随 &lt;a href=&quot;https://docs.rsshub.app/zh/joinus/advanced/script-standard&quot;&gt;路由规范&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[ ] Anti-bot or rate limit / 反爬/频率限制
        &lt;ul&gt;
        &lt;li&gt;[ ] If yes, do your code reflect this sign? / 如果有, 是否有对应的措施?&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[x] &lt;a href=&quot;https://docs.rsshub.app/joinus/advanced/pub-date&quot;&gt;Date and time&lt;/a&gt; / &lt;a href=&quot;https://docs.rsshub.app/zh/joinus/advanced/pub-date&quot;&gt;日期和时间&lt;/a&gt;
        &lt;ul&gt;
        &lt;li&gt;[x] Parsed / 可以解析&lt;/li&gt;
        &lt;li&gt;[ ] Correct time zone / 时区正确&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[ ] New package added / 添加了新的包&lt;/li&gt;
        &lt;li&gt;[ ] &lt;code&gt;Puppeteer&lt;/code&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;h2&gt;Note / 说明&lt;/h2&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/pull/23677</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/pull/23677</guid>
      <pubDate>Sun, 25 Oct 2026 17:31:35 GMT</pubDate>
      <dc:creator>shoeper</dc:creator>
    </item>
    <item>
      <title>fix(anthropic): restore red team article content</title>
      <description>&lt;h2&gt;Involved Issue / 该 PR 相关 Issue&lt;/h2&gt;
        &lt;p&gt;Updated /anthropic/red to fetch article content.&lt;/p&gt;
        &lt;h2&gt;Example for the Proposed Route(s) / 路由地址示例&lt;/h2&gt;
        &lt;!--
        Please include route starts with /, with all required and optional parameters.
        Fail to comply will result in your pull request being closed automatically.
        请在 `routes` 区域填写以 / 开头的完整路由地址,否则你的 PR 将会被无条件关闭。
        如果路由包含在文档中列出可以完全穷举的参数(例如分类),请依次全部列出。
        ```routes
        /some/route
        /some/other/route
        /dont/use/this/or/modify/it
        /use/the/fenced/code/block/below
        ```
        If your changes are not related to route, please fill in `routes` section with `NOROUTE`. Fail to comply will result in your PR being closed.
        如果你的 PR 与路由无关, 请在 `routes` 区域 填写 `NOROUTE`,而不是直接删除 `routes` 区域。否则你的 PR 将会被无条件关闭。
        --&gt;
        &lt;pre&gt;&lt;code class=&quot;language-routes&quot;&gt;/anthropic/red
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h2&gt;New RSS Route Checklist / 新 RSS 路由检查表&lt;/h2&gt;
        &lt;ul&gt;
        &lt;li&gt;[ ] New Route / 新的路由
        &lt;ul&gt;
        &lt;li&gt;[x] Follows &lt;a href=&quot;https://docs.rsshub.app/joinus/advanced/script-standard&quot;&gt;Script Standard&lt;/a&gt; / 跟随 &lt;a href=&quot;https://docs.rsshub.app/zh/joinus/advanced/script-standard&quot;&gt;路由规范&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[ ] Anti-bot or rate limit / 反爬/频率限制
        &lt;ul&gt;
        &lt;li&gt;[ ] If yes, do your code reflect this sign? / 如果有, 是否有对应的措施?&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[x] &lt;a href=&quot;https://docs.rsshub.app/joinus/advanced/pub-date&quot;&gt;Date and time&lt;/a&gt; / &lt;a href=&quot;https://docs.rsshub.app/zh/joinus/advanced/pub-date&quot;&gt;日期和时间&lt;/a&gt;
        &lt;ul&gt;
        &lt;li&gt;[x] Parsed / 可以解析&lt;/li&gt;
        &lt;li&gt;[ ] Correct time zone / 时区正确&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[ ] New package added / 添加了新的包&lt;/li&gt;
        &lt;li&gt;[ ] &lt;code&gt;Puppeteer&lt;/code&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;h2&gt;Note / 说明&lt;/h2&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/pull/23676</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/pull/23676</guid>
      <pubDate>Sun, 25 Oct 2026 17:30:43 GMT</pubDate>
      <dc:creator>shoeper</dc:creator>
    </item>
    <item>
      <title>feat(route/xiaomiyoupin): refactor crowdfunding and latest</title>
      <description>&lt;h2&gt;Involved Issue / 该 PR 相关 Issue&lt;/h2&gt;
        &lt;p&gt;Close #&lt;/p&gt;
        &lt;h2&gt;Example for the Proposed Route(s) / 路由地址示例&lt;/h2&gt;
        &lt;!--
        Please include route starts with /, with all required and optional parameters.
        Fail to comply will result in your pull request being closed automatically.
        请在 `routes` 区域填写以 / 开头的完整路由地址,否则你的 PR 将会被无条件关闭。
        如果路由包含在文档中列出可以完全穷举的参数(例如分类),请依次全部列出。
        ```routes
        /some/route
        /some/other/route
        /dont/use/this/or/modify/it
        /use/the/fenced/code/block/below
        ```
        If your changes are not related to route, please fill in `routes` section with `NOROUTE`. Fail to comply will result in your PR being closed.
        如果你的 PR 与路由无关, 请在 `routes` 区域 填写 `NOROUTE`,而不是直接删除 `routes` 区域。否则你的 PR 将会被无条件关闭。
        --&gt;
        &lt;pre&gt;&lt;code class=&quot;language-routes&quot;&gt;/xiaomiyoupin/crowdfunding
        /xiaomiyoupin/latest
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h2&gt;New RSS Route Checklist / 新 RSS 路由检查表&lt;/h2&gt;
        &lt;ul&gt;
        &lt;li&gt;[ ] New Route / 新的路由
        &lt;ul&gt;
        &lt;li&gt;[ ] Follows &lt;a href=&quot;https://docs.rsshub.app/joinus/advanced/script-standard&quot;&gt;Script Standard&lt;/a&gt; / 跟随 &lt;a href=&quot;https://docs.rsshub.app/zh/joinus/advanced/script-standard&quot;&gt;路由规范&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[ ] Anti-bot or rate limit / 反爬/频率限制
        &lt;ul&gt;
        &lt;li&gt;[ ] If yes, do your code reflect this sign? / 如果有, 是否有对应的措施?&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[x] &lt;a href=&quot;https://docs.rsshub.app/joinus/advanced/pub-date&quot;&gt;Date and time&lt;/a&gt; / &lt;a href=&quot;https://docs.rsshub.app/zh/joinus/advanced/pub-date&quot;&gt;日期和时间&lt;/a&gt;
        &lt;ul&gt;
        &lt;li&gt;[x] Parsed / 可以解析&lt;/li&gt;
        &lt;li&gt;[x] Correct time zone / 时区正确&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[ ] New package added / 添加了新的包&lt;/li&gt;
        &lt;li&gt;[ ] &lt;code&gt;Puppeteer&lt;/code&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;h2&gt;Note / 说明&lt;/h2&gt;
        &lt;ol&gt;
        &lt;li&gt;Add &lt;code&gt;sellPointList&lt;/code&gt; to &lt;code&gt;lib/routes/mi/templates/crowdfunding.tsx&lt;/code&gt;&lt;/li&gt;
        &lt;li&gt;Add &lt;code&gt;dedupeByKey&lt;/code&gt; to &lt;code&gt;lib/routes/mi/utils.ts&lt;/code&gt;&lt;/li&gt;
        &lt;li&gt;Refactor &lt;code&gt;lib/routes/xiaomiyoupin&lt;/code&gt;&lt;/li&gt;
        &lt;/ol&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/pull/23641</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/pull/23641</guid>
      <pubDate>Wed, 21 Oct 2026 05:25:52 GMT</pubDate>
      <dc:creator>nuomi1</dc:creator>
    </item>
    <item>
      <title>feat(4chan): add per-thread feed and Atom reply links</title>
      <description>&lt;p&gt;Adds a per-thread 4chan feed and a generic optional &lt;code&gt;DataItem.links&lt;/code&gt; field rendered only by the Atom view. When the catalog is requested with &lt;code&gt;showThreadFeed=1&lt;/code&gt;, each thread advertises its feed with &lt;code&gt;rel=&quot;replies&quot;&lt;/code&gt;.&lt;/p&gt;
        &lt;h2&gt;Involved Issue / 该 PR 相关 Issue&lt;/h2&gt;
        &lt;p&gt;Close #&lt;/p&gt;
        &lt;h2&gt;Example for the Proposed Route(s) / 路由地址示例&lt;/h2&gt;
        &lt;pre&gt;&lt;code class=&quot;language-routes&quot;&gt;/4chan/g/catalog/showThreadFeed=1
        /4chan/g/thread/110119143
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h2&gt;New RSS Route Checklist / 新 RSS 路由检查表&lt;/h2&gt;
        &lt;ul&gt;
        &lt;li&gt;[x] New Route / 新的路由
        &lt;ul&gt;
        &lt;li&gt;[x] Follows &lt;a href=&quot;https://docs.rsshub.app/joinus/advanced/script-standard&quot;&gt;Script Standard&lt;/a&gt; / 跟随 &lt;a href=&quot;https://docs.rsshub.app/zh/joinus/advanced/script-standard&quot;&gt;路由规范&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[x] Anti-bot or rate limit / 反爬/频率限制
        &lt;ul&gt;
        &lt;li&gt;[ ] If yes, do your code reflect this sign? / 如果有, 是否有对应的措施?&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[x] &lt;a href=&quot;https://docs.rsshub.app/joinus/advanced/pub-date&quot;&gt;Date and time&lt;/a&gt; / &lt;a href=&quot;https://docs.rsshub.app/zh/joinus/advanced/pub-date&quot;&gt;日期和时间&lt;/a&gt;
        &lt;ul&gt;
        &lt;li&gt;[x] Parsed / 可以解析&lt;/li&gt;
        &lt;li&gt;[x] Correct time zone / 时区正确&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[ ] New package added / 添加了新的包&lt;/li&gt;
        &lt;li&gt;[ ] &lt;code&gt;Puppeteer&lt;/code&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;h2&gt;Note / 说明&lt;/h2&gt;
        &lt;p&gt;Atom-only by design:&lt;/p&gt;
        &lt;ul&gt;
        &lt;li&gt;&lt;code&gt;DataItem.links&lt;/code&gt; is optional and only &lt;code&gt;lib/views/atom.tsx&lt;/code&gt; renders it. RSS and JSON output is unchanged.&lt;/li&gt;
        &lt;li&gt;It does not reuse &lt;code&gt;_extra.links&lt;/code&gt;, whose &lt;code&gt;type&lt;/code&gt; is a semantic label (&lt;code&gt;via&lt;/code&gt;/&lt;code&gt;quote&lt;/code&gt;), not a MIME type.&lt;/li&gt;
        &lt;li&gt;The catalog link is opt-in via &lt;code&gt;showThreadFeed&lt;/code&gt;, so the default catalog output stays unchanged and readers do not automatically fetch every thread.&lt;/li&gt;
        &lt;li&gt;The child href includes &lt;code&gt;?format=atom&lt;/code&gt; so it matches &lt;code&gt;type=&quot;application/atom+xml&quot;&lt;/code&gt;.&lt;/li&gt;
        &lt;/ul&gt;
        &lt;p&gt;Thread route:&lt;/p&gt;
        &lt;ul&gt;
        &lt;li&gt;One item per post, OP first (&lt;code&gt;sortItems: false&lt;/code&gt;).&lt;/li&gt;
        &lt;li&gt;Every item sets &lt;code&gt;guid&lt;/code&gt; to &lt;code&gt;&amp;lt;thread URL&amp;gt;#p&amp;lt;post number&amp;gt;&lt;/code&gt;. The OP &lt;code&gt;link&lt;/code&gt; is the thread URL; replies link to &lt;code&gt;#p&amp;lt;post number&amp;gt;&lt;/code&gt;. This keeps every entry ID unique and the OP entry ID distinct from the feed ID.&lt;/li&gt;
        &lt;li&gt;The OP exposes its reply count as &lt;code&gt;comments&lt;/code&gt;, rendered by Atom as &lt;code&gt;&amp;lt;rsshub:comments&amp;gt;&lt;/code&gt;.&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;showReplyCount&lt;/code&gt; remains a catalog option; the thread route exposes the count structurally via &lt;code&gt;comments&lt;/code&gt; instead of repeating it in the description.&lt;/li&gt;
        &lt;li&gt;Thread state (sticky, closed, bump limit, image limit, archived) is included in the feed description.&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;pubDate&lt;/code&gt; comes from the post&#39;s Unix &lt;code&gt;time&lt;/code&gt;.&lt;/li&gt;
        &lt;li&gt;Archived or deleted threads return an RSSHub 404 (&lt;code&gt;NotFoundError&lt;/code&gt;) instead of an empty feed.&lt;/li&gt;
        &lt;/ul&gt;
        &lt;p&gt;Rate limiting and amplification:&lt;/p&gt;
        &lt;ul&gt;
        &lt;li&gt;Each feed request makes one upstream request, cached by RSSHub.&lt;/li&gt;
        &lt;li&gt;Consumers following every &lt;code&gt;rel=&quot;replies&quot;&lt;/code&gt; link could multiply requests (RFC 4685 §7), which is why the catalog link is opt-in. No custom throttling is added beyond RSSHub&#39;s cache.&lt;/li&gt;
        &lt;/ul&gt;
        &lt;p&gt;No route test is added, per repo policy. An Atom view test covers the new field.&lt;/p&gt;
        &lt;p&gt;Verification:&lt;/p&gt;
        &lt;ul&gt;
        &lt;li&gt;&lt;code&gt;pnpm test&lt;/code&gt; — 72 files, 663 tests passed&lt;/li&gt;
        &lt;li&gt;Manual checks: default and opt-in catalog, live thread feed, and archived thread behavior.&lt;/li&gt;
        &lt;/ul&gt;
        &lt;p&gt;The example thread will archive eventually, so the example will need refreshing when that happens.&lt;/p&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/pull/23640</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/pull/23640</guid>
      <pubDate>Tue, 20 Oct 2026 12:44:22 GMT</pubDate>
      <dc:creator>Hash6232</dc:creator>
    </item>
    <item>
      <title>feat(sjtu): add CS talent cultivation feeds</title>
      <description>&lt;h2&gt;Involved Issue / 该 PR 相关 Issue&lt;/h2&gt;
        &lt;h2&gt;Example for the Proposed Route(s) / 路由地址示例&lt;/h2&gt;
        &lt;pre&gt;&lt;code class=&quot;language-routes&quot;&gt;/sjtu/cs/rcpy/bkspy_gjjl
        /sjtu/cs/rcpy/bsyjs_zsgz
        /sjtu/cs/rcpy/bsyjs_xjgl
        /sjtu/cs/rcpy/bsyjs_pygl
        /sjtu/cs/rcpy/bsyjs_xwgl
        /sjtu/cs/rcpy/bsyjs_dbgg
        /sjtu/cs/rcpy/bsyjs_gjjl
        /sjtu/cs/rcpy/bsyjs_jssw
        /sjtu/cs/rcpy/bsyjs_notice
        /sjtu/cs/rcpy/wzypy
        /sjtu/cs/rcpy/jxsj_kcsj_prp
        /sjtu/cs/rcpy/jxsj_kcsj_zysx
        /sjtu/cs/rcpy/jxsj_xskczz
        /sjtu/cs/rcpy/xsgz-tzgg-djdy
        /sjtu/cs/rcpy/xsgz-tzgg-txgz
        /sjtu/cs/rcpy/xsgz-tzgg-xssw
        /sjtu/cs/rcpy/xsgz-tzgg-zyfz
        /sjtu/cs/rcpy/xsgz-gzzd-xssw
        /sjtu/cs/rcpy/xsgz-gzzd-zyfz
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h2&gt;New RSS Route Checklist / 新 RSS 路由检查表&lt;/h2&gt;
        &lt;ul&gt;
        &lt;li&gt;[x] New Route / 新的路由
        &lt;ul&gt;
        &lt;li&gt;[x] Follows &lt;a href=&quot;https://docs.rsshub.app/joinus/advanced/script-standard&quot;&gt;Script Standard&lt;/a&gt; / 跟随 &lt;a href=&quot;https://docs.rsshub.app/zh/joinus/advanced/script-standard&quot;&gt;路由规范&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[ ] Anti-bot or rate limit / 反爬/频率限制
        &lt;ul&gt;
        &lt;li&gt;[ ] If yes, do your code reflect this sign? / 如果有, 是否有对应的措施?&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[x] &lt;a href=&quot;https://docs.rsshub.app/joinus/advanced/pub-date&quot;&gt;Date and time&lt;/a&gt; / &lt;a href=&quot;https://docs.rsshub.app/zh/joinus/advanced/pub-date&quot;&gt;日期和时间&lt;/a&gt;
        &lt;ul&gt;
        &lt;li&gt;[x] Parsed / 可以解析&lt;/li&gt;
        &lt;li&gt;[x] Correct time zone / 时区正确&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[ ] New package added / 添加了新的包&lt;/li&gt;
        &lt;li&gt;[ ] &lt;code&gt;Puppeteer&lt;/code&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;h2&gt;Note / 说明&lt;/h2&gt;
        &lt;p&gt;Add &lt;code&gt;/sjtu/cs/rcpy/:category&lt;/code&gt; for 19 article lists under 人才培养, including student affairs, graduate notices, admissions, thesis defenses, undergraduate exchanges, micro-programs, and teaching practice.&lt;/p&gt;
        &lt;ul&gt;
        &lt;li&gt;Use the source&#39;s list API and request only the first page.&lt;/li&gt;
        &lt;li&gt;Cache article details with bounded concurrency and parse publication dates as UTC+8.&lt;/li&gt;
        &lt;li&gt;Keep public titles, dates, and original links when an article requires jAccount or detail extraction fails. Use the existing WeChat utility for redirected articles.&lt;/li&gt;
        &lt;li&gt;Include category documentation and Radar rules. Static pages and currently empty categories are excluded.&lt;/li&gt;
        &lt;/ul&gt;
        &lt;p&gt;Validation:&lt;/p&gt;
        &lt;ul&gt;
        &lt;li&gt;TypeScript, targeted ESLint/Oxlint, formatting checks, and route metadata generation passed.&lt;/li&gt;
        &lt;li&gt;Live RSS requests passed for all 19 new categories.&lt;/li&gt;
        &lt;li&gt;Checked unique GUIDs, publication dates, login-page exclusion, and the built-in &lt;code&gt;limit&lt;/code&gt; parameter.&lt;/li&gt;
        &lt;/ul&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/pull/23632</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/pull/23632</guid>
      <pubDate>Tue, 20 Oct 2026 03:46:06 GMT</pubDate>
      <dc:creator>BeaCox</dc:creator>
    </item>
    <item>
      <title>fix(sjtu): correct CS feed dates and failed detail caching</title>
      <description>&lt;h2&gt;Involved Issue / 该 PR 相关 Issue&lt;/h2&gt;
        &lt;h2&gt;Example for the Proposed Route(s) / 路由地址示例&lt;/h2&gt;
        &lt;!--
        Please include route starts with /, with all required and optional parameters.
        Fail to comply will result in your pull request being closed automatically.
        请在 `routes` 区域填写以 / 开头的完整路由地址,否则你的 PR 将会被无条件关闭。
        如果路由包含在文档中列出可以完全穷举的参数(例如分类),请依次全部列出。
        ```routes
        /some/route
        /some/other/route
        /dont/use/this/or/modify/it
        /use/the/fenced/code/block/below
        ```
        If your changes are not related to route, please fill in `routes` section with `NOROUTE`. Fail to comply will result in your PR being closed.
        如果你的 PR 与路由无关, 请在 `routes` 区域 填写 `NOROUTE`,而不是直接删除 `routes` 区域。否则你的 PR 将会被无条件关闭。
        --&gt;
        &lt;pre&gt;&lt;code class=&quot;language-routes&quot;&gt;/sjtu/cs/tzgg/bkspy
        /sjtu/cs/tzgg/yjspy
        /sjtu/cs/tzgg/gjjl
        /sjtu/cs/tzgg/djdy
        /sjtu/cs/tzgg/txgz
        /sjtu/cs/tzgg/zyfz
        /sjtu/cs/tzgg/qt
        /sjtu/cs/xshd
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h2&gt;New RSS Route Checklist / 新 RSS 路由检查表&lt;/h2&gt;
        &lt;ul&gt;
        &lt;li&gt;[ ] New Route / 新的路由
        &lt;ul&gt;
        &lt;li&gt;[ ] Follows &lt;a href=&quot;https://docs.rsshub.app/joinus/advanced/script-standard&quot;&gt;Script Standard&lt;/a&gt; / 跟随 &lt;a href=&quot;https://docs.rsshub.app/zh/joinus/advanced/script-standard&quot;&gt;路由规范&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[ ] Anti-bot or rate limit / 反爬/频率限制
        &lt;ul&gt;
        &lt;li&gt;[ ] If yes, do your code reflect this sign? / 如果有, 是否有对应的措施?&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[x] &lt;a href=&quot;https://docs.rsshub.app/joinus/advanced/pub-date&quot;&gt;Date and time&lt;/a&gt; / &lt;a href=&quot;https://docs.rsshub.app/zh/joinus/advanced/pub-date&quot;&gt;日期和时间&lt;/a&gt;
        &lt;ul&gt;
        &lt;li&gt;[x] Parsed / 可以解析&lt;/li&gt;
        &lt;li&gt;[x] Correct time zone / 时区正确&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[ ] New package added / 添加了新的包&lt;/li&gt;
        &lt;li&gt;[ ] &lt;code&gt;Puppeteer&lt;/code&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;h2&gt;Note / 说明&lt;/h2&gt;
        &lt;p&gt;Fix date handling and detail caching in the SJTU CS notice and academic activity routes.&lt;/p&gt;
        &lt;ul&gt;
        &lt;li&gt;Parse campus publication dates as UTC+8 instead of UTC.&lt;/li&gt;
        &lt;li&gt;Stop caching failed WeChat detail fetches as empty content, allowing subsequent requests to retry.&lt;/li&gt;
        &lt;li&gt;Keep activity posters when full content is unavailable.&lt;/li&gt;
        &lt;li&gt;Log detail-fetch failures and provide a clear error for notice categories without public entries.&lt;/li&gt;
        &lt;li&gt;Bump detail cache keys to invalidate previously cached results.&lt;/li&gt;
        &lt;/ul&gt;
        &lt;p&gt;Validation:&lt;/p&gt;
        &lt;ul&gt;
        &lt;li&gt;TypeScript, targeted ESLint/Oxlint, and formatting checks passed.&lt;/li&gt;
        &lt;li&gt;Live checks returned 18 academic activities and feeds for all five non-empty notice categories.&lt;/li&gt;
        &lt;li&gt;Verified retry behavior after failed detail extraction and caching after successful extraction.&lt;/li&gt;
        &lt;/ul&gt;
        &lt;p&gt;The &lt;code&gt;djdy&lt;/code&gt; and &lt;code&gt;txgz&lt;/code&gt; categories currently return no public entries from the source API. They continue to return an error, now with an actionable message.&lt;/p&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/pull/23631</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/pull/23631</guid>
      <pubDate>Tue, 20 Oct 2026 02:34:07 GMT</pubDate>
      <dc:creator>BeaCox</dc:creator>
    </item>
    <item>
      <title>chore: integrate knip</title>
      <description>&lt;h2&gt;Involved Issue / 该 PR 相关 Issue&lt;/h2&gt;
        &lt;p&gt;Close #&lt;/p&gt;
        &lt;h2&gt;Example for the Proposed Route(s) / 路由地址示例&lt;/h2&gt;
        &lt;pre&gt;&lt;code class=&quot;language-routes&quot;&gt;/cline/blog
        /infzm/1
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h2&gt;New RSS Route Checklist / 新 RSS 路由检查表&lt;/h2&gt;
        &lt;ul&gt;
        &lt;li&gt;[ ] New Route / 新的路由
        &lt;ul&gt;
        &lt;li&gt;[ ] Follows &lt;a href=&quot;https://docs.rsshub.app/joinus/advanced/script-standard&quot;&gt;Script Standard&lt;/a&gt; / 跟随 &lt;a href=&quot;https://docs.rsshub.app/zh/joinus/advanced/script-standard&quot;&gt;路由规范&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[ ] Anti-bot or rate limit / 反爬/频率限制
        &lt;ul&gt;
        &lt;li&gt;[ ] If yes, do your code reflect this sign? / 如果有, 是否有对应的措施?&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[ ] &lt;a href=&quot;https://docs.rsshub.app/joinus/advanced/pub-date&quot;&gt;Date and time&lt;/a&gt; / &lt;a href=&quot;https://docs.rsshub.app/zh/joinus/advanced/pub-date&quot;&gt;日期和时间&lt;/a&gt;
        &lt;ul&gt;
        &lt;li&gt;[ ] Parsed / 可以解析&lt;/li&gt;
        &lt;li&gt;[ ] Correct time zone / 时区正确&lt;/li&gt;
        &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;[ ] New package added / 添加了新的包&lt;/li&gt;
        &lt;li&gt;[ ] &lt;code&gt;Puppeteer&lt;/code&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;h2&gt;Note / 说明&lt;/h2&gt;
        &lt;p&gt;Integrates &lt;a href=&quot;https://knip.dev/&quot;&gt;knip&lt;/a&gt; to find unused files, exports, dependencies and circular imports. It runs as &lt;code&gt;pnpm knip&lt;/code&gt; and as a step in the lint

...

@github-actions

Copy link
Copy Markdown
Contributor
http://localhost:1200/github/issue/DIYgod/RSSHub - Success ✔️
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>DIYgod/RSSHub Issues</title>
    <link>https://github.com/DIYgod/RSSHub/issues</link>
    <atom:link href="http://localhost:1200/github/issue/DIYgod/RSSHub" rel="self" type="application/rss+xml"></atom:link>
    <description>DIYgod/RSSHub Issues - Powered by RSSHub</description>
    <generator>RSSHub</generator>
    <webMaster>contact@rsshub.app (RSSHub)</webMaster>
    <language>en</language>
    <lastBuildDate>Thu, 29 Oct 2026 08:37:08 GMT</lastBuildDate>
    <ttl>5</ttl>
    <item>
      <title>deploy: 提供一种不依赖于 pull App 的自动更新 fork 的方式</title>
      <description>&lt;h3&gt;这是一个什么样的功能?&lt;/h3&gt;
        &lt;p&gt;提供一种不依赖于 pull App 的自动更新 fork 的方式。比如使用 github actions ,就像 &lt;a href=&quot;https://github.com/aozorae/Edgechat&quot;&gt;Edgechat&lt;/a&gt; 做的那样(&lt;a href=&quot;https://github.com/aozorae/Edgechat/blob/master/.github/workflows/sync-upstream.yml&quot;&gt;workflow&lt;/a&gt;,&lt;a href=&quot;https://echat.azora.top/guide/auto-update.html&quot;&gt;文档&lt;/a&gt;)。&lt;/p&gt;
        &lt;h3&gt;这个功能可以解决什么问题?&lt;/h3&gt;
        &lt;p&gt;提供一种不依赖于 pull App 的自动更新 fork 的方式。目前部署方式&lt;code&gt;vercel&lt;/code&gt;通过 &lt;a href=&quot;https://github.com/apps/pull&quot;&gt;Pull App&lt;/a&gt; 来和上游 &lt;a href=&quot;https://github.com/DIYgod/RSSHub&quot;&gt;https://github.com/DIYgod/RSSHub&lt;/a&gt; 同步,但是&lt;code&gt;This GitHub App was suspended by GitHub staff on October 1st, 2026 at 00:36 (HKT).&lt;/code&gt;(见 &lt;a href=&quot;https://github.com/wei/pull/issues/674&quot;&gt;https://github.com/wei/pull/issues/674&lt;/a&gt;) 。&lt;/p&gt;
        &lt;h3&gt;额外描述&lt;/h3&gt;
        &lt;p&gt;&lt;em&gt;No response&lt;/em&gt;&lt;/p&gt;
        &lt;h3&gt;这不是重复的功能请求和 RSS 提案&lt;/h3&gt;
        &lt;ul&gt;
        &lt;li&gt;[x] 我已经搜索了 &lt;a href=&quot;https://github.com/DIYgod/RSSHub/issues&quot;&gt;现有 issue&lt;/a&gt;,以确保这项功能尚未被请求及不是 &lt;a href=&quot;https://github.com/DIYgod/RSSHub/issues/new?assignees=&amp;amp;labels=RSS+proposal&amp;amp;template=rss_request_zh.yml&quot;&gt;新的 RSS 提案&lt;/a&gt;。&lt;/li&gt;
        &lt;/ul&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/issues/23673</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/issues/23673</guid>
      <pubDate>Sat, 24 Oct 2026 07:16:51 GMT</pubDate>
      <dc:creator>a012-alex</dc:creator>
    </item>
    <item>
      <title>Instagram RSS feed Bug</title>
      <description>&lt;h3&gt;Routes&lt;/h3&gt;
        &lt;pre&gt;&lt;code class=&quot;language-routes&quot;&gt;/instagram/:category/:key
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h3&gt;Full routes&lt;/h3&gt;
        &lt;pre&gt;&lt;code class=&quot;language-fullroutes&quot;&gt;http://localhost:1200/instagram/user/&amp;lt;username_of_public_account&amp;gt;
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h3&gt;Related documentation&lt;/h3&gt;
        &lt;p&gt;&lt;a href=&quot;https://docs.rsshub.app/deploy/config#configuration-route-specific-configurations-instagram&quot;&gt;https://docs.rsshub.app/deploy/config#configuration-route-specific-configurations-instagram&lt;/a&gt;&lt;/p&gt;
        &lt;h3&gt;What is expected?&lt;/h3&gt;
        &lt;p&gt;RSS feed of the public instagram accounts&lt;/p&gt;
        &lt;h3&gt;What is actually happening?&lt;/h3&gt;
        &lt;p&gt;getting invalid cookie error even after passing the valid session_id and ds_user_id of the instagram session&lt;/p&gt;
        &lt;h3&gt;Deployment information&lt;/h3&gt;
        &lt;p&gt;Self-hosted&lt;/p&gt;
        &lt;h3&gt;Deployment information (for self-hosted)&lt;/h3&gt;
        &lt;p&gt;Docker: Docker version 29.8.2, build 7fc2dff, environment variables: ds_user_id, session_id&lt;/p&gt;
        &lt;h3&gt;Additional info&lt;/h3&gt;
        &lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;info: 🎉 RSSHub is running on port 1200! Cheers!
        info: 🔗 Local: 👉 http://localhost:1200
        info: 🔗 Network: 👉 http://172.17.0.2:1200
        info: 🔗 Network: 👉 http://[::]:1200
        info: &amp;lt;-- GET /instagram/user/ktm_india
        error: Error in /instagram/user/ktm_india: Error: Invalid cookie
        info: --&amp;gt; GET /instagram/user/ktm_india 503 5s
        info: &amp;lt;-- GET /logo.png
        info: --&amp;gt; GET /logo.png 200 3ms
        info: &amp;lt;-- GET /favicon.ico
        info: --&amp;gt; GET /favicon.ico 200 1ms
        info: &amp;lt;-- GET /instagram/user/ktm_india
        error: Error in /instagram/user/ktm_india: Error: Invalid cookie
        info: --&amp;gt; GET /instagram/user/ktm_india 503 4s
        info: &amp;lt;-- GET /instagram/user/ktm_india
        error: Error in /instagram/user/ktm_india: Error: Invalid cookie
        info: --&amp;gt; GET /instagram/user/ktm_india 503 4s
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h3&gt;This is not a duplicated issue&lt;/h3&gt;
        &lt;ul&gt;
        &lt;li&gt;[x] I have searched &lt;a href=&quot;https://github.com/DIYgod/RSSHub/issues&quot;&gt;existing issues&lt;/a&gt; to ensure this bug has not already been reported&lt;/li&gt;
        &lt;/ul&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/issues/23652</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/issues/23652</guid>
      <pubDate>Wed, 21 Oct 2026 16:03:04 GMT</pubDate>
      <dc:creator>Tarun-S-B</dc:creator>
    </item>
    <item>
      <title>获取快手用户接口失败</title>
      <description>&lt;h3&gt;路由地址&lt;/h3&gt;
        &lt;pre&gt;&lt;code class=&quot;language-routes&quot;&gt;/kuaishou/profile/:principalId
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h3&gt;完整路由地址&lt;/h3&gt;
        &lt;pre&gt;&lt;code class=&quot;language-fullroutes&quot;&gt;https://rsshub.app/kuaishou/profile/3xk46q9cdnvgife
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h3&gt;相关文档&lt;/h3&gt;
        &lt;p&gt;&lt;a href=&quot;https://docs.rsshub.app/zh/routes/kuaishou&quot;&gt;https://docs.rsshub.app/zh/routes/kuaishou&lt;/a&gt;&lt;/p&gt;
        &lt;h3&gt;预期是什么?&lt;/h3&gt;
        &lt;p&gt;能正常返回rss&lt;/p&gt;
        &lt;h3&gt;实际发生了什么?&lt;/h3&gt;
        &lt;p&gt;包括信息:Error: this route is empty, please check the original site or &lt;a href=&quot;https://github.com/DIYgod/RSSHub/issues/new/choose&quot;&gt;create an issue&lt;/a&gt;&lt;/p&gt;
        &lt;img width=&quot;1266&quot; height=&quot;902&quot; alt=&quot;Image&quot; src=&quot;https://github.com/user-attachments/assets/cf1ac098-cd70-47af-9a50-42b3d3fffa9a&quot; referrerpolicy=&quot;no-referrer&quot;&gt;
        我看快手相关账号也是有的:https://www.kuaishou.com/profile/3xk46q9cdnvgife
        &lt;h3&gt;部署&lt;/h3&gt;
        &lt;p&gt;RSSHub 演示 (&lt;a href=&quot;https://rsshub.app/&quot;&gt;https://rsshub.app&lt;/a&gt;)&lt;/p&gt;
        &lt;h3&gt;部署相关信息&lt;/h3&gt;
        &lt;p&gt;&lt;em&gt;No response&lt;/em&gt;&lt;/p&gt;
        &lt;h3&gt;额外信息&lt;/h3&gt;
        &lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;无
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h3&gt;这不是重复的 issue&lt;/h3&gt;
        &lt;ul&gt;
        &lt;li&gt;[x] 我已经搜索了 &lt;a href=&quot;https://github.com/DIYgod/RSSHub/issues&quot;&gt;现有 issue&lt;/a&gt;,以确保该错误尚未被报告。&lt;/li&gt;
        &lt;/ul&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/issues/23602</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/issues/23602</guid>
      <pubDate>Fri, 16 Oct 2026 09:49:56 GMT</pubDate>
      <dc:creator>egege</dc:creator>
    </item>
    <item>
      <title>API for dynamically setting and getting cookies</title>
      <description>&lt;h3&gt;What feature is it?&lt;/h3&gt;
        &lt;p&gt;add http API for dynamically setting and getting cookies in a cookies jar txt format&lt;/p&gt;
        &lt;p&gt;the api should be protected by http auth&lt;/p&gt;
        &lt;h3&gt;What problem does this feature solve?&lt;/h3&gt;
        &lt;p&gt;it would allow third-party userscript or browser plugin to sync cookies with RSSHub&lt;/p&gt;
        &lt;h3&gt;Additional description&lt;/h3&gt;
        &lt;p&gt;API for dynamically setting and getting cookies&lt;/p&gt;
        &lt;h3&gt;This is not a duplicated feature request or new RSS proposal&lt;/h3&gt;
        &lt;ul&gt;
        &lt;li&gt;[x] I have searched &lt;a href=&quot;https://github.com/DIYgod/RSSHub/issues&quot;&gt;existing issues&lt;/a&gt; to ensure this feature has not already been requested and this is not a &lt;a href=&quot;https://github.com/DIYgod/RSSHub/issues/new?assignees=&amp;amp;labels=RSS+proposal&amp;amp;template=rss_request_en.yml&quot;&gt;new RSS proposal&lt;/a&gt;.&lt;/li&gt;
        &lt;/ul&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/issues/21086</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/issues/21086</guid>
      <pubDate>Sun, 08 Feb 2026 07:08:16 GMT</pubDate>
      <dc:creator>runny4184</dc:creator>
    </item>
    <item>
      <title>微博无法播放视频和Live photo</title>
      <description>&lt;h3&gt;路由地址&lt;/h3&gt;
        &lt;pre&gt;&lt;code class=&quot;language-routes&quot;&gt;/weibo/user/:uid/:routeParams?
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h3&gt;完整路由地址&lt;/h3&gt;
        &lt;pre&gt;&lt;code class=&quot;language-fullroutes&quot;&gt;/weibo/user/:uid/:routeParams?
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h3&gt;相关文档&lt;/h3&gt;
        &lt;p&gt;/weibo/user/:uid/:routeParams?&lt;/p&gt;
        &lt;h3&gt;预期是什么?&lt;/h3&gt;
        &lt;p&gt;阅读器freshrss订阅后,无法播放微博的视频和Live photo&lt;/p&gt;
        &lt;h3&gt;实际发生了什么?&lt;/h3&gt;
        &lt;p&gt;微博的视频和Live photo一直转圈&lt;/p&gt;
        &lt;h3&gt;部署&lt;/h3&gt;
        &lt;p&gt;自建&lt;/p&gt;
        &lt;h3&gt;部署相关信息&lt;/h3&gt;
        &lt;p&gt;&lt;em&gt;No response&lt;/em&gt;&lt;/p&gt;
        &lt;h3&gt;额外信息&lt;/h3&gt;
        &lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;无
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h3&gt;这不是重复的 issue&lt;/h3&gt;
        &lt;ul&gt;
        &lt;li&gt;[x] 我已经搜索了 &lt;a href=&quot;https://github.com/DIYgod/RSSHub/issues&quot;&gt;现有 issue&lt;/a&gt;,以确保该错误尚未被报告。&lt;/li&gt;
        &lt;/ul&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/issues/20913</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/issues/20913</guid>
      <pubDate>Sun, 18 Jan 2026 12:08:25 GMT</pubDate>
      <dc:creator>nightescort1-svg</dc:creator>
    </item>
    <item>
      <title>【Bug】雪球无法使用</title>
      <description>&lt;h3&gt;路由地址&lt;/h3&gt;
        &lt;pre&gt;&lt;code class=&quot;language-routes&quot;&gt;/xueqiu/user_stock/:id
        /xueqiu/snb/:id
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h3&gt;完整路由地址&lt;/h3&gt;
        &lt;pre&gt;&lt;code class=&quot;language-fullroutes&quot;&gt;/xueqiu/user_stock/:id
        /xueqiu/snb/:id
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h3&gt;相关文档&lt;/h3&gt;
        &lt;p&gt;&lt;a href=&quot;https://docs.rsshub.app/routes/finance#%E7%94%A8%E6%88%B7%E8%87%AA%E9%80%89%E5%8A%A8%E6%80%81&quot;&gt;https://docs.rsshub.app/routes/finance#用户自选动态&lt;/a&gt;&lt;/p&gt;
        &lt;h3&gt;预期是什么?&lt;/h3&gt;
        &lt;p&gt;获取到相关信息&lt;/p&gt;
        &lt;h3&gt;实际发生了什么?&lt;/h3&gt;
        &lt;p&gt;Helpful Information&lt;/p&gt;
        &lt;p&gt;Error Message:
        TypeError: Cannot read properties of null (reading &#39;1&#39;)&lt;/p&gt;
        &lt;p&gt;Route: /xueqiu/snb/:id&lt;/p&gt;
        &lt;p&gt;Full Route: /xueqiu/snb/ZH2175195&lt;/p&gt;
        &lt;p&gt;Node Version: v22.19.0&lt;/p&gt;
        &lt;p&gt;Git Hash: 3a219bb3&lt;/p&gt;
        &lt;p&gt;Git Date: Fri, 12 Sep 2025 15:45:40 GMT&lt;/p&gt;
        &lt;h3&gt;部署&lt;/h3&gt;
        &lt;p&gt;RSSHub 演示 (&lt;a href=&quot;https://rsshub.app/&quot;&gt;https://rsshub.app&lt;/a&gt;)&lt;/p&gt;
        &lt;h3&gt;部署相关信息&lt;/h3&gt;
        &lt;p&gt;&lt;em&gt;No response&lt;/em&gt;&lt;/p&gt;
        &lt;h3&gt;额外信息&lt;/h3&gt;
        &lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;2025-09-14 10:39:35.279] info: &amp;lt;-- GET /xueqiu/snb/ZH2175195
        [2025-09-14 10:39:35.531] error: Error in /xueqiu/snb/ZH2175195: TypeError: Cannot read properties of null (reading &#39;1&#39;)
        [2025-09-14 10:39:35.533] info: --&amp;gt; GET /xueqiu/snb/ZH2175195 503 254ms
        [2025-09-14 10:39:35.692] info: &amp;lt;-- GET /logo.png
        [2025-09-14 10:39:35.693] info: --&amp;gt; GET /logo.png 200 1ms
        [2025-09-14 10:39:35.845] info: &amp;lt;-- GET /favicon.ico
        [2025-09-14 10:39:35.846] info: --&amp;gt; GET /favicon.ico 200 1ms
        我已经加入了 Cookie 依旧无法解决。
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h3&gt;这不是重复的 issue&lt;/h3&gt;
        &lt;ul&gt;
        &lt;li&gt;[x] 我已经搜索了 &lt;a href=&quot;https://github.com/DIYgod/RSSHub/issues&quot;&gt;现有 issue&lt;/a&gt;,以确保该错误尚未被报告。&lt;/li&gt;
        &lt;/ul&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/issues/20049</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/issues/20049</guid>
      <pubDate>Sun, 14 Sep 2025 02:41:01 GMT</pubDate>
      <dc:creator>9k001</dc:creator>
    </item>
    <item>
      <title>Xueqiu cannot use</title>
      <description>&lt;h3&gt;路由地址&lt;/h3&gt;
        &lt;pre&gt;&lt;code class=&quot;language-routes&quot;&gt;/xueqiu/column/:id
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h3&gt;完整路由地址&lt;/h3&gt;
        &lt;pre&gt;&lt;code class=&quot;language-fullroutes&quot;&gt;/xueqiu/column/5539280156
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h3&gt;相关文档&lt;/h3&gt;
        &lt;p&gt;&lt;a href=&quot;https://docs.rsshub.app/routes/finance#%E7%94%A8%E6%88%B7%E4%B8%93%E6%A0%8F&quot;&gt;https://docs.rsshub.app/routes/finance#用户专栏&lt;/a&gt;&lt;/p&gt;
        &lt;h3&gt;预期是什么?&lt;/h3&gt;
        &lt;p&gt;Can respond normally&lt;/p&gt;
        &lt;h3&gt;实际发生了什么?&lt;/h3&gt;
        &lt;p&gt;Can not use&lt;/p&gt;
        &lt;p&gt;Helpful Information&lt;/p&gt;
        &lt;p&gt;Error Message:
        TypeError: Cannot read properties of undefined (reading &#39;map&#39;)&lt;/p&gt;
        &lt;p&gt;Route: /xueqiu/column/:id&lt;/p&gt;
        &lt;p&gt;Full Route: /xueqiu/column/5539280156&lt;/p&gt;
        &lt;p&gt;Node Version: v22.11.0&lt;/p&gt;
        &lt;p&gt;Git Hash: 2070264d&lt;/p&gt;
        &lt;p&gt;Git Date: Wed, 20 Nov 2024 15:58:39 GMT&lt;/p&gt;
        &lt;h3&gt;部署&lt;/h3&gt;
        &lt;p&gt;自建&lt;/p&gt;
        &lt;h3&gt;部署相关信息&lt;/h3&gt;
        &lt;p&gt;&lt;em&gt;No response&lt;/em&gt;&lt;/p&gt;
        &lt;h3&gt;额外信息&lt;/h3&gt;
        &lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;Helpful Information
        Error Message:
        TypeError: Cannot read properties of undefined (reading &#39;map&#39;)
        Route: /xueqiu/column/:id
        Full Route: /xueqiu/column/5539280156
        Node Version: v22.11.0
        Git Hash: 2070264d
        Git Date: Wed, 20 Nov 2024 15:58:39 GMT
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h3&gt;这不是重复的 issue&lt;/h3&gt;
        &lt;ul&gt;
        &lt;li&gt;[X] 我已经搜索了 &lt;a href=&quot;https://github.com/DIYgod/RSSHub/issues&quot;&gt;现有 issue&lt;/a&gt;,以确保该错误尚未被报告。&lt;/li&gt;
        &lt;/ul&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/issues/17859</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/issues/17859</guid>
      <pubDate>Wed, 11 Dec 2024 01:48:27 GMT</pubDate>
      <dc:creator>hellofreud</dc:creator>
    </item>
    <item>
      <title>Deploy to Railway failed</title>
      <description>&lt;h3&gt;Routes&lt;/h3&gt;
        &lt;pre&gt;&lt;code class=&quot;language-routes&quot;&gt;NOROUTE
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h3&gt;Full routes&lt;/h3&gt;
        &lt;pre&gt;&lt;code class=&quot;language-fullroutes&quot;&gt;NOROUTE
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h3&gt;Related documentation&lt;/h3&gt;
        &lt;p&gt;&lt;a href=&quot;https://docs.rsshub.app/deploy/#deploy-to-railway&quot;&gt;https://docs.rsshub.app/deploy/#deploy-to-railway&lt;/a&gt;&lt;/p&gt;
        &lt;h3&gt;What is expected?&lt;/h3&gt;
        &lt;p&gt;able to deploy on railway using default DockerFile&lt;/p&gt;
        &lt;h3&gt;What is actually happening?&lt;/h3&gt;
        &lt;p&gt;not able to deploy on railway using default DockerFile&lt;/p&gt;
        &lt;h3&gt;Deployment information&lt;/h3&gt;
        &lt;p&gt;Self-hosted&lt;/p&gt;
        &lt;h3&gt;Deployment information (for self-hosted)&lt;/h3&gt;
        &lt;p&gt;Railway&lt;/p&gt;
        &lt;h3&gt;Additional info&lt;/h3&gt;
        &lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;error This project&#39;s package.json defines &quot;packageManager&quot;: &quot;yarn@pnpm@9.12.3&quot;. However the current global version of Yarn is 1.22.22.
        Presence of the &quot;packageManager&quot; field indicates that the project is meant to be used with Corepack, a tool included by default with all official Node.js distributions starting from 16.9 and 14.19.
        Corepack must currently be enabled by running corepack enable in your terminal. For more information, check out https://yarnpkg.com/corepack.
        error This project&#39;s package.json defines &quot;packageManager&quot;: &quot;yarn@pnpm@9.12.3&quot;. However the current global version of Yarn is 1.22.22.
        Presence of the &quot;packageManager&quot; field indicates that the project is meant to be used with Corepack, a tool included by default with all official Node.js distributions starting from 16.9 and 14.19.
        Corepack must currently be enabled by running corepack enable in your terminal. For more information, check out https://yarnpkg.com/corepack.
        error This project&#39;s package.json defines &quot;packageManager&quot;: &quot;yarn@pnpm@9.12.3&quot;. However the current global version of Yarn is 1.22.22.
        Presence of the &quot;packageManager&quot; field indicates that the project is meant to be used with Corepack, a tool included by default with all official Node.js distributions starting from 16.9 and 14.19.
        Corepack must currently be enabled by running corepack enable in your terminal. For more information, check out https://yarnpkg.com/corepack.
        error This project&#39;s package.json defines &quot;packageManager&quot;: &quot;yarn@pnpm@9.12.3&quot;. However the current global version of Yarn is 1.22.22.
        Presence of the &quot;packageManager&quot; field indicates that the project is meant to be used with Corepack, a tool included by default with all official Node.js distributions starting from 16.9 and 14.19.
        Corepack must currently be enabled by running corepack enable in your terminal. For more information, check out https://yarnpkg.com/corepack.
        error This project&#39;s package.json defines &quot;packageManager&quot;: &quot;yarn@pnpm@9.12.3&quot;. However the current global version of Yarn is 1.22.22.
        Presence of the &quot;packageManager&quot; field indicates that the project is meant to be used with Corepack, a tool included by default with all official Node.js distributions starting from 16.9 and 14.19.
        Corepack must currently be enabled by running corepack enable in your terminal. For more information, check out https://yarnpkg.com/corepack.
        error This project&#39;s package.json defines &quot;packageManager&quot;: &quot;yarn@pnpm@9.12.3&quot;. However the current global version of Yarn is 1.22.22.
        Presence of the &quot;packageManager&quot; field indicates that the project is meant to be used with Corepack, a tool included by default with all official Node.js distributions starting from 16.9 and 14.19.
        Corepack must currently be enabled by running corepack enable in your terminal. For more information, check out https://yarnpkg.com/corepack.
        error This project&#39;s package.json defines &quot;packageManager&quot;: &quot;yarn@pnpm@9.12.3&quot;. However the current global version of Yarn is 1.22.22.
        Presence of the &quot;packageManager&quot; field indicates that the project is meant to be used with Corepack, a tool included by default with all official Node.js distributions starting from 16.9 and 14.19.
        Corepack must currently be enabled by running corepack enable in your terminal. For more information, check out https://yarnpkg.com/corepack.
        error This project&#39;s package.json defines &quot;packageManager&quot;: &quot;yarn@pnpm@9.12.3&quot;. However the current global version of Yarn is 1.22.22.
        Presence of the &quot;packageManager&quot; field indicates that the project is meant to be used with Corepack, a tool included by default with all official Node.js distributions starting from 16.9 and 14.19.
        Corepack must currently be enabled by running corepack enable in your terminal. For more information, check out https://yarnpkg.com/corepack.
        error This project&#39;s package.json defines &quot;packageManager&quot;: &quot;yarn@pnpm@9.12.3&quot;. However the current global version of Yarn is 1.22.22.
        Presence of the &quot;packageManager&quot; field indicates that the project is meant to be used with Corepack, a tool included by default with all official Node.js distributions starting from 16.9 and 14.19.
        Corepack must currently be enabled by running corepack enable in your terminal. For more information, check out https://yarnpkg.com/corepack.
        error This project&#39;s package.json defines &quot;packageManager&quot;: &quot;yarn@pnpm@9.12.3&quot;. However the current global version of Yarn is 1.22.22.
        &lt;/code&gt;&lt;/pre&gt;
        &lt;h3&gt;This is not a duplicated issue&lt;/h3&gt;
        &lt;ul&gt;
        &lt;li&gt;[X] I have searched &lt;a href=&quot;https://github.com/DIYgod/RSSHub/issues&quot;&gt;existing issues&lt;/a&gt; to ensure this bug has not already been reported&lt;/li&gt;
        &lt;/ul&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/issues/17684</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/issues/17684</guid>
      <pubDate>Fri, 22 Nov 2024 14:47:14 GMT</pubDate>
      <dc:creator>iBenjamin</dc:creator>
    </item>
    <item>
      <title>New route require: 清华大学办公信息网</title>
      <description>&lt;h3&gt;类型&lt;/h3&gt;
        &lt;p&gt;社交媒体&lt;/p&gt;
        &lt;h3&gt;网站地址&lt;/h3&gt;
        &lt;p&gt;&lt;a href=&quot;https://xxbg.cic.tsinghua.edu.cn/oath/list.jsp?boardid=&quot;&gt;https://xxbg.cic.tsinghua.edu.cn/oath/list.jsp?boardid=&lt;/a&gt;&lt;/p&gt;
        &lt;h3&gt;网站描述&lt;/h3&gt;
        &lt;p&gt;学校办公信息的发布平台(仅校内可访问)&lt;/p&gt;
        &lt;h3&gt;需要生成什么内容?&lt;/h3&gt;
        &lt;p&gt;将动态资讯组织成 RSS 的格式输出。&lt;/p&gt;
        &lt;p&gt;目前我自己在使用的链接有:&lt;/p&gt;
        &lt;ul&gt;
        &lt;li&gt;&lt;a href=&quot;https://xxbg.cic.tsinghua.edu.cn/oath/list.jsp?boardid=2710&quot;&gt;https://xxbg.cic.tsinghua.edu.cn/oath/list.jsp?boardid=2710&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://xxbg.cic.tsinghua.edu.cn/oath/list.jsp?boardid=22&quot;&gt;https://xxbg.cic.tsinghua.edu.cn/oath/list.jsp?boardid=22&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://xxbg.cic.tsinghua.edu.cn/oath/list.jsp?boardid=3303&quot;&gt;https://xxbg.cic.tsinghua.edu.cn/oath/list.jsp?boardid=3303&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;p&gt;boardid 可以作为参数。&lt;/p&gt;
        &lt;h3&gt;额外描述&lt;/h3&gt;
        &lt;p&gt;解析部分可以参考一下这里的实现:&lt;/p&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/Konano/thu-info-forwarder/blob/9c7a6d713afe785e90560f22abaa6ea3e101359c/crawler.py#L172-L200&quot;&gt;https://github.com/Konano/thu-info-forwarder/blob/9c7a6d713afe785e90560f22abaa6ea3e101359c/crawler.py#L172-L200&lt;/a&gt;&lt;/p&gt;
        &lt;h3&gt;这不是重复的 RSS 请求&lt;/h3&gt;
        &lt;ul&gt;
        &lt;li&gt;[X] 我已经搜索了&lt;a href=&quot;https://github.com/DIYgod/RSSHub/issues&quot;&gt;现有 issue&lt;/a&gt; 和 &lt;a href=&quot;https://github.com/DIYgod/RSSHub/pulls&quot;&gt;pull requests&lt;/a&gt;,以确保该 RSS 尚未被请求。&lt;/li&gt;
        &lt;/ul&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/issues/16817</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/issues/16817</guid>
      <pubDate>Thu, 19 Sep 2024 11:45:44 GMT</pubDate>
      <dc:creator>Konano</dc:creator>
    </item>
    <item>
      <title>New route require: 清华大学家园网新闻</title>
      <description>&lt;h3&gt;类型&lt;/h3&gt;
        &lt;p&gt;大学通知&lt;/p&gt;
        &lt;h3&gt;网站地址&lt;/h3&gt;
        &lt;p&gt;&lt;a href=&quot;http://myhome.tsinghua.edu.cn/Netweb_List/News_notice.aspx&quot;&gt;http://myhome.tsinghua.edu.cn/Netweb_List/News_notice.aspx&lt;/a&gt;&lt;/p&gt;
        &lt;h3&gt;网站描述&lt;/h3&gt;
        &lt;p&gt;校内和住宿相关信息的主要发布平台(仅校内可访问)&lt;/p&gt;
        &lt;h3&gt;需要生成什么内容?&lt;/h3&gt;
        &lt;p&gt;将动态资讯组织成 RSS 的格式输出。&lt;/p&gt;
        &lt;h3&gt;额外描述&lt;/h3&gt;
        &lt;p&gt;解析部分可以参考一下这里的实现:&lt;/p&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/Konano/thu-info-forwarder/blob/9c7a6d713afe785e90560f22abaa6ea3e101359c/crawler.py#L90-L117&quot;&gt;https://github.com/Konano/thu-info-forwarder/blob/9c7a6d713afe785e90560f22abaa6ea3e101359c/crawler.py#L90-L117&lt;/a&gt;&lt;/p&gt;
        &lt;h3&gt;这不是重复的 RSS 请求&lt;/h3&gt;
        &lt;ul&gt;
        &lt;li&gt;[X] 我已经搜索了&lt;a href=&quot;https://github.com/DIYgod/RSSHub/issues&quot;&gt;现有 issue&lt;/a&gt; 和 &lt;a href=&quot;https://github.com/DIYgod/RSSHub/pulls&quot;&gt;pull requests&lt;/a&gt;,以确保该 RSS 尚未被请求。&lt;/li&gt;
        &lt;/ul&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/issues/16814</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/issues/16814</guid>
      <pubDate>Thu, 19 Sep 2024 11:29:08 GMT</pubDate>
      <dc:creator>Konano</dc:creator>
    </item>
    <item>
      <title>New route require: 清华大学信息门户</title>
      <description>&lt;h3&gt;类型&lt;/h3&gt;
        &lt;p&gt;大学通知&lt;/p&gt;
        &lt;h3&gt;网站地址&lt;/h3&gt;
        &lt;p&gt;&lt;a href=&quot;https://info2021.tsinghua.edu.cn/&quot;&gt;https://info2021.tsinghua.edu.cn&lt;/a&gt;&lt;/p&gt;
        &lt;h3&gt;网站描述&lt;/h3&gt;
        &lt;p&gt;校内信息的主要发布平台(仅校内可访问)&lt;/p&gt;
        &lt;h3&gt;需要生成什么内容?&lt;/h3&gt;
        &lt;p&gt;将动态资讯组织成 RSS 的格式输出。&lt;/p&gt;
        &lt;p&gt;构思中的功能有以下几点:&lt;/p&gt;
        &lt;ul&gt;
        &lt;li&gt;[ ] 支持抓取「校内资讯 - 全部」内的动态:&lt;code&gt;https://info.tsinghua.edu.cn/b/info/xxfb_fg/xnzx/template/more?oType={oType}&amp;amp;lmid=all&amp;amp;lydw=&amp;amp;currentPage=1&amp;amp;length=30&amp;amp;_csrf=&lt;/code&gt;&lt;/li&gt;
        &lt;li&gt;[ ] 支持抓取「活动日程 - 学术活动」内的动态:&lt;code&gt;https://info.tsinghua.edu.cn/b/hdrc_fg/index/all?_csrf=&lt;/code&gt;&lt;/li&gt;
        &lt;li&gt;[ ] 支持通过 &lt;code&gt;oType&lt;/code&gt; 指定学生版信息门户 / 教职工版信息门户:xs: students, mr: teachers&lt;/li&gt;
        &lt;li&gt;[ ] 支持生成 WebVPN 链接并添加到元信息中&lt;/li&gt;
        &lt;/ul&gt;
        &lt;h3&gt;额外描述&lt;/h3&gt;
        &lt;p&gt;解析部分可以参考一下这里的实现:&lt;/p&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/Konano/thu-info-forwarder/blob/9c7a6d713afe785e90560f22abaa6ea3e101359c/crawler.py#L43-L87&quot;&gt;https://github.com/Konano/thu-info-forwarder/blob/9c7a6d713afe785e90560f22abaa6ea3e101359c/crawler.py#L43-L87&lt;/a&gt;&lt;/p&gt;
        &lt;h3&gt;这不是重复的 RSS 请求&lt;/h3&gt;
        &lt;ul&gt;
        &lt;li&gt;[X] 我已经搜索了&lt;a href=&quot;https://github.com/DIYgod/RSSHub/issues&quot;&gt;现有 issue&lt;/a&gt; 和 &lt;a href=&quot;https://github.com/DIYgod/RSSHub/pulls&quot;&gt;pull requests&lt;/a&gt;,以确保该 RSS 尚未被请求。&lt;/li&gt;
        &lt;/ul&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/issues/16813</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/issues/16813</guid>
      <pubDate>Thu, 19 Sep 2024 11:27:58 GMT</pubDate>
      <dc:creator>Konano</dc:creator>
    </item>
    <item>
      <title>Proposal for user system and user configuration</title>
      <description>&lt;h3&gt;What feature is it?&lt;/h3&gt;
        &lt;p&gt;Currently, each RSSHub instance has a fixed global configuration. Users who wish to customize their configurations can only do so by self-hosting their own RSSHub instance. However, many users lack the technical ability to self-host, which hampers the advancement of RSSHub.&lt;/p&gt;
        &lt;p&gt;For example, numerous users have recently inquired about subscribing to Twitter feeds. The only solution at present is self-hosting.&lt;/p&gt;
        &lt;p&gt;Therefore, I propose implementing a user system that enables users to log in and set up personal configurations to override the global configurations. This way, they can use their private addresses for subscriptions.&lt;/p&gt;
        &lt;h3&gt;What problem does this feature solve?&lt;/h3&gt;
        &lt;p&gt;As mentioned above.&lt;/p&gt;
        &lt;h3&gt;Additional description&lt;/h3&gt;
        &lt;p&gt;This feature offers the benefit of providing our official instance with a profit model to cover high operating costs and project development costs. However, it may also have the drawback of encouraging users to become overly dependent on the same instance.&lt;/p&gt;
        &lt;h3&gt;This is not a duplicated feature request or new RSS proposal&lt;/h3&gt;
        &lt;ul&gt;
        &lt;li&gt;[X] I have searched &lt;a href=&quot;https://github.com/DIYgod/RSSHub/issues&quot;&gt;existing issues&lt;/a&gt; to ensure this feature has not already been requested and this is not a &lt;a href=&quot;https://github.com/DIYgod/RSSHub/issues/new?assignees=&amp;amp;labels=RSS+proposal&amp;amp;template=rss_request_en.yml&quot;&gt;new RSS proposal&lt;/a&gt;.&lt;/li&gt;
        &lt;/ul&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/issues/14706</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/issues/14706</guid>
      <pubDate>Thu, 07 Mar 2024 12:31:05 GMT</pubDate>
      <dc:creator>DIYgod</dc:creator>
    </item>
    <item>
      <title>豆瓣抓取全文 新增IP归属地地址抓取</title>
      <description>&lt;h3&gt;这是一个什么样的功能?&lt;/h3&gt;
        &lt;p&gt;我在使用豆瓣路由抓取相关信息时,发现如下路由规则并不会抓取页面显示的关于作者or回帖人等相关个人信息的归属地,&lt;/p&gt;
        &lt;ol&gt;
        &lt;li&gt;用户广播&lt;/li&gt;
        &lt;li&gt;话题
        这样会导致二次过滤出现困扰。是否在抓取时,一并抓取IP归属地。
        感谢&lt;/li&gt;
        &lt;/ol&gt;
        &lt;h3&gt;这个功能可以解决什么问题?&lt;/h3&gt;
        &lt;p&gt;可以试用户更方便的二次过滤&lt;/p&gt;
        &lt;h3&gt;额外描述&lt;/h3&gt;
        &lt;p&gt;&lt;em&gt;No response&lt;/em&gt;&lt;/p&gt;
        &lt;h3&gt;这不是重复的功能请求和 RSS 提案&lt;/h3&gt;
        &lt;ul&gt;
        &lt;li&gt;[X] 我已经搜索了 &lt;a href=&quot;https://github.com/DIYgod/RSSHub/issues&quot;&gt;现有 issue&lt;/a&gt;,以确保这项功能尚未被请求及不是 &lt;a href=&quot;https://github.com/DIYgod/RSSHub/issues/new?assignees=&amp;amp;labels=RSS+proposal&amp;amp;template=rss_request_zh.yml&quot;&gt;新的 RSS 提案&lt;/a&gt;。&lt;/li&gt;
        &lt;/ul&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/issues/13501</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/issues/13501</guid>
      <pubDate>Wed, 11 Oct 2023 12:51:58 GMT</pubDate>
      <dc:creator>9k001</dc:creator>
    </item>
    <item>
      <title>小红书的关键词搜索订阅结果</title>
      <description>&lt;h3&gt;这是一个什么样的功能?&lt;/h3&gt;
        &lt;p&gt;订阅关键词,当有用户发表了包含该关键词的笔记时,出现在rss列表中。&lt;/p&gt;
        &lt;h3&gt;这个功能可以解决什么问题?&lt;/h3&gt;
        &lt;p&gt;目前小红书是最大的UGC社区(之一)了吧。我经常需要在小红书上搜索一些关键词,比如一些个人组织的读书会、徒步活动等等。每隔几个小时都要打开搜索选最新,非常麻烦。如果可以订阅就很方便。&lt;/p&gt;
        &lt;h3&gt;额外描述&lt;/h3&gt;
        &lt;p&gt;目前小红书的路由有3个,用户笔记、用户收藏、专辑,都无法实现这个功能。&lt;/p&gt;
        &lt;p&gt;感谢大佬!&lt;/p&gt;
        &lt;h3&gt;这不是重复的功能请求和 RSS 提案&lt;/h3&gt;
        &lt;ul&gt;
        &lt;li&gt;[X] 我已经搜索了 &lt;a href=&quot;https://github.com/DIYgod/RSSHub/issues&quot;&gt;现有 issue&lt;/a&gt;,以确保这项功能尚未被请求及不是 &lt;a href=&quot;https://github.com/DIYgod/RSSHub/issues/new?assignees=&amp;amp;labels=RSS+proposal&amp;amp;template=rss_request_zh.yml&quot;&gt;新的 RSS 提案&lt;/a&gt;。&lt;/li&gt;
        &lt;/ul&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/issues/12678</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/issues/12678</guid>
      <pubDate>Sun, 18 Jun 2023 10:22:10 GMT</pubDate>
      <dc:creator>WestXu</dc:creator>
    </item>
    <item>
      <title>获取抖音收藏、点赞视频</title>
      <description>&lt;h3&gt;类型&lt;/h3&gt;
        &lt;p&gt;新媒体&lt;/p&gt;
        &lt;h3&gt;网站地址&lt;/h3&gt;
        &lt;p&gt;&lt;a href=&quot;https://www.douyin.com/&quot;&gt;https://www.douyin.com/&lt;/a&gt;&lt;/p&gt;
        &lt;h3&gt;网站描述&lt;/h3&gt;
        &lt;p&gt;抖音短视频&lt;/p&gt;
        &lt;h3&gt;需要生成什么内容?&lt;/h3&gt;
        &lt;p&gt;~~1、获取作者发布的视频 (已经有了)&lt;a href=&quot;https://docs.rsshub.app/social-media.html#dou-yin~~&quot;&gt;https://docs.rsshub.app/social-media.html#dou-yin~~&lt;/a&gt;
        2、(喜欢)点赞的视频
        3、收藏的视频&lt;/p&gt;
        &lt;h3&gt;额外描述&lt;/h3&gt;
        &lt;p&gt;&lt;em&gt;No response&lt;/em&gt;&lt;/p&gt;
        &lt;h3&gt;这不是重复的 RSS 请求&lt;/h3&gt;
        &lt;ul&gt;
        &lt;li&gt;[X] 我已经搜索了&lt;a href=&quot;https://github.com/DIYgod/RSSHub/issues&quot;&gt;现有 issue&lt;/a&gt; 和 &lt;a href=&quot;https://github.com/DIYgod/RSSHub/pulls&quot;&gt;pull requests&lt;/a&gt;,以确保该 RSS 尚未被请求。&lt;/li&gt;
        &lt;/ul&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/issues/10628</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/issues/10628</guid>
      <pubDate>Sat, 27 Aug 2022 03:12:03 GMT</pubDate>
      <dc:creator>Whichbfj28</dc:creator>
    </item>
    <item>
      <title>Twitter Space</title>
      <description>&lt;h3&gt;类型&lt;/h3&gt;
        &lt;p&gt;社交媒体&lt;/p&gt;
        &lt;h3&gt;网站地址&lt;/h3&gt;
        &lt;p&gt;&lt;a href=&quot;https://twitter.com/&quot;&gt;https://twitter.com/&lt;/a&gt;&lt;/p&gt;
        &lt;h3&gt;网站描述&lt;/h3&gt;
        &lt;p&gt;Twitter&lt;/p&gt;
        &lt;h3&gt;需要生成什么内容?&lt;/h3&gt;
        &lt;p&gt;需要生成 Twitter Space 的状态通知。即当一个人在 Twitter Space 中作为发言人时,输出 RSS 提醒。&lt;/p&gt;
        &lt;h3&gt;额外描述&lt;/h3&gt;
        &lt;p&gt;当用户进入 Space 成为发言人时,Twitter 的头像处会出现一个圈,点进去点分享就能获取到房间链接。&lt;/p&gt;
        &lt;h3&gt;这不是重复的 RSS 请求&lt;/h3&gt;
        &lt;ul&gt;
        &lt;li&gt;[X] 我已经搜索了&lt;a href=&quot;https://github.com/DIYgod/RSSHub/issues&quot;&gt;现有 issue&lt;/a&gt; 和 &lt;a href=&quot;https://github.com/DIYgod/RSSHub/pulls&quot;&gt;pull requests&lt;/a&gt;,以确保该 RSS 尚未被请求。&lt;/li&gt;
        &lt;/ul&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/issues/9130</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/issues/9130</guid>
      <pubDate>Thu, 17 Feb 2022 06:20:11 GMT</pubDate>
      <dc:creator>Alphabet1226</dc:creator>
    </item>
    <item>
      <title>Scoups基于关键词的RSS源请求</title>
      <description>&lt;h3&gt;网站地址&lt;/h3&gt;
        &lt;p&gt;scopus.com&lt;/p&gt;
        &lt;h3&gt;网站描述&lt;/h3&gt;
        &lt;p&gt;Scoups是论文文摘数据库&lt;/p&gt;
        &lt;h3&gt;需要生成什么内容?&lt;/h3&gt;
        &lt;p&gt;依据搜索关键词进行的订阅&lt;/p&gt;
        &lt;h3&gt;额外描述&lt;/h3&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/issues/6970</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/issues/6970</guid>
      <pubDate>Fri, 19 Feb 2021 11:11:18 GMT</pubDate>
      <dc:creator>starsareintherose</dc:creator>
    </item>
    <item>
      <title>boss直聘求职网站提案</title>
      <description>&lt;h3&gt;网站地址&lt;/h3&gt;
        &lt;p&gt;主页:&lt;a href=&quot;https://www.zhipin.com/&quot;&gt;https://www.zhipin.com/&lt;/a&gt;
        北京主页:&lt;a href=&quot;https://www.zhipin.com/beijing/&quot;&gt;https://www.zhipin.com/beijing/&lt;/a&gt;
        岗位例子:&lt;a href=&quot;https://www.zhipin.com/job_detail/b9500ec88c8ad3200HV83t2_E1M~.html?ka=search_list_jname_1_blank&amp;amp;lid=nlp-6AocG9n2GL7.search.1&quot;&gt;https://www.zhipin.com/job_detail/b9500ec88c8ad3200HV83t2_E1M~.html?ka=search_list_jname_1_blank&amp;amp;lid=nlp-6AocG9n2GL7.search.1&lt;/a&gt;&lt;/p&gt;
        &lt;h3&gt;网站描述&lt;/h3&gt;
        &lt;p&gt;boss直聘求职网站,可以根据城市和岗位进行搜索,可以查看岗位JD,公司信息等&lt;/p&gt;
        &lt;h3&gt;需要生成什么内容?&lt;/h3&gt;
        &lt;p&gt;按照城市和岗位进行筛选,每天生成新的岗位信息。
        我要监控的工作是北京的数据分析师岗位,那么每天返回新增加的岗位详情页中的内容:
        岗位名称、薪资、工作地点、工作经验、岗位JD、公司介绍等
        &lt;img src=&quot;https://user-images.githubusercontent.com/26296885/84359840-cd6f8400-abfb-11ea-9d2d-a5f02092c59e.png&quot; alt=&quot;image&quot; referrerpolicy=&quot;no-referrer&quot;&gt;
        &lt;img src=&quot;https://user-images.githubusercontent.com/26296885/84359876-d8c2af80-abfb-11ea-87e0-f0fb8a1c0cd0.png&quot; alt=&quot;image&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;
        &lt;h3&gt;额外描述&lt;/h3&gt;
        &lt;p&gt;附上相关岗位的跳转链接,有利于直接跳转投递简历&lt;/p&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/issues/4974</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/issues/4974</guid>
      <pubDate>Thu, 11 Jun 2020 07:55:39 GMT</pubDate>
      <dc:creator>Amy-Sun</dc:creator>
    </item>
    <item>
      <title>请求添加 web of science 期刊和关键词</title>
      <description>&lt;h3&gt;网站地址&lt;/h3&gt;
        &lt;p&gt;login.webofknowledge.com&lt;/p&gt;
        &lt;h3&gt;网站描述&lt;/h3&gt;
        &lt;p&gt;期刊数据库&lt;/p&gt;
        &lt;h3&gt;需要生成什么内容?&lt;/h3&gt;
        &lt;p&gt;期刊瀑布流&lt;/p&gt;
        &lt;h3&gt;额外描述&lt;/h3&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/issues/4699</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/issues/4699</guid>
      <pubDate>Fri, 08 May 2020 09:21:29 GMT</pubDate>
      <dc:creator>starsareintherose</dc:creator>
    </item>
    <item>
      <title>请求添加vk.com 支持</title>
      <description>&lt;p&gt;网站地址
        &lt;a href=&quot;https://vk.com/&quot;&gt;https://vk.com/&lt;/a&gt;&lt;/p&gt;
        &lt;p&gt;网站描述
        vk.com&lt;/p&gt;
        &lt;p&gt;需要生成什么内容?
        用户post的
        内容
        发表时间
        post内容(含url链接,假如有图片)&lt;/p&gt;
      </description>
      <link>https://github.com/DIYgod/RSSHub/issues/3193</link>
      <guid isPermaLink="false">https://github.com/DIYgod/RSSHub/issues/3193</guid>
      <pubDate>Thu, 03 Oct 2019 17:12:34 GMT</pubDate>
      <dc:creator>asukasukasukasuka</dc:creator>
    </item>
  </channel>
</rss>

@TonyRL
TonyRL merged commit 156c586 into DIYgod:master Oct 29, 2026
30 of 32 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

auto: ready to review Human review will come in after lint issues and merge conflicts are fixed route

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants