mirror of
https://github.com/lanyeeee/bilibili-video-downloader.git
synced 2026-09-08 17:16:52 +08:00
fix: 修复删除正在下载的任务时,被删除的任务重启后有概率又出现的问题
This commit is contained in:
@@ -297,15 +297,19 @@ impl DownloadProgress {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn save(&self, app: &AppHandle) -> anyhow::Result<()> {
|
pub fn save(&self, app: &AppHandle, allow_create: bool) -> anyhow::Result<()> {
|
||||||
let progress = self.clone();
|
let progress = self.clone();
|
||||||
let file_name = format!("{}.json", progress.task_id);
|
let file_name = format!("{}.json", progress.task_id);
|
||||||
|
|
||||||
let app_data_dir = app.path().app_data_dir()?;
|
let app_data_dir = app.path().app_data_dir()?;
|
||||||
let task_dir = app_data_dir.join(".下载任务");
|
let tasks_dir = app_data_dir.join(".下载任务");
|
||||||
std::fs::create_dir_all(&task_dir)?;
|
std::fs::create_dir_all(&tasks_dir)?;
|
||||||
|
|
||||||
|
let save_path = tasks_dir.join(file_name);
|
||||||
|
if !allow_create && !save_path.exists() {
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
|
||||||
let save_path = task_dir.join(file_name);
|
|
||||||
let progress_json = serde_json::to_string(&progress)?;
|
let progress_json = serde_json::to_string(&progress)?;
|
||||||
std::fs::write(save_path, progress_json)?;
|
std::fs::write(save_path, progress_json)?;
|
||||||
|
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ impl DownloadTask {
|
|||||||
|
|
||||||
let mut tasks = Vec::new();
|
let mut tasks = Vec::new();
|
||||||
for progress in progresses {
|
for progress in progresses {
|
||||||
if let Err(err) = progress.save(app) {
|
if let Err(err) = progress.save(app, true) {
|
||||||
let ids_string = progress.get_ids_string();
|
let ids_string = progress.get_ids_string();
|
||||||
let episode_title = &progress.episode_title;
|
let episode_title = &progress.episode_title;
|
||||||
let err_title = format!("{ids_string} `{episode_title}`保存下载进度到文件失败");
|
let err_title = format!("{ids_string} `{episode_title}`保存下载进度到文件失败");
|
||||||
@@ -1032,7 +1032,7 @@ impl DownloadTask {
|
|||||||
}
|
}
|
||||||
.emit(&self.app);
|
.emit(&self.app);
|
||||||
|
|
||||||
if let Err(err) = updated_progress.save(&self.app) {
|
if let Err(err) = updated_progress.save(&self.app, false) {
|
||||||
let ids_string = updated_progress.get_ids_string();
|
let ids_string = updated_progress.get_ids_string();
|
||||||
let episode_title = &updated_progress.episode_title;
|
let episode_title = &updated_progress.episode_title;
|
||||||
let err_title = format!("{ids_string} `{episode_title}`保存下载进度到文件失败");
|
let err_title = format!("{ids_string} `{episode_title}`保存下载进度到文件失败");
|
||||||
|
|||||||
Reference in New Issue
Block a user