add admin command to delete individual media files

This commit is contained in:
Benjamin Lee 2024-09-14 20:20:02 -07:00
parent 7672cc8473
commit d7087c66bb
No known key found for this signature in database
GPG key ID: FB9624E2885D55A4
4 changed files with 78 additions and 3 deletions

View file

@ -140,4 +140,25 @@ impl service::media::Data for KeyValueDatabase {
let parts = MediaFileKeyParts::try_from(&key)?;
Ok((parts.meta, key))
}
fn delete_file_metadata(&self, key: MediaFileKey) -> Result<()> {
self.mediaid_file.remove(key.as_bytes())
}
fn search_thumbnails_metadata(
&self,
mxc: OwnedMxcUri,
) -> Result<Vec<(FileMeta, MediaFileKey)>> {
let mut prefix = mxc.as_bytes().to_vec();
prefix.push(0xFF);
self.mediaid_file
.scan_prefix(prefix)
.map(|(key, _)| {
let key = MediaFileKey::new(key);
let parts = MediaFileKeyParts::try_from(&key)?;
Ok((parts.meta, key))
})
.collect()
}
}