Fix avatar retrieval.

Emmanuel Gil Peyrot created

Change summary

src/avatar.rs | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)

Detailed changes

src/avatar.rs 🔗

@@ -40,9 +40,12 @@ pub(crate) fn handle_metadata_pubsub_event(from: &Jid, tx: &mut mpsc::UnboundedS
             let metadata = Metadata::try_from(payload).unwrap();
             for info in metadata.infos {
                 let filename = format!("data/{}/{}", from, hash_to_hex(&*info.id));
-                let metadata = fs::metadata(filename.clone()).unwrap();
+                let file_length = match fs::metadata(filename.clone()) {
+                    Ok(metadata) => metadata.len(),
+                    Err(_) => 0,
+                };
                 // TODO: Also check the hash.
-                if info.bytes as u64 == metadata.len() {
+                if info.bytes as u64 == file_length {
                     events.push(Event::AvatarRetrieved(from.clone(), filename));
                 } else {
                     let iq = download_avatar(from);