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);
            }
        }
Example #2
0
        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();
            }
        }