From 224784031ce3f7d407dea7554d44268696f6af9f Mon Sep 17 00:00:00 2001 From: Andrei Tudor Date: Tue, 16 Jul 2024 11:11:09 +0300 Subject: [PATCH] Checkup for internet connection --- DiscordBotCore/Application.cs | 17 +++++++++++------ .../Online/Helpers/OnlineFunctions.cs | 17 +++++++++++++++++ 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/DiscordBotCore/Application.cs b/DiscordBotCore/Application.cs index a85a5a4..35c87ba 100644 --- a/DiscordBotCore/Application.cs +++ b/DiscordBotCore/Application.cs @@ -9,13 +9,10 @@ using System.Collections.Generic; using System.IO; using System.Threading.Tasks; using DiscordBotCore.Others.Exceptions; -using DiscordBotCore.Loaders; -using DiscordBotCore.Interfaces.Modules; using DiscordBotCore.Interfaces.Logger; using DiscordBotCore.Modules; -using System.Linq; -using System.Collections.Immutable; using System.Diagnostics; +using DiscordBotCore.Online.Helpers; namespace DiscordBotCore @@ -40,8 +37,7 @@ namespace DiscordBotCore public string ServerID => ApplicationEnvironmentVariables["ServerID"]; public string PluginDatabase => ApplicationEnvironmentVariables["PluginDatabase"] ?? _PluginsDatabaseFile; - public string LogFile => $"{ApplicationEnvironmentVariables["LogFolder"]}/{DateTime.Now.ToLongDateString().Replace(" / ", "")}.log"; - + private ModuleManager _ModuleManager; public SettingsDictionary ApplicationEnvironmentVariables { get; private set; } @@ -74,11 +70,20 @@ namespace DiscordBotCore public static async Task CreateApplication() { + + if (!await OnlineFunctions.IsInternetConnected()) + { + Console.WriteLine("No internet connection detected. Exiting ..."); + Environment.Exit(0); + } + if (CurrentApplication is not null) return; CurrentApplication = new Application(); + + Directory.CreateDirectory(_ResourcesFolder); Directory.CreateDirectory(_PluginsFolder); Directory.CreateDirectory(_ArchivesFolder); diff --git a/DiscordBotCore/Online/Helpers/OnlineFunctions.cs b/DiscordBotCore/Online/Helpers/OnlineFunctions.cs index 9134a1b..02868d9 100644 --- a/DiscordBotCore/Online/Helpers/OnlineFunctions.cs +++ b/DiscordBotCore/Online/Helpers/OnlineFunctions.cs @@ -107,4 +107,21 @@ internal static class OnlineFunctions using var client = new HttpClient(); return await client.GetStringAsync(url, cancellation); } + + internal static async Task IsInternetConnected() + { + bool result = false; + try + { + using var client = new HttpClient(); + await client.GetStringAsync("https://www.google.com"); + result = true; + } + catch + { + result = false; + } + + return result; + } }