Print info while exporting logs

This commit is contained in:
Joscha 2022-07-13 14:48:37 +02:00
parent f527c46dde
commit cc3fbaf968
2 changed files with 15 additions and 0 deletions

View file

@ -14,15 +14,26 @@ const TIME_FORMAT: &str = "%F %T";
const TIME_EMPTY: &str = " "; const TIME_EMPTY: &str = " ";
pub async fn export(vault: &Vault, room: String, file: &Path) -> anyhow::Result<()> { pub async fn export(vault: &Vault, room: String, file: &Path) -> anyhow::Result<()> {
println!("Exporting &{room} to {}", file.to_string_lossy());
let mut file = BufWriter::new(File::create(file)?); let mut file = BufWriter::new(File::create(file)?);
let vault = vault.euph(room); let vault = vault.euph(room);
let mut exported_trees = 0;
let mut exported_msgs = 0;
let mut tree_id = vault.first_tree().await; let mut tree_id = vault.first_tree().await;
while let Some(some_tree_id) = tree_id { while let Some(some_tree_id) = tree_id {
let tree = vault.tree(&some_tree_id).await; let tree = vault.tree(&some_tree_id).await;
write_tree(&mut file, &tree, some_tree_id, 0)?; write_tree(&mut file, &tree, some_tree_id, 0)?;
tree_id = vault.next_tree(&some_tree_id).await; tree_id = vault.next_tree(&some_tree_id).await;
exported_trees += 1;
exported_msgs += tree.len();
if exported_trees % 10000 == 0 {
println!("Exported {exported_trees} trees, {exported_msgs} messages")
} }
}
println!("Exported {exported_trees} trees, {exported_msgs} messages in total");
Ok(()) Ok(())
} }

View file

@ -75,6 +75,10 @@ impl<M: Msg> Tree<M> {
} }
} }
pub fn len(&self) -> usize {
self.msgs.len()
}
pub fn root(&self) -> &M::Id { pub fn root(&self) -> &M::Id {
&self.root &self.root
} }