mirror of
https://github.com/tgstation/tgstation-server.git
synced 2026-08-22 20:47:28 +01:00
debug var for irc provider
This commit is contained in:
@@ -13,6 +13,7 @@ using Newtonsoft.Json;
|
||||
|
||||
using Tgstation.Server.Api.Models;
|
||||
using Tgstation.Server.Host.Components.Interop;
|
||||
using Tgstation.Server.Host.Configuration;
|
||||
using Tgstation.Server.Host.Extensions;
|
||||
using Tgstation.Server.Host.IO;
|
||||
using Tgstation.Server.Host.Jobs;
|
||||
@@ -87,6 +88,11 @@ namespace Tgstation.Server.Host.Components.Chat.Providers
|
||||
/// </summary>
|
||||
readonly IAssemblyInformationProvider assemblyInfo;
|
||||
|
||||
/// <summary>
|
||||
/// The <see cref="FileLoggingConfiguration"/> for the <see cref="IrcProvider"/>.
|
||||
/// </summary>
|
||||
readonly FileLoggingConfiguration loggingConfiguration;
|
||||
|
||||
/// <summary>
|
||||
/// The <see cref="IrcFeatures"/> client.
|
||||
/// </summary>
|
||||
@@ -110,12 +116,14 @@ namespace Tgstation.Server.Host.Components.Chat.Providers
|
||||
/// <param name="logger">The <see cref="ILogger"/> for the <see cref="Provider"/>.</param>
|
||||
/// <param name="assemblyInformationProvider">The <see cref="IAssemblyInformationProvider"/> to get the <see cref="IAssemblyInformationProvider.VersionString"/> from.</param>
|
||||
/// <param name="chatBot">The <see cref="Models.ChatBot"/> for the <see cref="Provider"/>.</param>
|
||||
/// <param name="loggingConfiguration">The <see cref="FileLoggingConfiguration"/> for the <see cref="Provider"/>.</param>
|
||||
public IrcProvider(
|
||||
IJobManager jobManager,
|
||||
IAsyncDelayer asyncDelayer,
|
||||
ILogger<IrcProvider> logger,
|
||||
IAssemblyInformationProvider assemblyInformationProvider,
|
||||
Models.ChatBot chatBot)
|
||||
Models.ChatBot chatBot,
|
||||
FileLoggingConfiguration loggingConfiguration)
|
||||
: base(jobManager, asyncDelayer, logger, chatBot)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(assemblyInformationProvider);
|
||||
@@ -132,7 +140,8 @@ namespace Tgstation.Server.Host.Components.Chat.Providers
|
||||
password = ircBuilder.Password!;
|
||||
passwordType = ircBuilder.PasswordType;
|
||||
|
||||
assemblyInfo = assemblyInformationProvider;
|
||||
assemblyInfo = assemblyInformationProvider ?? throw new ArgumentNullException(nameof(assemblyInformationProvider));
|
||||
this.loggingConfiguration = loggingConfiguration ?? throw new ArgumentNullException(nameof(loggingConfiguration));
|
||||
|
||||
client = InstantiateClient();
|
||||
|
||||
@@ -731,14 +740,17 @@ namespace Tgstation.Server.Host.Components.Chat.Providers
|
||||
newClient.OnChannelMessage += Client_OnChannelMessage;
|
||||
newClient.OnQueryMessage += Client_OnQueryMessage;
|
||||
|
||||
/* newClient.OnReadLine += (sender, e) => Logger.LogTrace("READ: {line}", e.Line);
|
||||
newClient.OnWriteLine += (sender, e) => Logger.LogTrace("WRITE: {line}", e.Line); */
|
||||
if (loggingConfiguration.ProviderNetworkDebug)
|
||||
{
|
||||
newClient.OnReadLine += (sender, e) => Logger.LogTrace("READ: {line}", e.Line);
|
||||
newClient.OnWriteLine += (sender, e) => Logger.LogTrace("WRITE: {line}", e.Line);
|
||||
}
|
||||
|
||||
newClient.OnError += (sender, e) =>
|
||||
{
|
||||
Logger.LogError("IRC ERROR: {error}", e.ErrorMessage);
|
||||
newClient.Disconnect();
|
||||
};
|
||||
{
|
||||
Logger.LogError("IRC ERROR: {error}", e.ErrorMessage);
|
||||
newClient.Disconnect();
|
||||
};
|
||||
|
||||
return newClient;
|
||||
}
|
||||
|
||||
@@ -40,6 +40,11 @@ namespace Tgstation.Server.Host.Components.Chat.Providers
|
||||
/// </summary>
|
||||
readonly GeneralConfiguration generalConfiguration;
|
||||
|
||||
/// <summary>
|
||||
/// The <see cref="FileLoggingConfiguration"/> for the <see cref="ProviderFactory"/>.
|
||||
/// </summary>
|
||||
readonly FileLoggingConfiguration loggingConfiguration;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ProviderFactory"/> class.
|
||||
/// </summary>
|
||||
@@ -48,18 +53,21 @@ namespace Tgstation.Server.Host.Components.Chat.Providers
|
||||
/// <param name="asyncDelayer">The value of <see cref="asyncDelayer"/>.</param>
|
||||
/// <param name="loggerFactory">The value of <see cref="loggerFactory"/>.</param>
|
||||
/// <param name="generalConfigurationOptions">The <see cref="IOptions{TOptions}"/> containing the value of <see cref="generalConfiguration"/>.</param>
|
||||
/// <param name="loggingConfigurationOptions">The <see cref="IOptions{TOptions}"/> containing the value of <see cref="loggingConfiguration"/>.</param>
|
||||
public ProviderFactory(
|
||||
IJobManager jobManager,
|
||||
IAssemblyInformationProvider assemblyInformationProvider,
|
||||
IAsyncDelayer asyncDelayer,
|
||||
ILoggerFactory loggerFactory,
|
||||
IOptions<GeneralConfiguration> generalConfigurationOptions)
|
||||
IOptions<GeneralConfiguration> generalConfigurationOptions,
|
||||
IOptions<FileLoggingConfiguration> loggingConfigurationOptions)
|
||||
{
|
||||
this.jobManager = jobManager ?? throw new ArgumentNullException(nameof(jobManager));
|
||||
this.loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
|
||||
this.asyncDelayer = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer));
|
||||
this.assemblyInformationProvider = assemblyInformationProvider ?? throw new ArgumentNullException(nameof(assemblyInformationProvider));
|
||||
generalConfiguration = generalConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(generalConfigurationOptions));
|
||||
loggingConfiguration = loggingConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(loggingConfigurationOptions));
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
@@ -73,7 +81,8 @@ namespace Tgstation.Server.Host.Components.Chat.Providers
|
||||
asyncDelayer,
|
||||
loggerFactory.CreateLogger<IrcProvider>(),
|
||||
assemblyInformationProvider,
|
||||
settings),
|
||||
settings,
|
||||
loggingConfiguration),
|
||||
ChatProvider.Discord => new DiscordProvider(
|
||||
jobManager,
|
||||
asyncDelayer,
|
||||
|
||||
@@ -29,6 +29,11 @@ namespace Tgstation.Server.Host.Configuration
|
||||
/// </summary>
|
||||
public bool Disable { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// If Chat Providers should log their network traffic. Normally disabled because it is too noisy.
|
||||
/// </summary>
|
||||
public bool ProviderNetworkDebug { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The minimum <see cref="Microsoft.Extensions.Logging.LogLevel"/> to display in logs.
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user