A crate to work with MOBI format ebooks.
Cargo.toml
toml
[dependencies]
mobi = "0.6"
main.rs
```rust
use mobi::Mobi;
fn main() -> Result<(), std::io::Error> {
let book = vec![0, 0, 0];
// You can either create a Mobi struct from a slice
let m = Mobi::new(&book)?;
// Or from an instance of io::Read
let stdin = std::io::stdin();
let mut handle = stdin.lock();
let m = Mobi::fromread(&mut handle)?;
// Or from filesystem
let m = Mobi::frompath("/some/path/to/book.mobi")?;
// Access metadata let title = m.title(); let author = m.author().unwrapordefault(); let publisher = m.publisher().unwrapordefault(); let desc = m.description().unwrapordefault(); let isbn = m.isbn().unwrapordefault(); let pubdate = m.publishdate().unwrapordefault(); let contributor = m.contributor().unwrapordefault();
// Access Headers let metadata = &m.metadata; let header = &metadata.header; // Normal Header let pdheader = &metadata.palmdoc; // PalmDOC Header let mheader = &metadata.mobi; // MOBI Header let exth = &metadata.exth; // Extra Header
// Access content let content = m.contentasstring();
Ok(()) } ```
kroo for inspiration and idea.