public override async Task DoWork(AbbybotCommandArgs aca) { var Commands = await AbbySql.AbbysqlClient.FetchSQL("Select * from `abbybooru`.`commands`;"); if (Commands.Count <= 0) { return; } var picture = Commands.ToList().Where(x => aca.Contains(x["Command"] is string cc ? $"abbybot {cc}" : "anotherunlikelycommand")).Take(3).ToList(); var msg = new Message(); await msg.Init(aca); foreach (var item in picture) { GelbooruCommand cmd = new() { tags = (item["Tags"] is string ta ? ta : "").Split(" ").ToArray(), rating = item["RatingId"] is int rI ? rI : -1, command = item["Command"] is string cmdo ? cmdo : "missing", }; cmd.nickname = item["Nickname"] is string tw && tw.Length > 0 ? tw : cmd.command; cmd.message = msg; var gelbooruResult = await cmd.GenerateAsync(); if (gelbooruResult == null) { continue; } int deleteTime = aca.guild.AutoDeleteTime; var adt = -1; if (gelbooruResult.Loli) { adt = deleteTime / 2; } else if (gelbooruResult.Nsfw) { adt = deleteTime; } var embed = GelEmbed.GlobalBuild(cmd, gelbooruResult); var abm = await aca.Send(embed); if (adt > 0) { await QueueDelete(aca, adt, abm); } await cmd.AddReactionsAsync(abm, gelbooruResult); } }
public static async Task DoEmojiReaction(IUserMessage msg, IMessageChannel channel, SocketReaction reaction) { var olo = await GelEmojiSql.GetEmojiType(msg.Id, reaction.Emote.Name, reaction.UserId); if (olo == -1) { return; } if (olo == 0) { var o = await GelEmojiSql.GetEmojiCommand(msg.Id, reaction.Emote.Name, reaction.UserId); if (o != null) { var obj = Newtonsoft.Json.JsonConvert.DeserializeObject <GelbooruCommand>(o); var results = await obj.GenerateAsync(); var embed = GelEmbed.GlobalBuild(obj, results); var newpicture = await channel.SendMessageAsync(embed : embed.Build()); await obj.AddReactionsAsync((Discord.Rest.RestUserMessage) newpicture, results); } } else if (olo == 1) { var o = await GelEmojiSql.GetEmojiResult(msg.Id, reaction.Emote.Name, reaction.UserId); var obj = Newtonsoft.Json.JsonConvert.DeserializeObject <Post>(o); EmbedBuilder eb = new(); eb.Title = ($"here are the tags ♥️"); StringBuilder sb = new(); foreach (var tag in obj.Tags) { sb.Append($"[**{EscapeMD(tag)}**] "); } eb.AddField("♥️", sb.ToString()); eb.Color = Color.LightOrange; var newpicture = await channel.SendMessageAsync(embed : eb.Build()); } else if (olo == 3) { var o = await GelEmojiSql.GetEmojiResult(msg.Id, reaction.Emote.Name, reaction.UserId); var obj = Newtonsoft.Json.JsonConvert.DeserializeObject <Post>(o); var newpicture = await channel.SendMessageAsync(obj.fileUrl); } else if (olo == 2) { await msg.DeleteAsync(); } }