public void Upload(String Path, string fileType) { String[] directories = Directory.GetFiles(Path); for (int i = 0; i < directories.Length; i++) { WebClient client = new WebClient(); if (!directories[i].ToLower().EndsWith(fileType)) { continue; } txtbox.AppendText("\n\n" + MainWindow.globalLanguage.processer.ReturnProcessed(MainWindow.globalLanguage.bBBU.code.uploadingToBMBF, directories[i])); try { client.UploadFile("http://" + MainWindow.config.IP + ":50000/host/beatsaber/upload?overwrite", directories[i]); } catch { txtbox.AppendText(MainWindow.globalLanguage.global.BMBF100); } if (i % 20 == 0 && i != 0) { txtbox.AppendText("\n\n" + MainWindow.globalLanguage.global.syncingToBS); BMBFUtils.Sync(txtbox); System.Threading.Thread.Sleep(2000); } } BMBFUtils.Sync(txtbox); }
public void PlaylistsR() { try { String PlaylistsX; txtbox.AppendText("\n\n" + MainWindow.globalLanguage.processer.ReturnProcessed(MainWindow.globalLanguage.bBBU.code.restoringPlaylists, Playlists + "\\Playlists.json")); Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new Action(delegate { })); if (!Directory.Exists(exe + "\\tmp")) { Directory.CreateDirectory(exe + "\\tmp"); } WebClient client = new WebClient(); PlaylistsX = Playlists + "\\Playlists.json"; var j = JSON.Parse(client.DownloadString("http://" + MainWindow.config.IP + ":50000/host/beatsaber/config")); var p = JSON.Parse(File.ReadAllText(PlaylistsX)); j["Config"]["Playlists"] = p["Playlists"]; BMBFUtils.PostChangesAndSync(txtbox, j["Config"].ToString().Replace("\"SongID\"", "\"Hash\"")); txtbox.AppendText("\n\n" + MainWindow.globalLanguage.mainMenu.code.playlistsRestored); Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new Action(delegate { })); } catch { txtbox.AppendText(MainWindow.globalLanguage.global.BMBF100); } }
private void finished_upload(object sender, UploadFileCompletedEventArgs e) { Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new Action(delegate { txtbox.AppendText("\n\n" + MainWindow.globalLanguage.global.syncingToBS); })); BMBFUtils.Sync(txtbox); txtbox.AppendText("\n\n" + MainWindow.globalLanguage.global.syncedToBS); Running = false; }
public void Restore(object sender, RoutedEventArgs e) { StartBMBF(); if (running) { return; } running = true; if (Backups.SelectedIndex == 0) { txtbox.AppendText("\n\n" + MainWindow.globalLanguage.bBBU.code.selectValidBackup); running = false; return; } //Get Backup Folders if (!BackupFGet()) { txtbox.AppendText("\n\n" + MainWindow.globalLanguage.processer.ReturnProcessed(MainWindow.globalLanguage.bBBU.code.backupDoesntExist, Backups.SelectedValue.ToString())); running = false; return; } //Check Quest IP if (!MainWindow.iPUtils.CheckIP(Quest)) { txtbox.AppendText("\n\n" + MainWindow.globalLanguage.global.ipInvalid); running = false; return; } if ((bool)RAPK.IsChecked) { MessageBoxResult r = MessageBox.Show(MainWindow.globalLanguage.bBBU.code.rAPKWarning, "BMBF Manager - BMBF Beat Saber Backup Utility", MessageBoxButton.YesNo, MessageBoxImage.Warning); switch (r) { case MessageBoxResult.Yes: txtbox.AppendText("\n\n" + MainWindow.globalLanguage.bBBU.code.restoringAborted); running = false; return; } } MainWindow.DCRPM.SetActivity(MainWindow.globalLanguage.dCRP.restoringBBBUBackup); //APKs if ((bool)RAPK.IsChecked) { RestoreAPK(); } //Scores if ((bool)RScores.IsChecked == true && (bool)RAPK.IsChecked == false) { txtbox.AppendText("\n\n" + MainWindow.globalLanguage.bBBU.code.pushingScores); MainWindow.aDBI.adb("push \"" + Scores + "\\LocalDailyLeaderboards.dat\" /sdcard/Android/data/com.beatgames.beatsaber/files/LocalDailyLeaderboards.dat", txtbox); MainWindow.aDBI.adb("push \"" + Scores + "\\LocalLeaderboards.dat\" /sdcard/Android/data/com.beatgames.beatsaber/files/LocalLeaderboards.dat", txtbox); MainWindow.aDBI.adb("push \"" + Scores + "\\PlayerData.dat\" /sdcard/Android/data/com.beatgames.beatsaber/files/PlayerData.dat", txtbox); MainWindow.aDBI.adb("push \"" + Scores + "\\AvatarData.dat\" /sdcard/Android/data/com.beatgames.beatsaber/files/AvatarData.dat", txtbox); MainWindow.aDBI.adb("push \"" + Scores + "\\settings.cfg\" /sdcard/Android/data/com.beatgames.beatsaber/files/setting.cfg", txtbox); txtbox.AppendText("\n" + MainWindow.globalLanguage.bBBU.code.pushedScores); txtbox.ScrollToEnd(); } //ModData if ((bool)RReplays.IsChecked) { txtbox.AppendText("\n\n" + MainWindow.globalLanguage.bBBU.code.pushingModData); if (Directory.Exists(BackupF + "\\replays")) { MainWindow.aDBI.adb("push \"" + BackupF + "\\replays\" /sdcard/ModData/com.beatgames.beatsaber/Mods/Replay/", txtbox); } if (Directory.Exists(BackupF + "\\Configs")) { MainWindow.aDBI.adb("push \"" + BackupF + "\\Configs\" /sdcard/ModData/com.beatgames.beatsaber/", txtbox); } if (Directory.Exists(BackupF + "\\Qosmetics")) { MainWindow.aDBI.adb("push \"" + BackupF + "\\Qosmetics\" /sdcard/ModData/com.beatgames.beatsaber/Mods/", txtbox); } if (Directory.Exists(BackupF + "\\com.beatgames.beatsaber")) { MainWindow.aDBI.adb("push \"" + BackupF + "\\com.beatgames.beatsaber\" /sdcard/ModData/", txtbox); } if (Directory.Exists(SongsOld)) { if (CheckVer() == 0) { txtbox.AppendText("\n\n" + MainWindow.globalLanguage.bBBU.code.uploadingSongs); Upload(SongsOld, ".zip"); txtbox.AppendText("\n" + MainWindow.globalLanguage.bBBU.code.uploadedSongs); } else if (CheckVer() == 1) { txtbox.AppendText("\n" + MainWindow.globalLanguage.bBBU.code.pushingSongs); if (Directory.Exists(SongsOld)) { Directory.Move(SongsOld, BackupF + "\\CustomLevels"); } MainWindow.aDBI.adb("push \"" + BackupF + "\\CustomLevels\" /sdcard/ModData/com.beatgames.beatsaber/Mods/SongLoader/", txtbox); txtbox.AppendText("\n" + MainWindow.globalLanguage.bBBU.code.pushedSongs); } } txtbox.AppendText("\n" + MainWindow.globalLanguage.bBBU.code.pushedModData); txtbox.ScrollToEnd(); } //Playlists if ((bool)RPlaylists.IsChecked) { Version version = new Version(MainWindow.config.GameVersion); try { WebClient c = new WebClient(); BMBFC config = BMBFUtils.GetBMBFConfig(); version = new Version(config.BeatSaberVersion); } catch { } MessageBoxResult r = MessageBoxResult.Yes; if (BackupConfig.BSVersion.CompareTo(new Version(1, 13, 4)) == -1 && version.CompareTo(new Version(1, 13, 3)) == 1) { r = MessageBox.Show(MainWindow.globalLanguage.bBBU.code.backupOld, "BMBF Manager - BMBF and Beat Saber backup Utility", MessageBoxButton.YesNo, MessageBoxImage.Exclamation); } if (r == MessageBoxResult.Yes) { PlaylistsR(); PushPNG(Playlists + "\\Playlists"); } else { txtbox.AppendText(MainWindow.globalLanguage.playlistEditor.code.aborting); } txtbox.ScrollToEnd(); } //Mods if ((bool)RMods.IsChecked) { txtbox.AppendText("\n\n" + MainWindow.globalLanguage.bBBU.code.uploadingMods); Upload(Mods, ".qmod"); txtbox.AppendText("\n" + MainWindow.globalLanguage.bBBU.code.uploadedMods); txtbox.ScrollToEnd(); } txtbox.AppendText("\n\n\n" + MainWindow.globalLanguage.bBBU.code.restored); txtbox.ScrollToEnd(); running = false; }
public void StartBackup(String BackupName, Boolean Advanced) { StartBMBF(); if (running) { running = false; return; } running = true; if (BackupName != "") { BName.Text = Name; } //Check Quest IP if (!MainWindow.iPUtils.CheckIP(Quest)) { txtbox.AppendText("\n\n" + MainWindow.globalLanguage.global.ipInvalid); running = false; return; } Version version = new Version(MainWindow.config.GameVersion); try { WebClient c = new WebClient(); BMBFC config = BMBFUtils.GetBMBFConfig(); version = new Version(config.BeatSaberVersion); } catch { } BackupConfig.BSVersion = version; if (Advanced) { MessageBoxResult r = MessageBox.Show(MainWindow.globalLanguage.bBBU.code.advancedBackupWarning, "BMBF Manager - BMBF Beat Saber Backup Utility", MessageBoxButton.YesNo, MessageBoxImage.Warning); switch (r) { case MessageBoxResult.No: txtbox.AppendText("\n\n" + MainWindow.globalLanguage.bBBU.code.backupAborted); running = false; return; } } MainWindow.DCRPM.SetActivity(MainWindow.globalLanguage.dCRP.creatingBBBUBackup); //Create all Backup Folders if (!BackupFSet()) { txtbox.AppendText("\n\n" + MainWindow.globalLanguage.bBBU.code.backupExists); running = false; return; } BackupConfig = new BackupConfig(); //Scores txtbox.AppendText("\n\n" + MainWindow.globalLanguage.bBBU.code.backingUpScores); MainWindow.aDBI.adb("pull /sdcard/Android/data/com.beatgames.beatsaber/files/LocalDailyLeaderboards.dat \"" + Scores + "\"", txtbox); MainWindow.aDBI.adb("pull /sdcard/Android/data/com.beatgames.beatsaber/files/LocalLeaderboards.dat \"" + Scores + "\"", txtbox); MainWindow.aDBI.adb("pull /sdcard/Android/data/com.beatgames.beatsaber/files/PlayerData.dat \"" + Scores + "\"", txtbox); MainWindow.aDBI.adb("pull /sdcard/Android/data/com.beatgames.beatsaber/files/AvatarData.dat \"" + Scores + "\"", txtbox); MainWindow.aDBI.adb("pull /sdcard/Android/data/com.beatgames.beatsaber/files/settings.cfg \"" + Scores + "\"", txtbox); txtbox.AppendText("\n" + MainWindow.globalLanguage.bBBU.code.backedUpScores + "\n"); txtbox.ScrollToEnd(); //Songs (now in ModData) //QSE(); //MainWindow.aDBI.adb("pull /sdcard/BMBFData/CustomSongs \"" + BackupF + "\""); //Playlists PlaylistB(); MainWindow.aDBI.adb("pull /sdcard/BMBFData/Playlists/ \"" + Playlists + "\"", txtbox); txtbox.ScrollToEnd(); //ModData txtbox.AppendText("\n\n" + MainWindow.globalLanguage.bBBU.code.backingUpModData); MainWindow.aDBI.adb("pull /sdcard/ModData/com.beatgames.beatsaber \"" + BackupF + "\"", txtbox); txtbox.AppendText("\n" + MainWindow.globalLanguage.bBBU.code.backedUpModData + "\n"); txtbox.ScrollToEnd(); //Mods MainWindow.aDBI.adb("pull /sdcard/BMBFData/Mods \"" + BackupF + "\"", txtbox); if (Advanced) { BackupAPK(); if (!BackupConfig.BMBFBackup) { MessageBox.Show(MainWindow.globalLanguage.bBBU.code.bMBFAPKBackupFailed, "BMBF Manager - BMBF Beat Saber Backup Utility", MessageBoxButton.OK, MessageBoxImage.Error); } if (!BackupConfig.BSBackup) { MessageBox.Show(MainWindow.globalLanguage.bBBU.code.bSAPKBackupFailed, "BMBF Manager - BMBF Beat Saber Backup Utility", MessageBoxButton.OK, MessageBoxImage.Error); } } if (Advanced) { BackupConfig.BackupType = 1; } else { BackupConfig.BackupType = 0; } File.WriteAllText(BackupF + "\\Backup.json", JsonSerializer.Serialize(BackupConfig)); txtbox.AppendText("\n\n\n" + MainWindow.globalLanguage.bBBU.code.backupMade); txtbox.ScrollToEnd(); running = false; }