mirror of
https://github.com/barelyprofessional/KfChatDotNet.git
synced 2026-05-02 04:22:04 -04:00
Created a function for checking live status
This commit is contained in:
@@ -359,8 +359,14 @@ public class BotServices
|
|||||||
_logger.Trace("Rainbet bet has arrived");
|
_logger.Trace("Rainbet bet has arrived");
|
||||||
using var db = new ApplicationDbContext();
|
using var db = new ApplicationDbContext();
|
||||||
var ids = settings[BuiltIn.Keys.RainbetBmjPublicIds].JsonDeserialize<List<string>>();
|
var ids = settings[BuiltIn.Keys.RainbetBmjPublicIds].JsonDeserialize<List<string>>();
|
||||||
foreach (var bet in bets.Where(b => ids.Contains(b.User.PublicId)))
|
if (ids == null)
|
||||||
//foreach (var bet in bets)
|
{
|
||||||
|
_logger.Error("BMJ Rainbet Public IDs were null");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var bmjBets = bets.Where(b => ids.Contains(b.User.PublicId ?? string.Empty));
|
||||||
|
foreach (var bet in bmjBets)
|
||||||
{
|
{
|
||||||
if (db.RainbetBets.Any(b => b.BetId == bet.Id))
|
if (db.RainbetBets.Any(b => b.BetId == bet.Id))
|
||||||
{
|
{
|
||||||
@@ -382,8 +388,18 @@ public class BotServices
|
|||||||
});
|
});
|
||||||
_logger.Info("Added a Bossman Rainbet bet to the database");
|
_logger.Info("Added a Bossman Rainbet bet to the database");
|
||||||
}
|
}
|
||||||
|
|
||||||
db.SaveChanges();
|
db.SaveChanges();
|
||||||
|
|
||||||
|
_logger.Info("ALERT BMJ IS BETTING (on Rainbet)");
|
||||||
|
if (CheckBmjIsLive(settings[BuiltIn.Keys.TwitchBossmanJackUsername].Value ?? "usernamenotset").Result) return;
|
||||||
|
|
||||||
|
var msg = $":!::!: {settings[BuiltIn.Keys.TwitchBossmanJackUsername].Value} is betting on Rainbet :!::!:";
|
||||||
|
|
||||||
|
//var payoutColor = settings[BuiltIn.Keys.KiwiFarmsGreenColor].Value;
|
||||||
|
//if (bet.Payout < bet.Bet) payoutColor = settings[BuiltIn.Keys.KiwiFarmsRedColor].Value;
|
||||||
|
//_chatBot.SendChatMessage($"🚨🚨 CLASH.GG BETTING 🚨🚨 austingambles just bet {bet.Bet / 100} {bet.Currency.Humanize()} Money which paid out " +
|
||||||
|
// $"[color={payoutColor}]{bet.Payout / 100} {bet.Currency.Humanize()} Money[/color] ({bet.Multiplier}x) on {bet.Game.Humanize()} 💰💰", true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnJackpotBet(object sender, JackpotWsBetPayloadModel bet)
|
private void OnJackpotBet(object sender, JackpotWsBetPayloadModel bet)
|
||||||
@@ -399,30 +415,8 @@ public class BotServices
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_logger.Info("ALERT BMJ IS BETTING (on Jackpot)");
|
_logger.Info("ALERT BMJ IS BETTING (on Jackpot)");
|
||||||
if (IsBmjLive)
|
if (CheckBmjIsLive(settings[BuiltIn.Keys.TwitchBossmanJackUsername].Value ?? "usernamenotset").Result) return;
|
||||||
{
|
|
||||||
_logger.Info("Ignoring as BMJ is live");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (TemporarilySuppressGambaMessages)
|
|
||||||
{
|
|
||||||
_logger.Info("Ignoring as TemporarilySuppressGambaMessages is true");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Only check once because the bot should be tracking the Twitch stream
|
|
||||||
// This is just in case he's already live while the bot starts
|
|
||||||
// He was schizo betting on Dice, so I want to avoid a lot of API requests to Twitch in case they rate limit
|
|
||||||
if (!_isBmjLiveSynced)
|
|
||||||
{
|
|
||||||
IsBmjLive = _twitch.IsStreamLive(settings[BuiltIn.Keys.TwitchBossmanJackUsername].Value!).Result;
|
|
||||||
_isBmjLiveSynced = true;
|
|
||||||
}
|
|
||||||
if (IsBmjLive)
|
|
||||||
{
|
|
||||||
_logger.Info("Double checked and he is really online");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var payoutColor = settings[BuiltIn.Keys.KiwiFarmsGreenColor].Value;
|
var payoutColor = settings[BuiltIn.Keys.KiwiFarmsGreenColor].Value;
|
||||||
if (bet.Payout < bet.Wager) payoutColor = settings[BuiltIn.Keys.KiwiFarmsRedColor].Value;
|
if (bet.Payout < bet.Wager) payoutColor = settings[BuiltIn.Keys.KiwiFarmsRedColor].Value;
|
||||||
@@ -443,30 +437,7 @@ public class BotServices
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_logger.Info("ALERT BMJ IS BETTING (on Clash.gg)");
|
_logger.Info("ALERT BMJ IS BETTING (on Clash.gg)");
|
||||||
if (IsBmjLive)
|
if (CheckBmjIsLive(settings[BuiltIn.Keys.TwitchBossmanJackUsername].Value ?? "usernamenotset").Result) return;
|
||||||
{
|
|
||||||
_logger.Info("Ignoring as BMJ is live");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (TemporarilySuppressGambaMessages)
|
|
||||||
{
|
|
||||||
_logger.Info("Ignoring as TemporarilySuppressGambaMessages is true");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Only check once because the bot should be tracking the Twitch stream
|
|
||||||
// This is just in case he's already live while the bot starts
|
|
||||||
// He was schizo betting on Dice, so I want to avoid a lot of API requests to Twitch in case they rate limit
|
|
||||||
if (!_isBmjLiveSynced)
|
|
||||||
{
|
|
||||||
IsBmjLive = _twitch.IsStreamLive(settings[BuiltIn.Keys.TwitchBossmanJackUsername].Value!).Result;
|
|
||||||
_isBmjLiveSynced = true;
|
|
||||||
}
|
|
||||||
if (IsBmjLive)
|
|
||||||
{
|
|
||||||
_logger.Info("Double checked and he is really online");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var payoutColor = settings[BuiltIn.Keys.KiwiFarmsGreenColor].Value;
|
var payoutColor = settings[BuiltIn.Keys.KiwiFarmsGreenColor].Value;
|
||||||
if (bet.Payout < bet.Bet) payoutColor = settings[BuiltIn.Keys.KiwiFarmsRedColor].Value;
|
if (bet.Payout < bet.Bet) payoutColor = settings[BuiltIn.Keys.KiwiFarmsRedColor].Value;
|
||||||
@@ -607,30 +578,7 @@ public class BotServices
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_logger.Info("ALERT BMJ IS BETTING");
|
_logger.Info("ALERT BMJ IS BETTING");
|
||||||
if (IsBmjLive)
|
if (CheckBmjIsLive(settings[BuiltIn.Keys.TwitchBossmanJackUsername].Value ?? "usernamenotset").Result) return;
|
||||||
{
|
|
||||||
_logger.Info("Ignoring as BMJ is live");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (TemporarilySuppressGambaMessages)
|
|
||||||
{
|
|
||||||
_logger.Info("Ignoring as TemporarilySuppressGambaMessages is true");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Only check once because the bot should be tracking the Twitch stream
|
|
||||||
// This is just in case he's already live while the bot starts
|
|
||||||
// He was schizo betting on Dice, so I want to avoid a lot of API requests to Twitch in case they rate limit
|
|
||||||
if (!_isBmjLiveSynced)
|
|
||||||
{
|
|
||||||
IsBmjLive = _twitch.IsStreamLive(settings[BuiltIn.Keys.TwitchBossmanJackUsername].Value!).Result;
|
|
||||||
_isBmjLiveSynced = true;
|
|
||||||
}
|
|
||||||
if (IsBmjLive)
|
|
||||||
{
|
|
||||||
_logger.Info("Double checked and he is really online");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var payoutColor = settings[BuiltIn.Keys.KiwiFarmsGreenColor].Value;
|
var payoutColor = settings[BuiltIn.Keys.KiwiFarmsGreenColor].Value;
|
||||||
if (float.Parse(bet.Payout) < float.Parse(bet.Amount)) payoutColor = settings[BuiltIn.Keys.KiwiFarmsRedColor].Value;
|
if (float.Parse(bet.Payout) < float.Parse(bet.Amount)) payoutColor = settings[BuiltIn.Keys.KiwiFarmsRedColor].Value;
|
||||||
@@ -695,31 +643,7 @@ public class BotServices
|
|||||||
Currency = bet.Currency!, CurrencyPrice = bet.CurrencyPrice, BetId = bet.BetId
|
Currency = bet.Currency!, CurrencyPrice = bet.CurrencyPrice, BetId = bet.BetId
|
||||||
});
|
});
|
||||||
db.SaveChanges();
|
db.SaveChanges();
|
||||||
if (IsBmjLive)
|
if (CheckBmjIsLive(settings[BuiltIn.Keys.TwitchBossmanJackUsername].Value ?? "usernamenotset").Result) return;
|
||||||
{
|
|
||||||
_logger.Info("Ignoring as BMJ is live");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (TemporarilySuppressGambaMessages)
|
|
||||||
{
|
|
||||||
_logger.Info("Ignoring as TemporarilySuppressGambaMessages is true");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Only check once because the bot should be tracking the Twitch stream
|
|
||||||
// This is just in case he's already live while the bot starts
|
|
||||||
// He was schizo betting on Dice, so I want to avoid a lot of API requests to Twitch in case they rate limit
|
|
||||||
if (!_isBmjLiveSynced)
|
|
||||||
{
|
|
||||||
IsBmjLive = _twitch.IsStreamLive(settings[BuiltIn.Keys.TwitchBossmanJackUsername].Value!).Result;
|
|
||||||
_isBmjLiveSynced = true;
|
|
||||||
}
|
|
||||||
if (IsBmjLive)
|
|
||||||
{
|
|
||||||
_logger.Info("Double checked and he is really online");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var payoutColor = settings[BuiltIn.Keys.KiwiFarmsGreenColor].Value;
|
var payoutColor = settings[BuiltIn.Keys.KiwiFarmsGreenColor].Value;
|
||||||
if (bet.Winnings < bet.Amount) payoutColor = settings[BuiltIn.Keys.KiwiFarmsRedColor].Value;
|
if (bet.Winnings < bet.Amount) payoutColor = settings[BuiltIn.Keys.KiwiFarmsRedColor].Value;
|
||||||
@@ -823,4 +747,32 @@ public class BotServices
|
|||||||
$"@{user.KfUsername} is no longer live! :lossmanjack:", true);
|
$"@{user.KfUsername} is no longer live! :lossmanjack:", true);
|
||||||
if (channel.ChannelSlug == "christopherdj") IsChrisDjLive = false;
|
if (channel.ChannelSlug == "christopherdj") IsChrisDjLive = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<bool> CheckBmjIsLive(string bmjUsername)
|
||||||
|
{
|
||||||
|
if (IsBmjLive)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (TemporarilySuppressGambaMessages)
|
||||||
|
{
|
||||||
|
_logger.Info("Ignoring as TemporarilySuppressGambaMessages is true");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
// Only check once because the bot should be tracking the Twitch stream
|
||||||
|
// This is just in case he's already live while the bot starts
|
||||||
|
// He was schizo betting on Dice, so I want to avoid a lot of API requests to Twitch in case they rate limit
|
||||||
|
if (!_isBmjLiveSynced)
|
||||||
|
{
|
||||||
|
IsBmjLive = await _twitch.IsStreamLive(bmjUsername);
|
||||||
|
_isBmjLiveSynced = true;
|
||||||
|
}
|
||||||
|
if (IsBmjLive)
|
||||||
|
{
|
||||||
|
_logger.Info("Double checked and he is really online");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user