Пример #1
0
        public App(
            ILogger <App> logger,
            Clash clash,
            ClashApi clashApi,
            ConfigManager configManager,
            IOptions <AppOptions> options,
            IHostEnvironment environment
            )
        {
            this.logger = logger;
            this.clash  = clash;
            _api        = clashApi;
            _options    = options.Value;

            var isDev = environment.IsDevelopment();

            notifyIcon = BuildNotifyIcon(isDev);

            logger.LogInformation("App started.");

            if (isDev)
            {
                return;
            }

            Task.Run(configManager.UpdateConfig);
            Task.Run(StartClash);
        }
Пример #2
0
 private void output_event(ClashApi api, LogMessage logMessage)
 {
     if (this.logTextBox.InvokeRequired && !this.IsDisposed)
     {
         this.Invoke(new ClashApi.LogMessageHandler(this.output_event), new object[] { api, logMessage });
     }
     else
     {
         this.logTextBox.AppendText($"{DateTime.Now.ToLocalTime().ToString()} {logMessage.Type} {logMessage.Payload}{Environment.NewLine}");
         this.logTextBox.ScrollToCaret();
     }
 }
Пример #3
0
 private void initClashWConfig()
 {
     clashApi = new ClashApi($"http://{yamlConfig.ExternalController}");
     if (!String.IsNullOrEmpty(Properties.Settings.Default.SelectedServerName))
     {
         foreach (Proxy proxy in yamlConfig.ProxyList)
         {
             if (Properties.Settings.Default.SelectedServerName.Equals(proxy.Name))
             {
                 SelecteProxy(proxy);
             }
         }
     }
     EnableSystemProxy(Properties.Settings.Default.EnableSystemProxy);
 }
Пример #4
0
 public void RefreshYamlConfig()
 {
     yamlConfig = YalmConfigManager.Instance.GetYamlConfig();
     clashApi.StopLoadLogMessage();
     clashApi = new ClashApi($"http://{yamlConfig.ExternalController}");
 }