diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/src/main.rs b/src/main.rs index e8c0375..34b00bb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -43,10 +43,6 @@ fn main() { for (i, result) in parse_mediawiki_dump::parse(input).enumerate() { match result { - Err(error) => { - eprintln!("xml format error: {}", error); - break; - } Ok(page) => { if page.namespace == 0 && match &page.format { @@ -81,17 +77,27 @@ fn main() { let mut header = Header::new_gnu(); header.set_size(html.as_bytes().len() as u64); header.set_cksum(); - archive - .append_data(&mut header, filename, html.as_bytes()) - .unwrap(); + if let Err(e) = archive.append_data(&mut header, filename, html.as_bytes()) + { + eprintln!("could not append to archive: {e}") + } } else { - let mut f = File::create(format!("out/{}", filename)).unwrap(); - f.write_all(html.as_bytes()).unwrap() + match File::create(format!("out/{}", filename)) { + Ok(mut f) => f.write_all(html.as_bytes()).unwrap(), + Err(e) => eprintln!("could not create file: {e}"), + } } - } else { + } else if args.verbose { eprintln!("page ignored: {:?}", page.title); } } + Err(error) => { + eprintln!("xml format error: {}", error); + break; + } + } + if i % 10000 == 0 { + eprintln!("{i}") } if Some(i) == args.limit { break; |