Skip to content

Commit 17ef712

Browse files
committed
Add Serilog package and integrate TwitchAPI
The Serilog package has been added to the existing package references, enhancing the logging capability of the bot runner project. TwitchAPI has been integrated as a singleton within the Services configuration. Changes also include initiating TwitchAPI with OAuthToken and ClientId within Program.cs, and utilizing it for deleting chat messages within TwitchWorker.
1 parent e09b94f commit 17ef712

File tree

3 files changed

+29
-15
lines changed

3 files changed

+29
-15
lines changed

src/GolfClapBot.Runner/GolfClapBot.Runner.csproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@
1414
<ItemGroup>
1515
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0"/>
1616
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="8.0.0"/>
17+
<PackageReference Include="Serilog" Version="3.1.1"/>
18+
<PackageReference Include="Serilog.AspNetCore" Version="8.0.0"/>
19+
<PackageReference Include="Serilog.Extensions.Logging" Version="8.0.0"/>
20+
<PackageReference Include="Serilog.Settings.Configuration" Version="8.0.0"/>
21+
<PackageReference Include="Serilog.Sinks.Console" Version="5.0.1"/>
22+
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0"/>
1723
<PackageReference Include="TwitchLib" Version="3.5.3"/>
1824
<PackageReference Include="TwitchLib.Client" Version="4.0.0-preview-e20160e648c6906e7c2d62344e51c102d6a78340"/>
1925
</ItemGroup>

src/GolfClapBot.Runner/Program.cs

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,30 @@
11
using GolfClapBot.Bot;
22
using GolfClapBot.Domain.Configuration;
33
using GolfClapBot.Runner;
4+
using Serilog;
5+
using TwitchLib.Api;
6+
using TwitchLib.Api.Interfaces;
47

58
var builder = Host.CreateApplicationBuilder(args);
69

7-
// Logging
8-
builder.Services.AddLogging();
9-
builder.Services.AddLogging(c => c.AddSimpleConsole());
10-
1110
// Services
1211
builder.Services.AddHostedService<TwitchWorker>();
1312
builder.Services.AddSingleton<IBot, Bot>();
13+
builder.Services.AddSingleton<ITwitchAPI, TwitchAPI>(x => new TwitchAPI
14+
{
15+
Settings =
16+
{
17+
AccessToken = builder.Configuration["Settings:Twitch:OAuthToken"],
18+
ClientId = builder.Configuration["Settings:Twitch:ClientId"]
19+
}
20+
});
21+
22+
// Logging
23+
builder.Logging.AddSerilog(dispose: true).AddConfiguration(builder.Configuration);
24+
25+
Log.Logger = new LoggerConfiguration()
26+
.ReadFrom.Configuration(builder.Configuration)
27+
.CreateBootstrapLogger();
1428

1529
// Configuration
1630
builder.Services.Configure<Data>(

src/GolfClapBot.Runner/TwitchWorker.cs

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using GolfClapBot.Bot;
44
using GolfClapBot.Domain.Configuration;
55
using Microsoft.Extensions.Options;
6-
using TwitchLib.Api;
6+
using TwitchLib.Api.Interfaces;
77
using TwitchLib.Client;
88
using TwitchLib.Client.Events;
99
using TwitchLib.Client.Models;
@@ -19,14 +19,16 @@ public class TwitchWorker : BackgroundService
1919
private readonly ILogger<TwitchWorker> _logger;
2020
private readonly IBot _bot;
2121
private readonly IOptions<Settings> _settings;
22+
private readonly ITwitchAPI _twitchApi;
2223
private readonly Data _data;
2324

2425
public TwitchWorker(ILogger<TwitchWorker> logger, ILoggerFactory loggerFactory, IBot bot, IOptions<Data> data,
25-
IOptions<Settings> settings)
26+
IOptions<Settings> settings, ITwitchAPI twitchApi)
2627
{
2728
_logger = logger;
2829
_bot = bot;
2930
_settings = settings;
31+
_twitchApi = twitchApi;
3032
_data = data.Value;
3133
_client = new TwitchClient(loggerFactory: loggerFactory);
3234

@@ -136,15 +138,7 @@ private async Task DeleteMessage(ChatMessage message)
136138
{
137139
_logger.LogWarning("Bot is deleting message: {MessageId}", message.Id);
138140

139-
var twitchApi = new TwitchAPI
140-
{
141-
Settings =
142-
{
143-
ClientId = _settings.Value.Twitch.ClientId, AccessToken = _settings.Value.Twitch.OAuthToken
144-
}
145-
};
146-
147-
await twitchApi.Helix.Moderation.DeleteChatMessagesAsync(message.RoomId, "425816290", message.Id,
141+
await _twitchApi.Helix.Moderation.DeleteChatMessagesAsync(message.RoomId, "425816290", message.Id,
148142
_settings.Value.Twitch.OAuthToken);
149143
}
150144
catch (Exception exception)

0 commit comments

Comments
 (0)