7 releases (breaking)
0.6.0 | Jul 24, 2020 |
---|---|
0.5.0 | Jul 10, 2020 |
0.4.0 | Jun 13, 2020 |
0.3.1 | Feb 14, 2020 |
0.1.0 | Nov 6, 2019 |
#843 in Text processing
165KB
2K
SLoC
story-dl
story-dl is a program allowing you to download stories from a multitude of different sites.
Note
This scraper does not support the scraping of characters, pairings, tags, warnings, or anything other than the required information. Or at least not yet.
As of v0.5.0, stroy-dl contains a modified but untested version of Élisabeth Henry's epub-builder.
Supported Sites
- Archive Of Our Own
- FanFiction
- (yah i need to add more...)
Dependencies
- Rust (build)
- C/C++ compiler (build)
- OpenSSL (Unix/Linux and macOS) (runtime)
Command
Usage
story-dl tries to have a simple command line, with just enough to change what you need to but simple enough so that it doesn't require 20 man pages.
Examples
Download story as EPub:
story-dl -u <URL> -o epub
Download all in import file as EPub:
story-dl -f import.json -o epub
import.json
:
[
"<URL>",
{
"url": "<URL>"
}
]
Library
Usage
Add this to your Cargo.toml
.
story_dl = { version = "0.3", default-features = false }
This will add story-dl but disabled all crates required by the command version.
Choose what website will be scraped, lets use FanFiction
for this example.
// Import required structs.
use story_dl::fanfiction;
#[tokio::main]
async fn main() {
// Convert story url string into the required Uri.
let url = "<story url>".parse().expect("Not a valid URL");
// Start the scraper, this will return the finished story.
let story = fanfiction::scrape(&url).await.expect("Error scraping story");
// Scraped information
println!("Title: {}", story.name);
println!("Authors: {}", story.authors.join(", "));
println!("Chapters: {}", story.chapters);
}
Credits
Internally uses a modified version of Gonzih's CrabQuery.
Thanks to Quite Wraith on Archive Of Our Own and FanFiction.net as two of their stories, "Little Cog" and "Fellow Traveler", are used as test data for site scrapping.
Dependencies
~20–31MB
~485K SLoC