Add string interpolation for SongUpdateService (#139)

I added a string interpolation for SongUpdateService for
better activity status configuration. So now you can add some characters
if you want, or even swap the song title and author.

Also songs are now displaying in Splatoon™ style.

---------

Signed-off-by: Macintosh II <95250141+mctaylors@users.noreply.github.com>
This commit is contained in:
Macintxsh 2023-10-02 17:41:43 +03:00 committed by GitHub
parent 186eb65eb1
commit d837745b11
Signed by: GitHub
GPG key ID: 4AEE18F83AFDEB23

View file

@ -8,22 +8,22 @@ namespace Octobot.Services.Update;
public sealed class SongUpdateService : BackgroundService public sealed class SongUpdateService : BackgroundService
{ {
private static readonly (string Name, TimeSpan Duration)[] SongList = private static readonly (string Author, string Name, TimeSpan Duration)[] SongList =
{ {
("Yoko & the Gold Bazookas - Rockagilly Blues", new TimeSpan(0, 3, 37)), ("Yoko & the Gold Bazookas", "Rockagilly Blues", new TimeSpan(0, 3, 37)),
("Splatoon 3 - Seep and Destroy", new TimeSpan(0, 2, 42)), ("Splatoon 3", "Seep and Destroy", new TimeSpan(0, 2, 42)),
("Deep Cut - Big Betrayal", new TimeSpan(0, 1, 42)), ("Deep Cut", "Big Betrayal", new TimeSpan(0, 1, 42)),
("Squid Sisters - Tomorrow's Nostalgia Today", new TimeSpan(0, 2, 8)), ("Squid Sisters", "Tomorrow's Nostalgia Today", new TimeSpan(0, 2, 8)),
("Deep Cut - Anarchy Rainbow", new TimeSpan(0, 1, 51)), ("Deep Cut", "Anarchy Rainbow", new TimeSpan(0, 1, 51)),
("Squid Sisters feat. Ian BGM - Liquid Sunshine", new TimeSpan(0, 1, 32)), ("Squid Sisters feat. Ian BGM", "Liquid Sunshine", new TimeSpan(0, 1, 32)),
("Damp Socks feat. Off the Hook - Candy-Coated Rocks", new TimeSpan(0, 1, 11)), ("Damp Socks feat. Off the Hook", "Candy-Coated Rocks", new TimeSpan(0, 1, 11)),
("H2Whoa - Aquasonic", new TimeSpan(0, 1, 1)), ("H2Whoa", "Aquasonic", new TimeSpan(0, 1, 1)),
("Yoko & the Gold Bazookas - Ska-Blam!", new TimeSpan(0, 4, 4)), ("Yoko & the Gold Bazookas", "Ska-BLAM", new TimeSpan(0, 4, 4)),
("Off the Hook - Muck Warfare", new TimeSpan(0, 3, 39)), ("Off the Hook", "Muck Warfare", new TimeSpan(0, 3, 39)),
("Off the Hook - Acid Hues", new TimeSpan(0, 3, 39)), ("Off the Hook", "Acid Hues", new TimeSpan(0, 3, 39)),
("Off the Hook - Shark Bytes", new TimeSpan(0, 3, 48)), ("Off the Hook", "Shark Bytes", new TimeSpan(0, 3, 48)),
("DJ Octavio feat. Squid Sisters & Deep Cut - Calamari Inkantation", new TimeSpan(0, 7, 9)), ("DJ Octavio feat. Squid Sisters & Deep Cut", "Calamari Inkantation 3MIX", new TimeSpan(0, 7, 9)),
("Splatoon - Ink Me Up", new TimeSpan(0, 2, 13)) ("Squid Sisters", "Ink Me Up", new TimeSpan(0, 2, 13))
}; };
private readonly List<Activity> _activityList = new(1) private readonly List<Activity> _activityList = new(1)
@ -52,7 +52,8 @@ public sealed class SongUpdateService : BackgroundService
while (!ct.IsCancellationRequested) while (!ct.IsCancellationRequested)
{ {
var nextSong = SongList[_nextSongIndex]; var nextSong = SongList[_nextSongIndex];
_activityList[0] = new Activity(nextSong.Name, ActivityType.Listening); _activityList[0] = new Activity($"{nextSong.Name} / {nextSong.Author}",
ActivityType.Listening);
_client.SubmitCommand( _client.SubmitCommand(
new UpdatePresence( new UpdatePresence(
UserStatus.Online, false, DateTimeOffset.UtcNow, _activityList)); UserStatus.Online, false, DateTimeOffset.UtcNow, _activityList));