Example #1
0
        public Quick(
            Button skipCN,
            Button mtProto,
            CheckBox chkUseV4)
        {
            cache     = Service.Cache.Instance;
            servers   = Service.Servers.Instance;
            configMgr = Service.ConfigMgr.Instance;

            isUseV4 = chkUseV4.Checked;
            chkUseV4.CheckedChanged += (s, a) =>
            {
                isUseV4 = chkUseV4.Checked;
            };

            skipCN.Click += (s, a) =>
            {
                container.InjectConfigHelper(
                    () => configMgr
                    .InjectSkipCnSiteSettingsIntoConfig(
                        ref container.config,
                        isUseV4)
                    );
            };

            mtProto.Click += (s, a) =>
            {
                container.InjectConfigHelper(() =>
                {
                    InsertMTProto(ref container.config);
                });
            };
        }
Example #2
0
        public MenuItemsServer(
            ToolStripMenuItem stopSelected,
            ToolStripMenuItem restartSelected,
            ToolStripMenuItem clearSysProxy,
            ToolStripMenuItem refreshSummary,
            ToolStripMenuItem speedTestOnSelected,
            ToolStripMenuItem deleteSelected,
            ToolStripMenuItem copyAsV2rayLinks,
            ToolStripMenuItem copyAsVmessLinks,
            ToolStripMenuItem copyAsSubscriptions,
            ToolStripMenuItem deleteAllItems,
            ToolStripMenuItem modifySelected,
            ToolStripMenuItem packSelected,
            ToolStripMenuItem moveToTop,
            ToolStripMenuItem moveToBottom,
            ToolStripMenuItem collapsePanel,
            ToolStripMenuItem expansePanel,
            ToolStripMenuItem sortBySpeed,
            ToolStripMenuItem sortBySummary)
        {
            cache   = Service.Cache.Instance;
            servers = Service.Servers.Instance;

            InitCtrlSorting(sortBySpeed, sortBySummary);
            InitCtrlView(moveToTop, moveToBottom, collapsePanel, expansePanel);
            InitCtrlCopyToClipboard(copyAsV2rayLinks, copyAsVmessLinks, copyAsSubscriptions);
            InitCtrlDelete(deleteSelected, deleteAllItems);
            InitCtrlBatchOperation(stopSelected, restartSelected, speedTestOnSelected, modifySelected, packSelected);
            InitCtrlSysProxy(clearSysProxy, refreshSummary);
        }
Example #3
0
        public void Run(
            Service.Cache cache,
            Service.Setting setting,
            Service.ConfigMgr configMgr,
            Service.Servers servers)
        {
            //external dependency injection
            coreCtrl = new CoreServerComponent.CoreCtrl(setting, configMgr);
            states   = new CoreServerComponent.CoreStates(servers, coreInfo);
            logger   = new CoreServerComponent.Logger(setting);
            configer = new CoreServerComponent.Configer(
                setting, cache, configMgr, servers, coreInfo);

            Plug(this, coreCtrl);
            Plug(this, states);
            Plug(this, logger);
            Plug(this, configer);

            //inter-container dependency injection
            coreCtrl.Prepare();
            states.Prepare();
            logger.Prepare();
            configer.Prepare();


            //other initializiations
            coreCtrl.BindEvents();
        }
Example #4
0
        public MenuItemsServer(
            ToolStripMenuItem stopSelected,
            ToolStripMenuItem restartSelected,
            ToolStripMenuItem clearSysProxy,
            ToolStripMenuItem refreshSummary,
            ToolStripMenuItem selectAllAutorun,
            ToolStripMenuItem selectAll,
            ToolStripMenuItem selectNone,
            ToolStripMenuItem selectInvert,
            ToolStripMenuItem speedTestOnSelected,
            ToolStripMenuItem deleteSelected,
            ToolStripMenuItem copyAsV2rayLinks,
            ToolStripMenuItem copyAsVmessLinks,
            ToolStripMenuItem copyAsSubscriptions,
            ToolStripMenuItem deleteAllItems,
            ToolStripMenuItem modifySelected,
            ToolStripMenuItem packSelected,
            ToolStripMenuItem moveToTop,
            ToolStripMenuItem moveToBottom,
            ToolStripMenuItem collapsePanel,
            ToolStripMenuItem expansePanel)
        {
            cache   = Service.Cache.Instance;
            servers = Service.Servers.Instance;

            InitBatchOperation(
                stopSelected, restartSelected, speedTestOnSelected,
                deleteSelected, copyAsV2rayLinks, copyAsVmessLinks, copyAsSubscriptions,
                deleteAllItems, modifySelected, packSelected,
                moveToTop, moveToBottom, collapsePanel, expansePanel);
            InitSelection(selectAllAutorun, selectAll, selectNone, selectInvert);
            InitMisc(clearSysProxy, refreshSummary);
        }
Example #5
0
        public MenuItemsServer(
            // for invoke ui refresh
            MenuStrip menuContainer,

            // misc
            ToolStripMenuItem refreshSummary,
            ToolStripMenuItem deleteAllServers,
            ToolStripMenuItem deleteSelected,

            // copy
            ToolStripMenuItem copyAsV2cfgLinks,
            ToolStripMenuItem copyAsVmessLinks,
            ToolStripMenuItem copyAsVeeLinks,
            ToolStripMenuItem copyAsVmessSubscriptions,
            ToolStripMenuItem copyAsVeeSubscriptions,

            // batch op
            ToolStripMenuItem speedTestOnSelected,

            ToolStripMenuItem modifySelected,
            ToolStripMenuItem stopSelected,
            ToolStripMenuItem restartSelected,

            // view
            ToolStripMenuItem moveToTop,
            ToolStripMenuItem moveToBottom,
            ToolStripMenuItem foldPanel,
            ToolStripMenuItem expansePanel,
            ToolStripMenuItem sortBySpeed,
            ToolStripMenuItem sortBySummary)
        {
            cache    = Service.Cache.Instance;
            servers  = Service.Servers.Instance;
            setting  = Service.Setting.Instance;
            slinkMgr = Service.ShareLinkMgr.Instance;

            this.menuContainer = menuContainer; // for invoke ui update

            InitCtrlSorting(sortBySpeed, sortBySummary);
            InitCtrlView(moveToTop, moveToBottom, foldPanel, expansePanel);

            InitCtrlCopyToClipboard(
                copyAsV2cfgLinks,
                copyAsVmessLinks,
                copyAsVeeLinks,
                copyAsVmessSubscriptions,
                copyAsVeeSubscriptions);

            InitCtrlMisc(
                refreshSummary,
                deleteSelected,
                deleteAllServers);

            InitCtrlBatchOperation(
                stopSelected,
                restartSelected,
                speedTestOnSelected,
                modifySelected);
        }
Example #6
0
        public Configer(int serverIndex = -1)
        {
            cache   = Service.Cache.Instance;
            setting = Service.Setting.Instance;

            components = new Dictionary <Type, Model.BaseClass.ConfigerComponent>();
            ClearOriginalConfig();
            LoadConfig(serverIndex);
        }
Example #7
0
        public Configer(string originalConfig)
        {
            cache   = Service.Cache.Instance;
            setting = Service.Setting.Instance;

            this.originalFile   = string.Empty;
            this.originalConfig = string.Empty;

            LoadConfig(originalConfig);
        }
Example #8
0
 public Configer(
     Service.Setting setting,
     Service.Cache cache,
     Service.ConfigMgr configMgr,
     Service.Servers servers,
     VgcApis.Models.Datas.CoreInfo coreInfo)
 {
     this.configMgr = configMgr;
     this.setting   = setting;
     this.cache     = cache;
     this.servers   = servers;
     this.coreInfo  = coreInfo;
 }
Example #9
0
        public void Run(
            Service.Cache cache,
            Service.Setting setting,
            Service.Servers servers)
        {
            this.cache   = cache;
            this.servers = servers;
            this.setting = setting;

            server        = new Service.Core(setting);
            server.OnLog += OnLogHandler;
            server.OnCoreStatusChanged += OnCoreStateChangedHandler;
        }
Example #10
0
        public MenuItemsServer(
            // for invoke ui refresh
            MenuStrip menuContainer,

            // system proxy
            ToolStripMenuItem curSysProxySummary,
            ToolStripMenuItem copyCurPacUrl,
            ToolStripMenuItem visitCurPacDebuggerUrl,
            ToolStripMenuItem clearSysProxy,
            ToolStripMenuItem restartPACServer,
            ToolStripMenuItem stopPACServer,

            // misc
            ToolStripMenuItem refreshSummary,
            ToolStripMenuItem deleteAllServers,
            ToolStripMenuItem deleteSelected,

            // copy
            ToolStripMenuItem copyAsV2rayLinks,
            ToolStripMenuItem copyAsVmessLinks,
            ToolStripMenuItem copyAsSubscriptions,

            // batch op
            ToolStripMenuItem speedTestOnSelected,
            ToolStripMenuItem modifySelected,
            ToolStripMenuItem packSelected,
            ToolStripMenuItem stopSelected,
            ToolStripMenuItem restartSelected,

            // view
            ToolStripMenuItem moveToTop,
            ToolStripMenuItem moveToBottom,
            ToolStripMenuItem foldPanel,
            ToolStripMenuItem expansePanel,
            ToolStripMenuItem sortBySpeed,
            ToolStripMenuItem sortBySummary)
        {
            cache     = Service.Cache.Instance;
            servers   = Service.Servers.Instance;
            setting   = Service.Setting.Instance;
            pacServer = Service.PacServer.Instance;

            this.menuContainer = menuContainer; // for invoke ui update

            InitCtrlSorting(sortBySpeed, sortBySummary);
            InitCtrlView(moveToTop, moveToBottom, foldPanel, expansePanel);
            InitCtrlCopyToClipboard(copyAsV2rayLinks, copyAsVmessLinks, copyAsSubscriptions);
            InitCtrlMisc(refreshSummary, deleteSelected, deleteAllServers);
            InitCtrlBatchOperation(stopSelected, restartSelected, speedTestOnSelected, modifySelected, packSelected);
            InitCtrlSysProxy(curSysProxySummary, copyCurPacUrl, visitCurPacDebuggerUrl, clearSysProxy, restartPACServer, stopPACServer);
        }
Example #11
0
 public StreamSettings(
     ComboBox type,
     ComboBox param,
     RadioButton inbound,
     Button insert,
     CheckBox tls,
     CheckBox sockopt)
 {
     cache    = Service.Cache.Instance;
     isServer = false;
     DataBinding(type, param, tls, sockopt);
     Connect(type, param);
     AttachEvent(inbound, insert);
     InitComboBox(type);
 }
Example #12
0
        public Editor(
            Panel container,
            ComboBox cboxSection,
            ComboBox cboxExample,
            Button btnFormat,
            Button btnRestore)
        {
            cache = Service.Cache.Instance;

            this.cboxSection = cboxSection;
            this.cboxExample = cboxExample;
            this.btnFormat   = btnFormat;
            this.btnRestore  = btnRestore;

            CreateEditor(container);
        }
Example #13
0
        public Shadowsocks(
            RadioButton rbtnInboundMode,
            TextBox tboxAddress,
            TextBox tboxPassword,
            CheckBox chkIsShowPassword,
            ComboBox cboxMethods,
            CheckBox chkIsUseOTA,
            Button btnInsert)
        {
            cache        = Service.Cache.Instance;
            isServerMode = false;

            Lib.UI.FillComboBox(cboxMethods, Model.Data.Table.ssMethods);
            Lib.UI.ResetComboBoxDropdownMenuWidth(cboxMethods);

            AttachEvents(tboxPassword, chkIsShowPassword, btnInsert, rbtnInboundMode);
            DataBinding(tboxAddress, tboxPassword, cboxMethods, chkIsUseOTA);
        }
Example #14
0
        public Editor(
            Panel container,
            ComboBox section,
            ComboBox example,
            Button format,
            Button restore)
        {
            cache = Service.Cache.Instance;

            separator  = Model.Data.Table.sectionSeparator;
            sections   = Model.Data.Table.configSections;
            preSection = 0;

            BindEditor(container);
            AttachEvent(section, example, format, restore);

            Lib.UI.FillComboBox(section, Model.Data.Table.configSections);
        }
Example #15
0
        public Quick(Button skipCN, Button mtProto)
        {
            cache = Service.Cache.Instance;

            skipCN.Click += (s, a) =>
            {
                container.InjectConfigHelper(() =>
                {
                    container.config = GetSkipCNSite();
                });
            };

            mtProto.Click += (s, a) =>
            {
                container.InjectConfigHelper(() =>
                {
                    container.config = GetMTProto();
                });
            };
        }
Example #16
0
        public Configer(Scintilla element, int serverIndex = -1)
        {
            cache          = Service.Cache.Instance;
            setting        = Service.Setting.Instance;
            ssServer       = new SSServer();
            ssClient       = new SSClient();
            streamSettings = new StreamSettings();
            vmessCtrl      = new VmessCtrl();
            editor         = new Editor();
            vgc            = new VGC();
            import         = new Import(element);

            separator  = Model.Data.Table.sectionSeparator;
            sections   = Model.Data.Table.configSections;
            preSection = 0;
            ClearOriginalConfig();

            LoadConfig(serverIndex);
            editor.content = config.ToString();
            UpdateData();
        }
Example #17
0
 public static void Run(Service.Cache cacheServ)
 {
     cache = cacheServ;
 }
Example #18
0
        public ServerMenuItems(
            ToolStripMenuItem stopSelected,
            ToolStripMenuItem restartSelected,
            ToolStripMenuItem clearSysProxy,
            ToolStripMenuItem refreshSummary,
            ToolStripMenuItem selectAllAutorun,
            ToolStripMenuItem selectAll,
            ToolStripMenuItem selectNone,
            ToolStripMenuItem selectInvert,
            ToolStripMenuItem speedTestOnSelected,
            ToolStripMenuItem deleteSelected,
            ToolStripMenuItem copyAsV2rayLinks,
            ToolStripMenuItem copyAsVmessLinks,
            ToolStripMenuItem copyAsSubscriptions,
            ToolStripMenuItem deleteAllItems)
        {
            setting = Service.Setting.Instance;
            cache   = Service.Cache.Instance;

            deleteAllItems.Click += (s, a) =>
            {
                if (Lib.UI.Confirm(I18N("ConfirmDeleteAllServers")))
                {
                    setting.DeleteAllServer();
                }
            };

            copyAsSubscriptions.Click += (s, a) =>
            {
                if (!CheckSelectedServerCount())
                {
                    return;
                }
                CopySelectedAsSubscription();
            };

            copyAsV2rayLinks.Click += (s, a) =>
            {
                if (!CheckSelectedServerCount())
                {
                    return;
                }

                CopySelectedAsV2RayLinks();
            };

            copyAsVmessLinks.Click += (s, a) =>
            {
                if (!CheckSelectedServerCount())
                {
                    return;
                }

                CopySelectedAsVmessLinks();
            };

            deleteSelected.Click += (s, a) =>
            {
                if (!CheckSelectedServerCount())
                {
                    return;
                }

                if (!Lib.UI.Confirm(I18N("ConfirmDeleteSelectedServers")))
                {
                    return;
                }
                setting.DeleteSelectedServers();
            };

            speedTestOnSelected.Click += (s, a) =>
            {
                if (!CheckSelectedServerCount())
                {
                    return;
                }

                if (!Lib.UI.Confirm(I18N("TestWillTakeALongTime")))
                {
                    return;
                }

                if (!setting.DoSpeedTestOnSelectedServers())
                {
                    MessageBox.Show(I18N("LastTestNoFinishYet"));
                }
            };

            stopSelected.Click += (s, a) =>
            {
                if (!CheckSelectedServerCount())
                {
                    return;
                }

                if (Lib.UI.Confirm(I18N("ConfirmStopAllSelectedServers")))
                {
                    setting.StopAllSelectedThen();
                }
            };

            restartSelected.Click += (s, a) =>
            {
                if (!CheckSelectedServerCount())
                {
                    return;
                }

                if (Lib.UI.Confirm(I18N("ConfirmRestartAllSelectedServers")))
                {
                    setting.RestartAllSelected();
                }
            };

            selectAllAutorun.Click += (s, a) =>
            {
                var panel = GetFlyPanel();
                panel.SelectAutorun();
            };

            selectAll.Click += (s, a) =>
            {
                var panel = GetFlyPanel();
                panel.SelectAll();
            };

            selectNone.Click += (s, a) =>
            {
                var panel = GetFlyPanel();
                panel.SelectNone();
            };

            selectInvert.Click += (s, a) =>
            {
                var panel = GetFlyPanel();
                panel.SelectInvert();
            };


            clearSysProxy.Click += (s, a) =>
            {
                if (Lib.UI.Confirm(I18N("ConfirmClearSysProxy")))
                {
                    setting.ClearSystemProxy();
                }
            };

            refreshSummary.Click += (s, a) =>
            {
                cache.html.Clear();
                setting.UpdateAllServersSummary();
            };
        }
Example #19
0
 public StreamSettings()
 {
     cache     = Service.Cache.Instance;
     _isServer = false;
 }