Skip to content

fix(ru.desu): improve Ranobe chapter and catalog support - #802

Merged
kkantan merged 3 commits into
Aidoku-Community:mainfrom
kurisumakis3:fix/ru-desu-ranobe-chapters
Oct 10, 2026
Merged

kkantan merged 3 commits into
Aidoku-Community:mainfrom
kurisumakis3:fix/ru-desu-ranobe-chapters

Conversation

@kurisumakis3

Copy link
Copy Markdown
Contributor

Summary

  • Switch Ranobe chapter listing to the JSON API and keep legacy URL chapter keys/deep links resolvable.
  • Preserve existing details on chapter-only refreshes; surface deep-link errors and clarify chapter-access 401s.
  • Parse typed text/image blocks, retain text block boundaries/line breaks/basic emphasis, and keep image-only chapters as image pages.
  • Add confirmed Ranobe metadata and public status/genre filters; update docs and source version to 7.

Validation

  • cargo fmt --check
  • cargo test --target wasm32-unknown-unknown (25 tests)
  • cargo clippy --target wasm32-unknown-unknown -- -D warnings
  • cargo check --target wasm32-unknown-unknown
  • aidoku package, aidoku verify, and unzip -t
  • Manual device check: the packaged v7 candidate was reported to work; this was informal, not an exhaustive matrix.

Switch Ranobe chapter discovery to the JSON API while keeping legacy URL keys and deep links resolvable. Preserve existing details during chapter-only refreshes, parse ordered text/image blocks safely, and add confirmed Ranobe metadata and catalog filters. Update source version and maintainer documentation.

@kkantan kkantan left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you run cargo update to update the aidoku-rs dependency?

Comment thread sources/ru.desu/src/ranobe.rs Outdated
qs.push("page", Some(page.to_string().as_str()));
if let Some(q) = query.filter(|s| !s.is_empty()) {
qs.push("search", Some(q.as_str()));
if let Some(query) = query.filter(|query| !query.is_empty()) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the query should never be empty, so this check isn't necessary. you're also unwrapping and rewrapping the query. you could simply check if query.is_some() then qs.push("search", query).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated in 3f2a918. cargo update -p aidoku advanced both aidoku and aidoku-test to ae6485e3; only their shared git revision changed in Cargo.lock. I simplified optional query handling after confirming the Aidoku v0.9 bridge turns empty input into None. Local checks pass: fmt, 25 WASM tests, Clippy (-D warnings), check, package, verify, and archive integrity. GitHub Actions are running now.

@kurisumakis3

Copy link
Copy Markdown
Contributor Author

Review follow-up

Applied in commit 3f2a918:

  • Updated the shared aidoku-rs git revision for aidoku and aidoku-test in sources/ru.desu/Cargo.lock.
  • Simplified Ranobe search query handling; the Aidoku v0.9 bridge maps empty query input to None.
  • Left ContentRating as Unknown when the site provides only ordinary genre tags and no explicit safe rating.

Local verification passed: cargo fmt --check, 25 WASM tests, Clippy with -D warnings, cargo check, package, aidoku verify, and archive integrity. GitHub Actions for the new head are running; I will request review again after they finish.

@kurisumakis3
kurisumakis3 requested a review from kkantan October 8, 2026 20:45
@kkantan
kkantan merged commit 68c349b into Aidoku-Community:main Oct 10, 2026
3 checks passed
@kurisumakis3
kurisumakis3 deleted the fix/ru-desu-ranobe-chapters branch October 10, 2026 20:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants