コード例 #1
0
ファイル: Memestore.cs プロジェクト: GIRU-GIRU/GIRUBotV3
        private async Task CallMeme(string input)
        {
            try
            {
                using (var db = new Memestorage())
                {
                    var meme = db.Memestore.AsQueryable().Where(x => x.Title.ToLower() == input.ToLower()).FirstOrDefault();
                    if (meme != null)
                    {
                        if (!string.IsNullOrEmpty(meme.Content))
                        {
                            Regex rgx   = new Regex("(<@![0-9]+>)");
                            var   match = rgx.Match(meme.Content);
                            if (match.Success)
                            {
                                db.Memestore.Remove(meme);
                                await Context.Channel.SendMessageAsync($"{meme.Title} contained some pings so get deleted son lmfao hahahah");
                            }
                            else
                            {
                                meme.MemeUses = meme.MemeUses + 1;

                                await Context.Channel.SendMessageAsync($"{meme.Content}");
                            }
                        }

                        await db.SaveChangesAsync();
                    }
                }
            }
            catch (Exception ex)
            {
                await ExceptionHandler.HandleExceptionQuietly(GetType().FullName, ExceptionHandler.GetAsyncMethodName(), ex);
            }
        }
コード例 #2
0
ファイル: Memestore.cs プロジェクト: GIRU-GIRU/GIRUBotV3
        private async Task EditMeme([Remainder] string input)
        {
            try
            {
                var inputAsArray     = input.Split(" ");
                var title            = inputAsArray[0].ToString();
                var contentOfMessage = String.Join(" ", inputAsArray.Skip(1));
                var insult           = await Insults.GetInsult();

                if (contentOfMessage.Length < 2)
                {
                    await Context.Channel.SendMessageAsync($"wat r u tryin to do");

                    return;
                }
                if (title.Where(x => Char.IsDigit(x)).Any())
                {
                    await Context.Channel.SendMessageAsync($"the meme title can't contain numbers or weird shit, sry bitch");

                    return;
                }

                using (var db = new Memestorage())
                {
                    if (db.Memestore.AsQueryable().Where(x => x.Title.ToLower() == title.ToLower()).Any())
                    {
                        var meme = db.Memestore.AsQueryable().Where(x => x.Title.ToLower() == title.ToLower()).FirstOrDefault();

                        //is it a valid user ? (mod/original author)
                        if (Helpers.IsModeratorOrOwner(Context.Message.Author as SocketGuildUser) || meme.AuthorID == Context.Message.Author.Id)
                        {
                            meme.Content = contentOfMessage;
                            await db.SaveChangesAsync();

                            await Context.Channel.SendMessageAsync($"{title} was successfully updated");

                            return;
                        }
                    }

                    await Context.Channel.SendMessageAsync($"nah ur not allowed nice try tho lmfao {insult}");
                }
            }
            catch (Exception ex)
            {
                await ExceptionHandler.HandleExceptionQuietly(GetType().FullName, ExceptionHandler.GetAsyncMethodName(), ex);
            }
        }
コード例 #3
0
ファイル: Memestore.cs プロジェクト: GIRU-GIRU/GIRUBotV3
        private async Task DeleteMeme([Remainder] string input)
        {
            try
            {
                var inputAsArray = input.Split(" ");
                var title        = inputAsArray[0].ToString();
                var insult       = await Insults.GetInsult();

                if (inputAsArray.Count() > 1)
                {
                    await Context.Channel.SendMessageAsync("wtf is that supposed to be?");

                    return;
                }

                using (var db = new Memestorage())
                {
                    if (!db.Memestore.AsQueryable().Where(x => x.Title.ToLower() == title.ToLower()).Any())
                    {
                        await Context.Channel.SendMessageAsync($"there's no {title} {insult}");

                        return;
                    }
                    var rowToRemove = db.Memestore.AsQueryable().Where(x => x.Title.ToLower() == title.ToLower()).SingleOrDefault();
                    //needs to be original author or moderator
                    if (Helpers.IsModeratorOrOwner(Context.Message.Author as SocketGuildUser) || rowToRemove.AuthorID == Context.Message.Author.Id)

                    {
                        db.Memestore.Remove(rowToRemove);
                        await db.SaveChangesAsync();

                        await Context.Channel.SendMessageAsync($"{title} was deleted successfully from the DB");

                        return;
                    }
                    await Context.Channel.SendMessageAsync($"only the original author or moderator can delete this");
                }
            }
            catch (Exception ex)
            {
                await ExceptionHandler.HandleExceptionQuietly(GetType().FullName, ExceptionHandler.GetAsyncMethodName(), ex);
            }
        }
コード例 #4
0
ファイル: Memestore.cs プロジェクト: GIRU-GIRU/GIRUBotV3
        private async Task StoreMeme([Remainder] string input)
        {
            try
            {
                var inputAsArray     = input.Split(" ");
                var title            = inputAsArray[0].ToString(); title = Regex.Replace(title, @"\t|\n|\r", "");
                var contentOfMessage = String.Join(" ", inputAsArray.Skip(1));
                var insult           = await Insults.GetInsult();

                if (contentOfMessage.Length < 2)
                {
                    await Context.Channel.SendMessageAsync($"what the f**k are you actually doing you f*****g {insult}, why are you trying to make an empty meme ? r u legit f*****g autist or what, fuckign dumb {insult} c**t");

                    return;
                }
                if (title.Where(x => Char.IsDigit(x)).Any())
                {
                    await Context.Channel.SendMessageAsync($"the meme title can't contain numbers or weird shit, sry bitch");

                    return;
                }


                if (await WordFilter.CheckForNaughtyWords(contentOfMessage) || await WordFilter.CheckForNaughtyWords(title))
                {
                    await Context.Channel.SendMessageAsync($"dont put nasty language in the memestore {insult}");

                    return;
                }

                using (var db = new Memestorage())
                {
                    if (db.Memestore.AsQueryable().Where(x => x.AuthorID == Context.Message.Author.Id).Count() >= 25)
                    {
                        await Context.Channel.SendMessageAsync($"f*****g greedy f**k {insult} bastard u cannot make over 25 memes");

                        return;
                    }

                    if (db.Memestore.AsQueryable().Where(x => x.Title.ToLower() == title.ToLower()).Any())
                    {
                        await Context.Channel.SendMessageAsync($"that alrdy exists u {insult}");

                        return;
                    }

                    await db.Memestore.AddAsync(new MemeStoreModel
                    {
                        Author   = Context.Message.Author.Username,
                        AuthorID = Context.Message.Author.Id,
                        Content  = contentOfMessage,
                        Title    = title,
                        Date     = DateTime.Now.ToShortDateString(),
                        Time     = DateTime.Now.ToShortTimeString()
                    });

                    await db.SaveChangesAsync();

                    await Context.Channel.SendMessageAsync($"{title} was successfully created!");
                }
            }
            catch (Exception ex)
            {
                await ExceptionHandler.HandleExceptionQuietly(GetType().FullName, ExceptionHandler.GetAsyncMethodName(), ex);
            }
        }