Example #1
0
        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;
                });
            });
        }
Example #2
0
        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;
                });
            });
        }
Example #3
0
        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));
        }
Example #4
0
        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));
        }
Example #5
0
        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());
        }
Example #6
0
        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();
        }
Example #7
0
        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;
            }
        }