Beispiel #1
0
        private async Task <(string type, bool cons, StringBuilder Fc, StringBuilder TitleFc)> DoRemove(AbbybotCommandArgs a)
        {
            StringBuilder sb = new StringBuilder();
            var           FavoriteCharacter = a.Replace(Command);
            var           TitleFC           = a.Replace(Command);
            var           charactertag      = a.BreakAbbybooruTag(a.user.FavoriteCharacter);

            FavoriteCharacter.Remove(0, 7);
            TitleFC.Remove(0, 7);
            sb.AppendLine($"you entered {FavoriteCharacter}");
            FavoriteCharacter = a.BreakAbbybooruTag(FavoriteCharacter);
            var           chosenChr = FavoriteCharacter.Split(" or ");
            var           chrt      = charactertag.Split(" or ");
            List <string> strs      = new List <string>();

            if (chrt.Length > 1)
            {
                var awf = chrt.Where(c => !chosenChr.Contains(c));
                foreach (var chr in awf)
                {
                    strs.Add(chr);
                }
            }
            else
            {
                await a.Send($"silly!! You can't remove the last character from your fc!!");

                return("remove", false, FavoriteCharacter, a.BreakAbbybooruTag(TitleFC));
            }
            var ww = new StringBuilder().AppendJoin(" or ", strs);

            await a.Send(sb);

            return("remove", true, a.BuildAbbybooruTag(ww), a.BreakAbbybooruTag(TitleFC));
        }
Beispiel #2
0
        public override async Task DoWork(AbbybotCommandArgs a)
        {
            if (a.isMentioning)
            {
                return;
            }
            var        FavoriteCharacter = a.Replace(Command).Replace("--debugmode", "");
            var        ap  = FavoriteCharacter.Split(" ");
            BigInteger sum = 0;

            for (int i = 0; i < ap.Length; i++)
            {
                if (ap[i] == "+")
                {
                    BigInteger s = 0;
                    BigInteger o = 0;
                    try
                    {
                        s    = new BigInteger(ap[i - 1], 10);
                        sum += (s);
                    } catch { continue; }
                    try
                    {
                        o    = new BigInteger(ap[i + 1], 10);
                        sum += (o);
                    }
                    catch { continue; }
                }
            }
            await a.Send(sum);
        }
Beispiel #3
0
        private async Task <(string type, bool cons, StringBuilder Fc, StringBuilder TitleFc)> DoRevert(AbbybotCommandArgs a)
        {
            var axis = await FavoriteCharacterHistorySql.GetFavoriteCharacterHistoryAsync(a.user.Id);

            var axis10            = axis.OrderByDescending(x => x.Id).ToList();
            var FavoriteCharacter = a.Replace(Command);

            FavoriteCharacter.Remove(0, 7);
            try
            {
                var iii = int.Parse(FavoriteCharacter.ToString());

                if (axis10.Count > 0)
                {
                    var iaxisuf = axis10[iii].FavoriteCharacter;
                    await FavoriteCharacterSql.SetFavoriteCharacterAsync(a.user.Id, iaxisuf);

                    await FavoriteCharacterHistorySql.SetFavoriteCharacterHistoryAsync(a.user.Id, iaxisuf, "revert", $"reverted back to fc history: {axis10[iii].FavoriteCharacter}.", axis10[0].Id);

                    EmbedBuilder ebxz = new();
                    ebxz.Title       = "reverted fc!";
                    ebxz.Description = $"reverted {axis10[0].type} {axis10[0].Info}... back to {axis10[iii].type} {axis10[iii].Info}";

                    await a.Send(ebxz);
                }
            }
            catch { }

            return("revert", false, null, null);
        }
Beispiel #4
0
        public override async Task DoWork(AbbybotCommandArgs a)
        {
            if (a.isMentioning)
            {
                return;
            }
            var FavoriteCharacter = a.Replace(Command).Replace("--debugmode", "");

            var o = await SaybadtaglistSql.GetbadtaglistTags();

            foreach (var oo in o)
            {
                FavoriteCharacter.Replace(oo, "");
            }

            FavoriteCharacter.Insert(0, "you have a givt from a secret sender!!!\n");
            var           mu = a.getMentionedDiscordGuildUsers();
            StringBuilder sb = new StringBuilder();

            foreach (var muz in mu)
            {
                await muz.SendMessageAsync(FavoriteCharacter.ToString());

                await Task.Delay(100);
            }
            sb.Append("Sent a dm to ");
            sb.AppendJoin(", ", mu);

            if (!(a.channel is SocketDMChannel))
            {
                await a.Delete();
            }
            await a.Send(sb);
        }
Beispiel #5
0
        public override async Task DoWork(AbbybotCommandArgs e)
        {
            var message = e.Replace(Command);
            var sb      = new StringBuilder();

            AbbybooruTagGenerator.FCBuilder(message, sb);
            await e.Send(sb);
        }
Beispiel #6
0
        private async Task <(string type, bool cons, StringBuilder Fc, StringBuilder TitleFc)> DoBuildTag(AbbybotCommandArgs a)
        {
            var FavoriteCharacter = a.Replace(Command);

            FavoriteCharacter.Remove(0, 9);
            await a.Send(a.BuildAbbybooruTag(FavoriteCharacter));

            return("buildtag", false, null, null);
        }
Beispiel #7
0
        public override async Task DoWork(AbbybotCommandArgs a)
        {
            var FavoriteCharacter = a.Replace(Command);


            if (a.user.isGuild && !a.user.admin)
            {
                await a.Send($"silly {a.user.Preferedname}, you're not an admin here!!!");
            }
            Abbybot.print("acadd called");
            if (FavoriteCharacter.Length < 1)
            {
                return;
            }
            a.BuildAbbybooruTag(FavoriteCharacter);

            string pictureurl = "https://img2.gelbooru.com/samples/ee/e2/sample_eee286783bfa37e088d1ffbcf8f098ba.jpg";
            var    o          = new string[1];

            o[0] = FavoriteCharacter.ToString() + "*";

            var ee = await FCSimplification.awa(a, o, "");

            EmbedBuilder eb = new EmbedBuilder();

            eb.ImageUrl = pictureurl;
            var u = a.user;

            if (ee.canrun)
            {
                try
                {
                    await AbbyBooruCharacterSql.AddCharacterAsync(a.channel, a.guild, ee.fc);
                }
                catch (Exception e)
                {
                    Abbybot.print(e.Message);

                    eb.Title       = $"silly!!! {a.user.Preferedname}!!!";
                    eb.Color       = Color.Red;
                    eb.Description = $"silly!! {ee.fc} was already added to this channel!!";
                    await a.Send(eb);

                    return;
                }
                eb.Title       = $"{a.user.Preferedname} Yayy!!";
                eb.Color       = Color.Green;
                eb.Description = $"I added {ee.fc} to the channel master!! ";
            }
            else
            {
                eb.Title       = $"oof... {a.user.Preferedname}...";
                eb.Color       = Color.Red;
                eb.Description = $"sorry {u.Preferedname}... i couldn't find {ee.fc} ({FavoriteCharacter}) ...";
            }
            await a.Send(eb);
        }
Beispiel #8
0
        public override async Task DoWork(AbbybotCommandArgs a)
        {
            var tagss = a.Replace(Command);

            if (tagss.Length < 1)
            {
                await a.Send("You gotta tell me some tags too silly!!!");

                return;
            }

            var fc = a.user.FavoriteCharacter;

            tagss.Replace("&fc", $"{fc}*");

            var tags = tagss.ToString().Split(' ').ToList();

            var badtaglisttags = await UserBadTagListSql.GetbadtaglistTags(a.user.Id);

            foreach (var item in badtaglisttags)
            {
                tags.Add($"-{item}");
            }

            if (a.guild != null)
            {
                var ratings = a.user.Ratings;
                var sgc     = (ITextChannel)a.channel;
                if (sgc == null)
                {
                    return;
                }

                if (a.Contains("-testlewd"))
                {
                    await a.Send($"channel is nsfw? {a.IsChannelNSFW }, you are lewd? {a.user.IsLewd}, You have permissions? {a.user.HasRatings(CommandRatings.hot)}");
                }
                if (!a.IsChannelNSFW || !a.user.IsLewd || !a.user.HasRatings(CommandRatings.hot))
                {
                    tags.Add("rating:safe");
                }
            }
            EmbedBuilder eb = null;
            var          s  = (await a.GetPicture(tags.ToArray(), OnFail: async e => { await a.Send(e.ToString( )); }))[0];
            ImgData      im = new ();

            if (s.fileUrl != null)
            {
                im.Imageurl = s.fileUrl;
            }
            if (s.source != null)
            {
                im.source = s.source;
            }

            await a.Send($"{s.fileUrl}, *{im.source}*");
        }
Beispiel #9
0
        private async Task <(string type, bool cons, StringBuilder Fc, StringBuilder TitleFc)> DoAdd(AbbybotCommandArgs a)
        {
            var FavoriteCharacter = a.Replace(Command);
            var TitleFC           = a.Replace(Command);

            FavoriteCharacter.Remove(0, 4);
            TitleFC.Remove(0, 4);

            if ((FavoriteCharacter.Length <= 1))
            {
                return("add", false, null, null);
            }

            string[] o = new string[1] {
                a.BuildAbbybooruTag(FavoriteCharacter.ToString())
            };
            var ava = await awa(a, o, "");

            FavoriteCharacter.Clear().Append(ava.fc);
            TitleFC.Clear().Append(ava.fc);
            a.BuildAbbybooruTag(FavoriteCharacter);
            foreach (var chr in a.GetFCList())
            {
                if (chr == "*" || chr == "**" || chr.Length <= 1)
                {
                    continue;
                }
                if (chr.EndsWith("*"))
                {
                    FavoriteCharacter.Insert(0, $"{chr.Remove(chr.Length - 1)} or ");
                }
                else
                {
                    FavoriteCharacter.Insert(0, $"{chr} or ");
                }
            }
            while (FavoriteCharacter.Contains("__"))
            {
                FavoriteCharacter.Replace("__", "_");
            }

            Console.WriteLine($"{FavoriteCharacter},!!, {TitleFC}");
            return("add", true, FavoriteCharacter, TitleFC);
        }
Beispiel #10
0
        public override async Task DoWork(AbbybotCommandArgs a)
        {
            //StringBuilder tagss = new StringBuilder(a.Message.Replace(Command, ""));
            var tagss = a.Replace(Command);

            if (tagss.Length < 1)
            {
                await a.Send("You gotta tell me some tags too silly!!!");

                return;
            }
            while (tagss[0] == ' ')
            {
                tagss.Remove(0, 1);
            }
            while (tagss[^ 1] == ' ')
Beispiel #11
0
        public override async Task DoWork(AbbybotCommandArgs a)
        {
            var FavoriteCharacter = a.Replace(Command).Replace("--debugmode", "").Replace("abbybot ", "%");

            var o = await SaybadtaglistSql.GetbadtaglistTags();

            foreach (var oo in o)
            {
                FavoriteCharacter.Replace(oo, "");
            }

            if (!(a.channel is SocketDMChannel))
            {
                await a.Delete();
            }
            Abbybot.print("tried to run say");
            await a.Send(FavoriteCharacter);
        }
        public override async Task DoWork(AbbybotCommandArgs a)
        {
            var FavoriteCharacter = a.Replace(Command);

            if (FavoriteCharacter.Length < 1)
            {
                return;
            }


            string fc = FavoriteCharacter.ToString();

            a.BuildAbbybooruTag(FavoriteCharacter);

            var o = new string[1];

            o[0] = FavoriteCharacter.ToString() + "*";

            EmbedBuilder eb = new EmbedBuilder();

            var u = a.user;

            try
            {
                await AbbyBooruCharacterSql.RemoveCharacterAsync(a.channel, FavoriteCharacter.ToString());

                eb.Title       = $"{fc} aww ok...";
                eb.Color       = Color.Green;
                eb.Description = $"I removed the character from the channel {u.Preferedname} master...";
            }
            catch
            {
                eb.Title       = $"silly!!! {fc}!!!";
                eb.Color       = Color.Red;
                eb.Description = $"silly!! {fc} was not in the channel in the first place!!!";
            }
            await a.Send(eb);
        }
Beispiel #13
0
        public override async Task DoWork(AbbybotCommandArgs message)
        {
            var          FavoriteCharacter = message.Replace(Command);
            EmbedBuilder eb = new EmbedBuilder();

            if (FavoriteCharacter.Length < 1)
            {
                StringBuilder sb = new StringBuilder();
                eb.Title = $"here's your bad tag list";
                eb.Color = Color.Blue;
                foreach (var tag in await UserBadTagListSql.GetbadtaglistTags(message.user.Id))
                {
                    sb.AppendLine(tag);
                }
                eb.Description = sb.ToString();

                await message.Send(eb);

                return;
            }
            var okis = FavoriteCharacter.ToString().Split(" ")[0];

            if (okis.Equals("add", StringComparison.InvariantCultureIgnoreCase))
            {
                FavoriteCharacter.Remove(0, 4);
                List <string> tags = new List <string>();
                FavoriteCharacter = FavoriteCharacter.Replace(" ", "_");
                string fc = FavoriteCharacter.ToString().ToLower();
                foreach (var item in fc.Replace("_and_", "&&").Replace(",", "&&").Split("&&"))
                {
                    FavoriteCharacter.Clear().Append(item);
                    while (FavoriteCharacter[0] == '_')
                    {
                        FavoriteCharacter.Remove(0, 1);
                    }
                    while (FavoriteCharacter[^ 1] == '_')
Beispiel #14
0
 private async Task <(string type, bool cons, StringBuilder Fc, StringBuilder TitleFc)> DoSet(AbbybotCommandArgs a)
 {
     return("set", true, a.Replace(Command), null);
 }
Beispiel #15
0
        public override async Task DoWork(AbbybotCommandArgs a)
        {
            var input = a.Replace(Command);

            if (input.Length == 0)
            {
                if (a.hasMultipleFcs)
                {
                    var fclists = GetMultiFCStringBuilders(a);

                    await a.Send(fclists);

                    return;
                }
                else
                {
                    string message = $"Your favorite character is: {a.BreakAbbybooruTag(a.user.FavoriteCharacter)}. Get help with {Command} help";

                    await a.Send(message);

                    return;
                }
            }

            var ofclist = a.GetFCList();

            var subCommand = input.Split(" ")[0];
            var info       = subCommand switch {
                "help" => await DoHelp(a),
                "history" => await DoHistory(a),
                "undo" => await DoUndo(a),
                "revert" => await DoRevert(a),
                "add" => await DoAdd(a),
                "remove" => await DoRemove(a),
                "buildtag" => await DoBuildTag(a),
                "breaktag" => await DoBreakTag(a),
                _ => await DoSet(a)
            };

            if (!info.cons)
            {
                return;
            }

            string[] o = new string[1];
            a.BuildAbbybooruTag(info.TitleFc);
            a.BuildAbbybooruTag(info.Fc);
            o[0] = (info.TitleFc ?? info.Fc).ToString();

            (bool canrun, string pictureurl, string previewurl, string fc)aaa = (false, null, null, "");

            int  failcount = 0;
            bool failed    = false;

            EmbedBuilder eb = new EmbedBuilder();

            bool set = false;

            do
            {
                var sif = o[0];
                try {
                    aaa = await awa(a, o, info.type);

                    if (!aaa.canrun)
                    {
                        throw new Exception("Can't run");
                    }
                } catch {
                    failcount++;
                    continue;
                }
                if (info.type == "set")
                {
                    info.Fc.Clear().Append(aaa.fc);
                    o[0] = aaa.fc;
                }
                Console.WriteLine($"{sif}->{o[0]}");
                string[] uris = new string[] {
                    aaa.pictureurl, aaa.previewurl
                };
                int count = 0;
                foreach (var u in uris)
                {
                    try {
                        eb.ImageUrl = u.ToString();
                        set         = true;
                        break;
                    } catch {
                        count++;
                    }
                }
                if (count >= uris.Length)
                {
                    failcount++;
                    failed = true;
                }

                Console.WriteLine($"set? {set}, fails?{failcount}, image? {eb.ImageUrl != null}");
            } while (!set && failcount < 3);
            if (failed)
            {
                await a.Send("I'm sorry master... I tried really hard to find you a picture you would like... But nothing came up... I tried 3 searches... oh well...");

                return;
            }

            var oioio = a.BreakAbbybooruTag(((info.TitleFc != null) ? info.TitleFc : info.Fc).ToString());

            Console.WriteLine($"{oioio}: {info.TitleFc}, {info.Fc}");
            Console.WriteLine(oioio);
            if (aaa.canrun)
            {
                var u = await FavoriteCharacterHistorySql.GetFavoriteCharacterHistoryAsync(a.user.Id);

                await FavoriteCharacterSql.SetFavoriteCharacterAsync(a.user.Id, info.Fc.ToString());

                var lastId = (u.Count > 0 ? u[0].Id : 0);
                Console.WriteLine(lastId);
                await FavoriteCharacterHistorySql.SetFavoriteCharacterHistoryAsync(a.user.Id, info.Fc.ToString(), info.type, oioio, lastId);

                eb.Color = Color.Green;

                eb.Title = info.type switch {
                    "add" => $"Added {oioio}!!!",
                    "remove" => $"Removed {oioio}!!!",
                    "set" => $"{oioio} Yayy!!",
                    _ => "I'm kinda confused master..."
                };

                eb.Description = info.type switch {
                    "add" => $"I added {oioio} to your fc!!",
                    "remove" => $"I removed {oioio} from your fc!",
                    "set" => $"I know your favorite character now hehehehe cutie {a.user.Preferedname} master!! ",
                    _ => "I... I really don't know what's going on..."
                };
            }
            else
            {
                var foc = a.BreakAbbybooruTag(info.Fc.ToString());
                eb.Title       = $"oof... {foc}...";
                eb.Description = $"sorry {a.user.Preferedname}... i couldn't find {foc} ({info.Fc}) ...";
                eb.Color       = Color.Red;
            }

            await a.Send(eb);

            if (ofclist.Length > 2 && info.type == "set")
            {
                await a.Send("Hey, ps... I think you may have made a mistake... You set that favorite character instead of adding it. \nIf you didn't mean to override your favorite character list, I suggest you to run: ``%fc undo``");
            }
        }