Redo proxy support + minor fixes

This commit is contained in:
jetsparrow 2026-03-30 16:09:50 +03:00
parent 5100f7462d
commit 37faf1b601
4 changed files with 37 additions and 7 deletions

View File

@ -8,11 +8,13 @@ public class ConnectionStrings
public class TelegramConfig
{
public string ApiKey { get; set; }
public string? ProxyUrl { get; set; }
}
public class DiscordConfig
{
public string Token { get; set; }
public string? ProxyUrl { get; set; }
}
public class TimeoutConfig

View File

@ -1,6 +1,8 @@
using DSharpPlus;
using DSharpPlus.CommandsNext;
using JetHerald.Commands;
using System.Net;
using System.Net.Http;
namespace JetHerald.Services;
public partial class JetHeraldBot
{
@ -9,15 +11,27 @@ public partial class JetHeraldBot
async Task StartDiscord()
{
if (string.IsNullOrWhiteSpace(DiscordConfig.Token))
{
Log.LogInformation("No Discord token, ignoring.");
return;
}
DiscordBot = new DiscordClient(new()
Log.LogInformation("Starting Discord client.");
DiscordConfiguration cfg = new()
{
Token = DiscordConfig.Token,
TokenType = TokenType.Bot,
Intents = DiscordIntents.AllUnprivileged,
LoggerFactory = LoggerFactory
});
};
if (!string.IsNullOrWhiteSpace(DiscordConfig.ProxyUrl))
{
cfg.Proxy = new WebProxy(DiscordConfig.ProxyUrl);
}
DiscordBot = new DiscordClient(cfg);
var commands = DiscordBot.UseCommandsNext(new CommandsNextConfiguration()
{

View File

@ -1,12 +1,12 @@
using JetHerald.Commands;
using System.Net;
using System.Net.Http;
using System.Threading;
using Telegram.Bot;
using Telegram.Bot.Exceptions;
using Telegram.Bot.Polling;
using Telegram.Bot.Types;
using Telegram.Bot.Types.Enums;
using Telegram.Bot.Exceptions;
using JetHerald.Commands;
namespace JetHerald.Services;
public partial class JetHeraldBot
@ -18,9 +18,23 @@ public partial class JetHeraldBot
async Task StartTelegram()
{
if (string.IsNullOrWhiteSpace(TelegramConfig.ApiKey))
{
Log.LogInformation("No Telegram token, ignoring.");
return;
}
Client = new TelegramBotClient(TelegramConfig.ApiKey);
Log.LogInformation("Starting Telegram client.");
var httpClientHandler = new HttpClientHandler();
if (!string.IsNullOrWhiteSpace(TelegramConfig.ProxyUrl))
{
httpClientHandler.Proxy = new WebProxy(TelegramConfig.ProxyUrl);
httpClientHandler.UseProxy = true;
}
var httpClient = new HttpClient(httpClientHandler);
Client = new TelegramBotClient(TelegramConfig.ApiKey, httpClient);
Me = await Client.GetMeAsync();
Log.LogInformation("Connected to Telegram as {username}, id:{id})", Me.Username, Me.Id);