Open ZeeWanderer opened 2 years ago
This seems reasonable, I'll take a closer look next week.
As far as i understand you parse a
tags with href
that starts from /fiction
and contains /chapter
https://github.com/Aivean/royalroad-downloader/blob/8e7f4fdcb0d2b1dcb3a51333445123016126eec3/src/main/scala/com/aivean/royalroad/Main.scala#L36
But instead if you parse tr
tags
<tr style="cursor: pointer" data-url="/fiction/46638/steamforged-sorcery-a-steampunk-litrpg/chapter/803289/chapter-68-arrival" data-volume-id="531" class="chapter-row">
<td>
<a href="/fiction/46638/steamforged-sorcery-a-steampunk-litrpg/chapter/803289/chapter-68-arrival">
Chapter 68: Arrival
</a>
</td>
<td data-content="67" class="text-right">
<a href="/fiction/46638/steamforged-sorcery-a-steampunk-litrpg/chapter/803289/chapter-68-arrival" data-content="67">
<time unixtime="1639068708" title="12/9/2021 4:51:48 PM +00:00" format="agoshort">3 months </time> ago
</a>
</td>
</tr>
and find tr
you actually need by filtering data-url
for /fiction
and /chapter
you also get data-volume-id
attribute which contains either volume id or null
. Then you can additionally search for volume name by searching tags for id="volume-N-label"
where N
is the data-volume-id
.
<h6 id="volume-531-label">Volume 1</h6>
Then you can enumerate volumes by their id's order of appearance which should be reliable and then allow a user to specify a volume number via arguments. If there are no volumes, issue a warning and ignore the argument or an error depending on your preferences.
Is "--from-chapter" a command? Where do I see how to use it and other available commands? Sorry if this is obvious, I can't see anything about it in the Code page or the readme
@Raisoshi
Is "--from-chapter" a command? Where do I see how to use it and other available commands? Sorry if this is obvious, I can't see anything about it in the Code page or the readme
It's an an argument.
You can run the program with:
java -jar royalroad-downloader-assembly-VERSION.jar --help
to see the usage.
In short,
java -jar royalroad-downloader-assembly-VERSION.jar --from-chapter 123 https://link-to-the-book
should be the syntax.
Honestly, I'd just be happy with being able to save every chapter as a separate file.
A --to-chapter argument would be nice too.
Honestly, I'd just be happy with being able to save every chapter as a separate file.
What's the use case for that?
A --to-chapter argument would be nice too.
Huh, I thought it already exists. Ok, I'll add it when I finally find some time :)
I wrote a simple implementation of this for myself, sharing here in case someone finds it useful.
With Royal Road allowing to organize chapters into Volumes it would be useful to download a specific Volume.
On a sidenote: in pair with
--from-chapter
a--to-chapter
equivalent would be useful. Also using RR chapter id (https://www.royalroad.com/fiction/49717/the-rise-of-the-winter-wolf/chapter/812891/b1-prologue
->812891
) to specify chapter range would make more sense than counting chapters. Yes, that would require looping over the entire chapter URL list once before the download but it is simpler for user-side. An universal option would be something like--chapter-range
that allows standard range expressions e.g. "812891-812991,812993,812995" with addition of something like a wildcard symbol to denote an open range.I digress, the feature request is only about the Volume download.