Add first attempt to save an epub file
This commit is contained in:
parent
e5a318282d
commit
4e8812c1ee
3 changed files with 658 additions and 57 deletions
699
Cargo.lock
generated
699
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
|
@ -9,6 +9,7 @@ license = "MIT"
|
|||
|
||||
[dependencies]
|
||||
async-std = "1.5.0"
|
||||
epub-builder = "0.4.5"
|
||||
kuchiki = "0.8.0"
|
||||
md5 = "0.7.0"
|
||||
surf = "1.0.3"
|
||||
|
|
15
src/main.rs
15
src/main.rs
|
@ -1,6 +1,7 @@
|
|||
use std::fs::File;
|
||||
|
||||
use async_std::task;
|
||||
use epub_builder::{EpubBuilder, EpubContent, ZipLibrary};
|
||||
use url::Url;
|
||||
|
||||
mod extractor;
|
||||
|
@ -24,14 +25,22 @@ fn main() {
|
|||
.download_images(&Url::parse(urls[5]).unwrap())
|
||||
.await
|
||||
.expect("Unable to download images");
|
||||
let mut out_file = File::create("out.html").unwrap();
|
||||
let mut out_file = File::create("out.epub").unwrap();
|
||||
let mut html_buf = Vec::new();
|
||||
extractor
|
||||
.content
|
||||
.unwrap()
|
||||
.as_node()
|
||||
.serialize(&mut out_file)
|
||||
.serialize(&mut html_buf)
|
||||
.expect("Unable to serialize");
|
||||
});
|
||||
let html_buf = std::str::from_utf8(&html_buf).unwrap();
|
||||
EpubBuilder::new(ZipLibrary::new().unwrap())
|
||||
.unwrap()
|
||||
.add_content(EpubContent::new("code.xhtml", html_buf.as_bytes()))
|
||||
.unwrap()
|
||||
.generate(&mut out_file)
|
||||
.unwrap();
|
||||
})
|
||||
}
|
||||
|
||||
async fn fetch_url(url: &str) -> String {
|
||||
|
|
Reference in a new issue