add admin command to delete all remote media files

This commit is contained in:
Benjamin Lee 2024-09-15 00:34:20 -07:00
parent d7087c66bb
commit 9d14c5d461
No known key found for this signature in database
GPG key ID: FB9624E2885D55A4
4 changed files with 98 additions and 2 deletions

View file

@ -161,4 +161,27 @@ impl service::media::Data for KeyValueDatabase {
})
.collect()
}
fn all_file_metadata(
&self,
) -> Box<
dyn Iterator<Item = Result<(OwnedMxcUri, FileMeta, MediaFileKey)>> + '_,
> {
Box::new(
self.mediaid_file
.iter()
.map(|(key, _)| {
let key = MediaFileKey::new(key);
let parts = MediaFileKeyParts::try_from(&key)?;
if parts.width != 0 && parts.height != 0 {
// Skip thumbnails
return Ok(None);
};
Ok(Some((parts.mxc, parts.meta, key)))
})
.filter_map(Result::transpose),
)
}
}