Repository navigation
Conversation
[Medium impact] The PR appears safe to merge; no actionable issues were found. SummaryAdds
No actionable issues were established. Live checks were reported by the author but were not rerun during this review. Reviews (1) · Last reviewed commit: "feat(russian): add РанобэМир source" · Reviewed by Greptile |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a new Russian source, РанобэМир, for issue #2692.
It supports popular/latest listing with pagination and a sort filter, search, novel details with the full chapter list, and chapter text with the collapsible "Ранее в ..." recap block removed. Chapter HTML is sanitized (event handlers, script URLs and script/style tags dropped).
Closes #2692
Domain note: the issue gives
https://ranobemir.ru, but that domain does not exist (NXDOMAIN). The real site ishttps://ranobemir.com, which matches the issue's description: chapter text in plain<p>tags with adetails.collapserecap block.ranobe.mewas checked and is a different site with no such block.Notes: the chapter list uses the site's no-JS
?tocview (all chapters); undated "Прогноз" placeholder rows are skipped. The site's robots.txt disallows/novel?q=, which the search uses.AI disclosure: this plugin was written by an AI agent (Claude), with the pipeline run driven by the agent.
Plugin playground evidence
Run with
npm run dev:start; ranobemir plugin, live site.Popular/latest listing:

Search ("маг"):

Novel detail (Человек–Армия, 247 chapters):

Chapter list:

Chapter 226 text, recap ("Ранее в ...") removed, text starts at the first paragraph:

What Changed
plugins/russian/ranobemir.tsplugin (idranobemir, v1.0.1) forhttps://ranobemir.com. It supports popular/latest listing with a sort filter, search, novel parsing (cover, genres from ld+json, summary, status, and chapter list in oldest-first order that skips unpublished placeholders), and chapter parsing.details.collapserecap block, and strips script/style tags,on*handlers, andjavascript:/vbscript:/non-imagedata:URLs. It returns only the<p>paragraphs.public/static/src/ru/ranobemir/icon.png.Risk Assessment
✅ Low: A single new standalone plugin with a correct 96x96 icon, no shared code touched, and logic that traces correctly; the main residual uncertainty is the live-site behaviour, which the later check:plugin step covers.
Testing
I ran the repo's live checker on the new plugin against ranobemir.com. popularNovels returned 20 novels, searchNovels returned 2 results, parseNovel returned 3909 chapters, and parseChapter returned 8199 characters of text. The sampled chapter has no details.collapse recap block, so removal of that block was not exercised live. The source pairs the removal with attribute sanitisation, and I did not drive that either. There is no UI change, so no screenshots were taken.
Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
plugins/russian/ranobemir.ts:19- Intent named ranobemir.ru (NXDOMAIN); the plugin targets ranobemir.com, the live site with the same name, and implements the requested recap (details.collapse) removal. The user's 'maybe ranobe.me' alternative was not adopted; worth confirming the .com choice is intended. New plugin ships at version 1.0.1 rather than 1.0.0 (harmless).✅ **Test** - passed
✅ No issues found.
npm cinpm run check:plugin -- plugins/russian/ranobemir.tscurl of the first chapter of the sample novel, checked for a details.collapse block✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.