diff --git a/KfChatDotNetBot/Commands/ImageCommands.cs b/KfChatDotNetBot/Commands/ImageCommands.cs index 023257b..15f23fe 100644 --- a/KfChatDotNetBot/Commands/ImageCommands.cs +++ b/KfChatDotNetBot/Commands/ImageCommands.cs @@ -150,7 +150,8 @@ public class GetRandomImage : ICommand var settings = await SettingsProvider.GetMultipleValuesAsync([ BuiltIn.Keys.BotImageRandomSliceDivideBy, BuiltIn.Keys.BotImagePigCubeSelfDestruct, BuiltIn.Keys.BotImageInvertedCubeUrl, BuiltIn.Keys.BotImagePigCubeSelfDestructMin, - BuiltIn.Keys.BotImagePigCubeSelfDestructMax, BuiltIn.Keys.BotImageInvertedPigCubeSelfDestructDelay + BuiltIn.Keys.BotImagePigCubeSelfDestructMax, BuiltIn.Keys.BotImageInvertedPigCubeSelfDestructDelay, + BuiltIn.Keys.BotImageChinkSelfDestruct, BuiltIn.Keys.BotImageChinkSelfDestructDelay ]); var divideBy = settings[BuiltIn.Keys.BotImageRandomSliceDivideBy].ToType(); var limit = 1; @@ -168,7 +169,23 @@ public class GetRandomImage : ICommand db.Images.Update(image); await db.SaveChangesAsync(ctx); var msg = await botInstance.SendChatMessageAsync($"[img]{image.Url}[/img]", true); - if (key != "pigcube" || !settings[BuiltIn.Keys.BotImagePigCubeSelfDestruct].ToBoolean()) return; + int timeToDeletionMsec; + + if (key == "pigcube" && settings[BuiltIn.Keys.BotImagePigCubeSelfDestruct].ToBoolean()) + { + timeToDeletionMsec = image.Url == settings[BuiltIn.Keys.BotImageInvertedCubeUrl].Value + ? settings[BuiltIn.Keys.BotImageInvertedPigCubeSelfDestructDelay].ToType() + : new Random().Next(settings[BuiltIn.Keys.BotImagePigCubeSelfDestructMin].ToType(), + settings[BuiltIn.Keys.BotImagePigCubeSelfDestructMax].ToType()); + } + else if (key == "chink" && settings[BuiltIn.Keys.BotImageChinkSelfDestruct].ToBoolean()) + { + timeToDeletionMsec = settings[BuiltIn.Keys.BotImageChinkSelfDestructDelay].ToType(); + } + else + { + return; + } while (msg.Status is SentMessageTrackerStatus.WaitingForResponse or SentMessageTrackerStatus.ChatDisconnected) { await Task.Delay(500, ctx); @@ -176,21 +193,17 @@ public class GetRandomImage : ICommand if (msg.Status is SentMessageTrackerStatus.Lost or SentMessageTrackerStatus.NotSending) { - logger.Error("Pig cube got lost"); + logger.Error("Image got lost"); return; } if (msg.ChatMessageId == null) { - logger.Error($"Pig cube chat message ID was null even though status was {msg.Status}"); + logger.Error($"Image chat message ID was null even though status was {msg.Status}"); return; } - var timeToDeletionMsec = image.Url == settings[BuiltIn.Keys.BotImageInvertedCubeUrl].Value - ? settings[BuiltIn.Keys.BotImageInvertedPigCubeSelfDestructDelay].ToType() - : new Random().Next(settings[BuiltIn.Keys.BotImagePigCubeSelfDestructMin].ToType(), - settings[BuiltIn.Keys.BotImagePigCubeSelfDestructMax].ToType()); - logger.Info($"Deleting pig cube in {timeToDeletionMsec}ms"); + logger.Info($"Deleting image in {timeToDeletionMsec}ms"); await Task.Delay(timeToDeletionMsec, ctx); await botInstance.KfClient.DeleteMessageAsync(msg.ChatMessageId.Value); } diff --git a/KfChatDotNetBot/Settings/BuiltIn.cs b/KfChatDotNetBot/Settings/BuiltIn.cs index 3577af0..92392b3 100644 --- a/KfChatDotNetBot/Settings/BuiltIn.cs +++ b/KfChatDotNetBot/Settings/BuiltIn.cs @@ -1023,6 +1023,22 @@ public static class BuiltIn ValueType = SettingValueType.Text, Regex = WholeNumberRegex }, + new BuiltInSettingsModel + { + Key = Keys.BotImageChinkSelfDestruct, + Description = "Whether the chink photo should self destruct after being sent", + Default = "true", + ValueType = SettingValueType.Boolean, + Regex = BooleanRegex + }, + new BuiltInSettingsModel + { + Key = Keys.BotImageChinkSelfDestructDelay, + Description = "Delay in milliseconds before destroying the chink image", + Default = "7500", + ValueType = SettingValueType.Text, + Regex = WholeNumberRegex + } ]; public static class Keys @@ -1139,5 +1155,7 @@ public static class BuiltIn public static string MoneyRakebackMinimumAmount = "Money.Rakeback.MinimumAmount"; public static string MoneyLossbackPercentage = "Money.Lossback.Percentage"; public static string MoneyLossbackMinimumAmount = "Money.Lossback.MinimumAmount"; + public static string BotImageChinkSelfDestruct = "Bot.Image.ChinkSelfDestruct"; + public static string BotImageChinkSelfDestructDelay = "Bot.Image.ChinkSelfDestructDelay"; } } \ No newline at end of file