mirror of
https://gitlab.com/Kwoth/nadekobot.git
synced 2025-09-10 09:18:27 -04:00
Stream notification support for trovo.live finalized
This commit is contained in:
@@ -440,7 +440,11 @@ public sealed class StreamNotificationService : INService, IReadyExecutor
|
||||
.WithUrl(status.StreamUrl)
|
||||
.WithDescription(status.StreamUrl)
|
||||
.AddField(GetText(guildId, strs.status), status.IsLive ? "🟢 Online" : "🔴 Offline", true)
|
||||
.AddField(GetText(guildId, strs.viewers), status.IsLive ? status.Viewers.ToString() : "-", true);
|
||||
.AddField(GetText(guildId, strs.viewers),
|
||||
status.Viewers == 0 && !status.IsLive
|
||||
? "-"
|
||||
: status.Viewers,
|
||||
true);
|
||||
|
||||
if (status.IsLive)
|
||||
embed = embed.WithOkColor();
|
||||
|
@@ -5,6 +5,6 @@ namespace NadekoBot.Modules.Searches.Common.StreamNotifications.Providers;
|
||||
|
||||
public class TrovoRequestData
|
||||
{
|
||||
[JsonPropertyName("channel_id")]
|
||||
public string ChannelId { get; set; }
|
||||
[JsonPropertyName("username")]
|
||||
public string Username { get; set; }
|
||||
}
|
@@ -38,7 +38,10 @@ public class TrovoProvider : Provider
|
||||
var trovoClientId = _creds.GetCreds().TrovoClientId;
|
||||
|
||||
if (string.IsNullOrWhiteSpace(trovoClientId))
|
||||
trovoClientId = "waiting for key";
|
||||
{
|
||||
Log.Warning("Trovo streams will be ignored until TrovoClientId is added to creds.yml");
|
||||
return default;
|
||||
}
|
||||
|
||||
|
||||
http.DefaultRequestHeaders.Clear();
|
||||
@@ -53,7 +56,7 @@ public class TrovoProvider : Provider
|
||||
$"https://open-api.trovo.live/openplatform/channels/id",
|
||||
new TrovoRequestData()
|
||||
{
|
||||
ChannelId = login
|
||||
Username = login
|
||||
});
|
||||
|
||||
res.EnsureSuccessStatusCode();
|
||||
@@ -67,6 +70,7 @@ public class TrovoProvider : Provider
|
||||
return null;
|
||||
}
|
||||
|
||||
_failingStreams.TryRemove(data.Username, out _);
|
||||
return new()
|
||||
{
|
||||
IsLive = data.IsLive,
|
||||
@@ -91,6 +95,14 @@ public class TrovoProvider : Provider
|
||||
|
||||
public override async Task<IReadOnlyCollection<StreamData>> GetStreamDataAsync(List<string> usernames)
|
||||
{
|
||||
var trovoClientId = _creds.GetCreds().TrovoClientId;
|
||||
|
||||
if (string.IsNullOrWhiteSpace(trovoClientId))
|
||||
{
|
||||
Log.Warning("Trovo streams will be ignored until TrovoClientId is added to creds.yml");
|
||||
return Array.Empty<StreamData>();
|
||||
}
|
||||
|
||||
var results = new List<StreamData>(usernames.Count);
|
||||
foreach (var chunk in usernames.Chunk(10)
|
||||
.Select(x => x.Select(GetStreamDataAsync)))
|
||||
|
Reference in New Issue
Block a user