use crate::upload::UploadRequest;
use crate::{Page, Result};
#[derive(Debug)]
pub struct File {
page: Page,
}
impl File {
pub(crate) fn new(page: &Page) -> Self {
assert!(page.is_file());
Self { page: page.clone() }
}
pub async fn upload(self, req: UploadRequest) -> Result<Self> {
let params = req.params();
let filename = self
.page
.bot
.api()
.upload(
self.page.title(),
req.file,
req.chunk_size,
req.ignore_warnings,
params,
)
.await?;
Ok(self
.page
.bot
.page(&filename)?
.as_file()
.expect("MediaWiki API returned non-file title"))
}
}