public override void Update(JObject config) { content = I18N.AnalysingImport; var plainText = config.ToString(); if (cboxGlobalImport.Checked) { var configWithGlobalImports = Lib.Utils.ImportItemList2JObject( setting.GetGlobalImportItems(), false, true, false); Lib.Utils.MergeJson(ref configWithGlobalImports, config); plainText = configWithGlobalImports.ToString(); } VgcApis.Libs.Utils.RunInBackground(() => { string result = ParseConfig(plainText); setting.LazyGC(); VgcApis.Libs.UI.RunInUiThread(editor, () => { content = result; }); }); }
public override void Update(JObject config) { content = I18N.AnalysingImport; var plainText = config.ToString(); if (cboxGlobalImport.Checked) { var configWithGlobalImports = Lib.Utils.ImportItemList2JObject( setting.GetGlobalImportItems(), false, true); Lib.Utils.MergeJson(ref configWithGlobalImports, config); plainText = configWithGlobalImports.ToString(); } Task.Factory.StartNew(() => { string result = ParseConfig(plainText); setting.LazyGC(); editor.Invoke((MethodInvoker) delegate { content = result; }); }); }
public void BackupOptions() { if (!IsOptionsSaved()) { MessageBox.Show(I18N.SaveChangeFirst); return; } var serverString = string.Empty; foreach (var server in Service.Servers.Instance.GetAllServersOrderByIndex()) { // insert a space in the front for regex matching serverString += " v2ray://" + Lib.Utils.Base64Encode(server.GetConfiger().GetConfig()) + Environment.NewLine; } var data = new Dictionary <string, string> { { "import", JsonConvert.SerializeObject(setting.GetGlobalImportItems()) }, { "subscription", JsonConvert.SerializeObject(setting.GetSubscriptionItems()) }, { "servers", serverString }, }; VgcApis.Libs.UI.SaveToFile( VgcApis.Models.Consts.Files.TxtExt, JsonConvert.SerializeObject(data)); }
public void BackupOptions() { if (!IsOptionsSaved()) { MessageBox.Show(I18N.SaveChangeFirst); return; } var serverString = string.Empty; foreach (var server in Service.Servers.Instance.GetAllServersOrderByIndex()) { // insert a space in the front for regex matching serverString += @" " + VgcApis.Models.Datas.Enum.LinkTypes.v2cfg.ToString() + @"://" + Lib.Utils.Base64Encode(server.GetConfiger().GetConfig()) + Environment.NewLine; } var data = new Dictionary <string, string> { { BAK_IMPORT, JsonConvert.SerializeObject(setting.GetGlobalImportItems()) }, { BAK_SUBSCRIPTION, JsonConvert.SerializeObject(setting.GetSubscriptionItems()) }, { BAK_SERVERS, serverString }, { BAK_PLUGINS, setting.AllPluginsSetting }, }; VgcApis.Libs.UI.SaveToFile( VgcApis.Models.Consts.Files.TxtExt, JsonConvert.SerializeObject(data)); }
string InjectGlobalImport(string config, bool isIncludeSpeedTest, bool isIncludeActivate) { JObject import = Lib.Utils.ImportItemList2JObject( setting.GetGlobalImportItems(), isIncludeSpeedTest, isIncludeActivate); Lib.Utils.MergeJson(ref import, JObject.Parse(config)); return(import.ToString()); }
void InitPanel() { var importUrlItemList = setting.GetGlobalImportItems(); this.oldOptions = JsonConvert.SerializeObject(importUrlItemList); if (importUrlItemList.Count <= 0) { importUrlItemList.Add(new Model.Data.UrlItem()); } foreach (var item in importUrlItemList) { this.flyPanel.Controls.Add(new Model.UserControls.UrlListItem(item, UpdatePanelItemsIndex)); } UpdatePanelItemsIndex(); }
public void BackupOptions() { if (!IsOptionsSaved()) { MessageBox.Show(I18N.SaveChangeFirst); return; } var serverString = string.Empty; foreach (var server in Service.Servers.Instance.GetServerList()) { // insert a space in the front for regex matching serverString += " v2ray://" + Lib.Utils.Base64Encode(server.config) + Environment.NewLine; } var data = new Dictionary <string, string> { { "import", JsonConvert.SerializeObject(setting.GetGlobalImportItems()) }, { "subscription", JsonConvert.SerializeObject(setting.GetSubscriptionItems()) }, { "servers", serverString }, }; switch (Lib.UI.ShowSaveFileDialog( StrConst.ExtText, JsonConvert.SerializeObject(data), out string filename)) { case Model.Data.Enum.SaveFileErrorCode.Success: MessageBox.Show(I18N.Done); break; case Model.Data.Enum.SaveFileErrorCode.Fail: MessageBox.Show(I18N.WriteFileFail); break; case Model.Data.Enum.SaveFileErrorCode.Cancel: // do nothing break; } }