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); } }
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); } }
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); } }
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); } }