mirror of
https://github.com/clash-verge-rev/clash-verge-rev
synced 2025-05-05 04:23:43 +08:00
fix: when restoring webdav, the current username, password and url are not preserved
This commit is contained in:
parent
5c3f0d5b60
commit
2c0a5666fc
@ -464,6 +464,12 @@ pub async fn delete_webdav_backup(filename: String) -> Result<()> {
|
||||
}
|
||||
|
||||
pub async fn restore_webdav_backup(filename: String) -> Result<()> {
|
||||
let verge = Config::verge();
|
||||
let verge_data = verge.data().clone();
|
||||
let webdav_url = verge_data.webdav_url.clone();
|
||||
let webdav_username = verge_data.webdav_username.clone();
|
||||
let webdav_password = verge_data.webdav_password.clone();
|
||||
|
||||
let backup_storage_path = app_home_dir().unwrap().join(&filename);
|
||||
backup::WebDavClient::global()
|
||||
.download(filename, backup_storage_path.clone())
|
||||
@ -477,6 +483,15 @@ pub async fn restore_webdav_backup(filename: String) -> Result<()> {
|
||||
let mut zip = zip::ZipArchive::new(fs::File::open(backup_storage_path.clone())?)?;
|
||||
zip.extract(app_home_dir()?)?;
|
||||
|
||||
log_err!(
|
||||
patch_verge(IVerge {
|
||||
webdav_url: webdav_url,
|
||||
webdav_username: webdav_username,
|
||||
webdav_password: webdav_password,
|
||||
..IVerge::default()
|
||||
})
|
||||
.await
|
||||
);
|
||||
// 最后删除临时文件
|
||||
fs::remove_file(backup_storage_path)?;
|
||||
Ok(())
|
||||
|
Loading…
x
Reference in New Issue
Block a user