mirror of
https://github.com/Bubuni-Team/telegram-bot.git
synced 2026-07-31 00:29:24 +03:00
🚧 Core improvements
This commit is contained in:
+10
-2
@@ -4,6 +4,7 @@ using System.IO;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
namespace Kruzya.TelegramBot.Core
|
namespace Kruzya.TelegramBot.Core
|
||||||
{
|
{
|
||||||
@@ -47,7 +48,7 @@ namespace Kruzya.TelegramBot.Core
|
|||||||
// And register in internal temporary array.
|
// And register in internal temporary array.
|
||||||
var modulesDirectory = new List<string>(new string[]
|
var modulesDirectory = new List<string>(new string[]
|
||||||
{
|
{
|
||||||
Path.Join(Assembly.GetExecutingAssembly().Location, "modules"),
|
Path.Join(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "modules"),
|
||||||
Path.Join(Environment.CurrentDirectory, "modules")
|
Path.Join(Environment.CurrentDirectory, "modules")
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -58,7 +59,7 @@ namespace Kruzya.TelegramBot.Core
|
|||||||
return modulesDirectory;
|
return modulesDirectory;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
public Core(IConfiguration configuration)
|
public Core(IConfiguration configuration)
|
||||||
@@ -92,6 +93,12 @@ namespace Kruzya.TelegramBot.Core
|
|||||||
types.AddRange(assemblyTypes);
|
types.AddRange(assemblyTypes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Instantiate them.
|
||||||
|
foreach (var module in types)
|
||||||
|
{
|
||||||
|
EnsureLoaded(module);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -143,6 +150,7 @@ namespace Kruzya.TelegramBot.Core
|
|||||||
if (module == null)
|
if (module == null)
|
||||||
{
|
{
|
||||||
module = (Module) Activator.CreateInstance(moduleType, this);
|
module = (Module) Activator.CreateInstance(moduleType, this);
|
||||||
|
Console.WriteLine($"Started module {module.GetType().FullName}");
|
||||||
_modules.Add(module);
|
_modules.Add(module);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
using System;
|
||||||
|
using System.Net.Http;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace Kruzya.TelegramBot.Core.Extensions
|
||||||
|
{
|
||||||
|
public static class HttpClientExtension
|
||||||
|
{
|
||||||
|
public static async Task<T> GetJsonAsync<T>(this HttpClient client, Uri requestUri)
|
||||||
|
{
|
||||||
|
var response = await client.GetStringAsync(requestUri);
|
||||||
|
return JsonConvert.DeserializeObject<T>(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static async Task<T> GetJsonAsync<T>(this HttpClient client, string requestUri)
|
||||||
|
{
|
||||||
|
var response = await client.GetStringAsync(requestUri);
|
||||||
|
return JsonConvert.DeserializeObject<T>(response);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
|
||||||
namespace Kruzya.TelegramBot.Core
|
namespace Kruzya.TelegramBot.Core.Extensions
|
||||||
{
|
{
|
||||||
internal static class ModuleArrayExtension
|
internal static class ModuleArrayExtension
|
||||||
{
|
{
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
using System.Web;
|
||||||
|
|
||||||
|
namespace Kruzya.TelegramBot.Core.Extensions
|
||||||
|
{
|
||||||
|
public static class StringExtension
|
||||||
|
{
|
||||||
|
public static string HtmlEncode(this string content)
|
||||||
|
{
|
||||||
|
return HttpUtility.HtmlEncode(content);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string HtmlDecode(this string content)
|
||||||
|
{
|
||||||
|
return HttpUtility.HtmlDecode(content);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
using System.Text;
|
||||||
|
using Telegram.Bot.Types;
|
||||||
|
|
||||||
|
namespace Kruzya.TelegramBot.Core.Extensions
|
||||||
|
{
|
||||||
|
public static class UserExtension
|
||||||
|
{
|
||||||
|
public static string ToHtml(this User user)
|
||||||
|
{
|
||||||
|
var text = new StringBuilder();
|
||||||
|
text.Append("<a href=\"tg://user?id={member.Id}\">");
|
||||||
|
if (!string.IsNullOrWhiteSpace(user.Username))
|
||||||
|
text.Append(user.Username);
|
||||||
|
else
|
||||||
|
text.Append($"{user.FirstName} {user.LastName}".Trim().HtmlEncode());
|
||||||
|
text.Append("</a>");
|
||||||
|
|
||||||
|
return text.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+2
-1
@@ -1,4 +1,5 @@
|
|||||||
using BotFramework;
|
using BotFramework;
|
||||||
|
using Kruzya.TelegramBot.Core.Extensions;
|
||||||
using Microsoft.AspNetCore.Builder;
|
using Microsoft.AspNetCore.Builder;
|
||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
@@ -23,7 +24,7 @@ namespace Kruzya.TelegramBot.Core
|
|||||||
{
|
{
|
||||||
services.AddTelegramBot();
|
services.AddTelegramBot();
|
||||||
services.AddLogging(builder => builder.AddConsole());
|
services.AddLogging(builder => builder.AddConsole());
|
||||||
|
|
||||||
_core.Modules.ConfigureServices(services);
|
_core.Modules.ConfigureServices(services);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user