mirror of
https://github.com/ankitects/anki.git
synced 2025-12-11 05:46:55 -05:00
move sync_media() into MediaManager
This commit is contained in:
parent
fb8f753d2d
commit
4289f7a02a
3 changed files with 16 additions and 25 deletions
|
|
@ -6,7 +6,7 @@ use crate::backend_proto::backend_input::Value;
|
||||||
use crate::backend_proto::{Empty, RenderedTemplateReplacement, SyncMediaIn};
|
use crate::backend_proto::{Empty, RenderedTemplateReplacement, SyncMediaIn};
|
||||||
use crate::cloze::expand_clozes_to_reveal_latex;
|
use crate::cloze::expand_clozes_to_reveal_latex;
|
||||||
use crate::err::{AnkiError, NetworkErrorKind, Result, SyncErrorKind};
|
use crate::err::{AnkiError, NetworkErrorKind, Result, SyncErrorKind};
|
||||||
use crate::media::sync::{MediaSyncer, Progress as MediaSyncProgress};
|
use crate::media::sync::Progress as MediaSyncProgress;
|
||||||
use crate::media::MediaManager;
|
use crate::media::MediaManager;
|
||||||
use crate::sched::{local_minutes_west_for_stamp, sched_timing_today};
|
use crate::sched::{local_minutes_west_for_stamp, sched_timing_today};
|
||||||
use crate::template::{
|
use crate::template::{
|
||||||
|
|
@ -325,9 +325,7 @@ impl Backend {
|
||||||
};
|
};
|
||||||
|
|
||||||
let mut rt = Runtime::new().unwrap();
|
let mut rt = Runtime::new().unwrap();
|
||||||
|
rt.block_on(mgr.sync_media(callback, &input.endpoint, &input.hkey))
|
||||||
let mut syncer = MediaSyncer::new(&mgr, callback, &input.endpoint);
|
|
||||||
rt.block_on(syncer.sync(&input.hkey))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ use crate::media::files::{
|
||||||
add_data_to_folder_uniquely, mtime_as_i64, sha1_of_data, sha1_of_file,
|
add_data_to_folder_uniquely, mtime_as_i64, sha1_of_data, sha1_of_file,
|
||||||
MEDIA_SYNC_FILESIZE_LIMIT, NONSYNCABLE_FILENAME,
|
MEDIA_SYNC_FILESIZE_LIMIT, NONSYNCABLE_FILENAME,
|
||||||
};
|
};
|
||||||
|
use crate::media::sync::{MediaSyncer, Progress};
|
||||||
use rusqlite::Connection;
|
use rusqlite::Connection;
|
||||||
use std::borrow::Cow;
|
use std::borrow::Cow;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
@ -94,25 +95,18 @@ impl MediaManager {
|
||||||
Ok(chosen_fname)
|
Ok(chosen_fname)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Sync media.
|
||||||
|
pub async fn sync_media<F>(&self, progress: F, endpoint: &str, hkey: &str) -> Result<()>
|
||||||
|
where
|
||||||
|
F: Fn(Progress) -> bool,
|
||||||
|
{
|
||||||
|
let mut syncer = MediaSyncer::new(self, progress, endpoint);
|
||||||
|
syncer.sync(hkey).await
|
||||||
|
}
|
||||||
|
|
||||||
fn dbctx(&self) -> MediaDatabaseContext {
|
fn dbctx(&self) -> MediaDatabaseContext {
|
||||||
MediaDatabaseContext::new(&self.db)
|
MediaDatabaseContext::new(&self.db)
|
||||||
}
|
}
|
||||||
|
|
||||||
// db helpers
|
|
||||||
|
|
||||||
// pub(super) fn query<F, R>(&self, func: F) -> Result<R>
|
|
||||||
// where
|
|
||||||
// F: FnOnce(&mut MediaDatabaseContext) -> Result<R>,
|
|
||||||
// {
|
|
||||||
// MediaDatabaseContext::query(&self.db, func)
|
|
||||||
// }
|
|
||||||
|
|
||||||
// pub(super) fn transact<F, R>(&self, func: F) -> Result<R>
|
|
||||||
// where
|
|
||||||
// F: FnOnce(&mut MediaDatabaseContext) -> Result<R>,
|
|
||||||
// {
|
|
||||||
// MediaDatabaseContext::transact(&self.db, func)
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn register_changes(ctx: &mut MediaDatabaseContext, folder: &Path) -> Result<()> {
|
fn register_changes(ctx: &mut MediaDatabaseContext, folder: &Path) -> Result<()> {
|
||||||
|
|
|
||||||
|
|
@ -685,7 +685,7 @@ fn media_check_required() -> AnkiError {
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod test {
|
mod test {
|
||||||
use crate::err::Result;
|
use crate::err::Result;
|
||||||
use crate::media::sync::{determine_required_change, LocalState, MediaSyncer, RequiredChange};
|
use crate::media::sync::{determine_required_change, LocalState, RequiredChange};
|
||||||
use crate::media::MediaManager;
|
use crate::media::MediaManager;
|
||||||
use tempfile::tempdir;
|
use tempfile::tempdir;
|
||||||
use tokio::runtime::Runtime;
|
use tokio::runtime::Runtime;
|
||||||
|
|
@ -703,10 +703,9 @@ mod test {
|
||||||
true
|
true
|
||||||
};
|
};
|
||||||
|
|
||||||
let mut mgr = MediaManager::new(&media_dir, &media_db)?;
|
let mgr = MediaManager::new(&media_dir, &media_db)?;
|
||||||
|
mgr.sync_media(progress, "https://sync.ankiweb.net/msync/", hkey)
|
||||||
let mut syncer = MediaSyncer::new(&mut mgr, progress, "https://sync.ankiweb.net/msync/");
|
.await?;
|
||||||
syncer.sync(hkey).await?;
|
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue