internal static async Task Init() { if (!PluginsCore.InitPlugins()) { await Task.Delay(10000).ConfigureAwait(false); } WebBrowser = new WebBrowser(ArchiLogger, GlobalConfig.WebProxy, true); await UpdateAndRestart().ConfigureAwait(false); await PluginsCore.OnASFInitModules(GlobalConfig.AdditionalProperties).ConfigureAwait(false); StringComparer botsComparer = await PluginsCore.GetBotsComparer().ConfigureAwait(false); InitBotsComparer(botsComparer); if (!GlobalConfig.Headless && !Console.IsInputRedirected) { Logging.StartInteractiveConsole(); } if (GlobalConfig.IPC) { await ArchiKestrel.Start().ConfigureAwait(false); } await RegisterBots().ConfigureAwait(false); InitEvents(); }
internal static async Task Init() { WebBrowser = new WebBrowser(ArchiLogger, GlobalConfig.WebProxy, true); await UpdateAndRestart().ConfigureAwait(false); if (!Core.InitPlugins()) { await Task.Delay(10000).ConfigureAwait(false); } await Core.OnASFInitModules(GlobalConfig.AdditionalProperties).ConfigureAwait(false); StringComparer botsComparer = await Core.GetBotsComparer().ConfigureAwait(false); InitBotsComparer(botsComparer); if (GlobalConfig.IPC) { await ArchiKestrel.Start().ConfigureAwait(false); } await RegisterBots(botsComparer).ConfigureAwait(false); InitEvents(); }
private static async Task InitGlobalDatabaseAndServices() { string globalDatabaseFile = Path.Combine(SharedInfo.ConfigDirectory, SharedInfo.GlobalDatabaseFileName); if (!File.Exists(globalDatabaseFile)) { ASF.ArchiLogger.LogGenericInfo(Strings.Welcome); await Task.Delay(10 * 1000).ConfigureAwait(false); ASF.ArchiLogger.LogGenericWarning(Strings.WarningPrivacyPolicy); await Task.Delay(5 * 1000).ConfigureAwait(false); } GlobalDatabase = await GlobalDatabase.Load(globalDatabaseFile).ConfigureAwait(false); if (GlobalDatabase == null) { ASF.ArchiLogger.LogGenericError(string.Format(Strings.ErrorDatabaseInvalid, globalDatabaseFile)); await Task.Delay(5 * 1000).ConfigureAwait(false); await Exit(1).ConfigureAwait(false); return; } // If debugging is on, we prepare debug directory prior to running if (Debugging.IsUserDebugging) { ASF.ArchiLogger.LogGenericDebug(SharedInfo.GlobalDatabaseFileName + ": " + JsonConvert.SerializeObject(GlobalDatabase, Formatting.Indented)); Logging.EnableTraceLogging(); if (Directory.Exists(SharedInfo.DebugDirectory)) { try { Directory.Delete(SharedInfo.DebugDirectory, true); await Task.Delay(1000).ConfigureAwait(false); // Dirty workaround giving Windows some time to sync } catch (IOException e) { ASF.ArchiLogger.LogGenericException(e); } } Directory.CreateDirectory(SharedInfo.DebugDirectory); DebugLog.AddListener(new Debugging.DebugListener()); DebugLog.Enabled = true; } WebBrowser.Init(); WebBrowser = new WebBrowser(ASF.ArchiLogger, GlobalConfig.WebProxy, true); if (GlobalConfig.IPC) { await ArchiKestrel.Start().ConfigureAwait(false); } }
internal static async Task Init() { WebBrowser = new WebBrowser(ArchiLogger, Program.GlobalConfig.WebProxy, true); if (Program.GlobalConfig.IPC) { await ArchiKestrel.Start().ConfigureAwait(false); } await UpdateAndRestart().ConfigureAwait(false); if (!Core.InitPlugins()) { await Task.Delay(10000).ConfigureAwait(false); } await Core.OnASFInitModules(Program.GlobalConfig.AdditionalProperties).ConfigureAwait(false); await InitBots().ConfigureAwait(false); InitEvents(); }
private static async Task OnChangedConfigFile(string name) { if (string.IsNullOrEmpty(name)) { ArchiLogger.LogNullError(nameof(name)); return; } if (!name.Equals(SharedInfo.IPCConfigFile) || (GlobalConfig?.IPC != true)) { return; } if (!await CanHandleWriteEvent(name).ConfigureAwait(false)) { return; } ArchiLogger.LogGenericInfo(Strings.IPCConfigChanged); await ArchiKestrel.Stop().ConfigureAwait(false); await ArchiKestrel.Start().ConfigureAwait(false); }