* tumblr.com: Code to access tagged/ endpoint
* tumblr.com: Change processPost for tagged endpoint
* Tumblr.com: "Tagged" response is a list of posts
* tumblr.com: removed unnecessary link
* tumblr.com: fixing api key auth as per https://www.tumblr.com/docs/en/api/v2#authentication
* tumblr.com: user query params properly
* tumblr.com: compliance with Script Standard
* tumblr.com: ensuring `api_key` works for posts.ts
* tumblr: don't mess up the types this time
* tumblr/tagged/:tag Feed Description + Link
* /tumblr Can now parse blog answers
* /tumblr "answer" is the correct type
* /tumblr: Better format for blog answers
* /tumblr: fixed misplaced </p> tag
* lib/routes/tumblr/tagged.ts: Removed unnecessary template literals
Co-authored-by: Tony <TonyRL@users.noreply.github.com>
* /tumblr/tagged: Only one category
* /tumblr: Fixed how the asker's url is handled
* Ran ESLint
---------
Co-authored-by: Tony <TonyRL@users.noreply.github.com>
* fix(route/huggingface): restore article list and author parsing
- lib/routes/huggingface/blog-zh.ts: Read articles from data.props.allBlogs and construct /blog/zh/:slug links; use authorsData (fullname or name) for author names.
- lib/routes/huggingface/blog.ts: Read articles from data.props.allBlogs and switch author parsing to authorsData (fullname or name); preserve upvotes and thumbnail handling.
- lib/routes/huggingface/daily-papers.ts: Relax selector to read data.props from div[data-target="DailyPapers"] so DailyPapers props can be retrieved.
* fix(route/huggingface): use api instead of http; title is at right property.
* fix(route/substack): clean up xml before parsing
* fix(route/substack): use ofetch directly to avoid xml parse errors
* fix(route/substack): use isValidHost to validate the user
* feat(route/weibo): Fetch visitor Cookies before accessing some APIs
Signed-off-by: Rongrong <i@rong.moe>
* fix(route/weibo/utils): getCookies: return too early on slow connection
Signed-off-by: Rongrong <i@rong.moe>
* fix(route/weibo/utils): getCookies: Redirection assertion is too loose
Signed-off-by: Rongrong <i@rong.moe>
---------
Signed-off-by: Rongrong <i@rong.moe>
The `rss-parser`'s internal `parseURL` method can fail with an "Error:
Non-whitespace before first tag" on feeds that are gzipped or contain a
Byte Order Mark (BOM), as it lacks robust decompression and encoding
handling.
This change switches the Phoronix route to:
Fetch the raw XML string using `ofetch`, which handles compression and
encoding correctly.
Pass the resulting clean string to `parser.parseString()`.
This resolves the parsing issue and ensures the route is reliable.
* ci(docker-release): enable ZRAM to reduce memory pressure
This should hopefully help reduce stuck build jobs. Note that this can't
completely eliminate stuck builds since this is usually caused by
synchronization issues in QEMU.
Signed-off-by: Rongrong <i@rong.moe>
* build(Dockerfile): Add support for puppeteer-real-browser
Sets CHROMIUM_EXECUTABLE_PATH on AMD64 and installs essential
dependencies.
Signed-off-by: Rongrong <i@rong.moe>
* fix(route/picnob): bring back support for diygod/rsshub:chromium-bundled
The support for puppeteer-real-browser on diygod/rsshub:chromium-bundled
was improperly implemented in 400fb1fa49 ("fix(route/picnob): use
puppeteer-real-browser to pass cf check (#20478)") and was then removed
in 2cb11d7c7e ("fix(route/picnob): support img not in slide").
With proper support for puppeteer-real-browser added to Dockerfile, this
patch brings back the support for diygod/rsshub:chromium-bundled.
This partially reverts commit 2cb11d7c7e ("fix(route/picnob): support
img not in slide").
Signed-off-by: Rongrong <i@rong.moe>
* chore(route/picnob): add myself as maintainer
This route explicitly consult CHROMIUM_EXECUTABLE_PATH from the docker
image variant `diygod/rsshub:chromium-bundled`. Since I am the author of
the image variant, add myself as one of route maintainers so that I am
mentioned when the route is broken.
Signed-off-by: Rongrong <i@rong.moe>
# Conflicts:
# lib/routes/picnob/user.ts
---------
Signed-off-by: Rongrong <i@rong.moe>