private string GetAvailableParameters() { using (var databaseContext = new StaticDBContext()) { var stringBuilder = new StringBuilder(); var categories = databaseContext.Media .Where(p => p.Command.Name == "YouTube") .Select(p => new { CategoryName = p.Category.Name, MediaName = p.Names.FirstOrDefault().Name }) .AsEnumerable() .GroupBy(p => p.CategoryName) .OrderBy(p => p.Key) .ToList(); foreach (var category in categories) { var sortedCategory = category.OrderBy(p => p.MediaName); var items = sortedCategory.Select(p => p.MediaName); stringBuilder.Append($"**{category.Key}**:\r\n"); stringBuilder.Append(string.Join(", ", items)); stringBuilder.Append("\r\n\r\n"); } return(stringBuilder.ToString()); } }
public SimpleResponseResponse <SimpleResponseElement> GetAnswer(string commandName) { using (var databaseContext = new StaticDBContext()) { var command = databaseContext.Commands.Where(p => p.Name == commandName).FirstOrDefault(); if (command == null) { return(new SimpleResponseResponse <SimpleResponseElement>(SimpleResponseResult.NoSuchCommand)); } var responses = databaseContext.SimpleResponses.Where(p => p.Command.Name == commandName); var randomIndex = _random.Next(responses.Count()); if (responses.Count() == 0) { return(new SimpleResponseResponse <SimpleResponseElement>(SimpleResponseResult.CommandHasNoResponses)); } var response = responses .OrderBy(p => p.ID) .Skip(randomIndex) .First(); var list = new List <SimpleResponseElement>(); return(new SimpleResponseResponse <SimpleResponseElement>(new SimpleResponseElement(response.Content, response.Type))); } }
public async Task YouTube(CommandContext ctx, [Description("Wpisz !yt list aby uzyskać listę dostępnych opcji.")] string videoName = null, [Description("Wzmianka")] DiscordMember member = null) { await ctx.TriggerTypingAsync(); using (var databaseContext = new StaticDBContext()) { if (videoName == "list") { await ctx.RespondAsync($"Dostępne filmy:\r\n\r\n{GetAvailableParameters()}"); return; } var videoLink = databaseContext.Media .Where(vid => vid.Command.Name == "YouTube" && vid.Names.Any(p => p.Name.ToLower() == videoName.ToLower())) .Select(p => p.Link) .FirstOrDefault(); if (videoLink == null) { await ctx.RespondAsync("Nieznany parametr, wpisz !yt list aby uzyskać listę dostępnych."); return; } var response = videoLink; if (member != null) { response += $" {member.Mention}"; } await ctx.RespondAsync(response); } }
public async Task CreateMeme(CommandContext ctx, string picName, string upText, string downText = null) { string pictureLink; using (var databaseContext = new StaticDBContext()) { await ctx.TriggerTypingAsync(); pictureLink = databaseContext.Media .Where(vid => vid.Command.Name == "Picture" && vid.Names.Any(p => p.Name == picName)) .Select(p => p.Link) .FirstOrDefault(); if (pictureLink == null) { await ctx.RespondAsync("Nieznany parametr, wpisz !pic list aby uzyskać listę dostępnych."); return; } } MemoryStream mem = new MemoryStream(); using (Image <Rgba32> img = ImageHelper.DownloadImage(pictureLink)) { DrawTextOnImage(img, upText, downText); img.SaveAsJpeg(mem); } mem.Position = 0; await ctx.RespondAsync(new DiscordMessageBuilder().WithFile("MEMEM.jpg", mem)); }
public async Task Picture(CommandContext ctx, [Description("Wpisz !pic list aby uzyskać listę dostępnych opcji.")] string pictureName = "", [Description("Wzmianka")] DiscordMember member = null) { await ctx.TriggerTypingAsync(); using (var databaseContext = new StaticDBContext()) { if (pictureName == "list") { await ctx.RespondAsync($"Dostępne obrazki:\r\n\r\n{GetAvailableParameters()}"); return; } var pictureLink = databaseContext.Media .Where(vid => vid.Command.Name == "Picture" && vid.Names.Any(p => p.Name.ToLower() == pictureName.ToLower())) .Select(p => p.Link) .FirstOrDefault(); if (pictureLink == null) { await ctx.RespondAsync("Nieznany parametr, wpisz !pic list aby uzyskać listę dostępnych."); return; } var response = pictureLink; await PostEmbedHelper.PostEmbed(ctx, "Obrazek", member?.Mention, response); } }
public async Task JavaWhy(CommandContext ctx) { await ctx.TriggerTypingAsync(); var embed = new DiscordEmbedBuilder() { Color = ColorHelper.RandomColor() }; //Find random java shenaningans in dynamic database using (var db = new DynamicDBContext()) { var thingsList = db.JavaThings.ToList(); var thing = thingsList.RandomItem(); embed.AddField(thing.Title, thing.Content); } //find random image with JavaWhy category using (var db = new StaticDBContext()) { var links = db.Media.Where(m => m.Command.Name == "JavaWhy" && m.Category.Name == "JavaWhy") .Select(m => m.Link).ToList(); embed.ImageUrl = links.RandomItem(); } await ctx.RespondAsync(embed : embed); }
public MessageResponseService() { MessageResponses = new Dictionary <string, string>(); using (var databaseContext = new StaticDBContext()) { List <MessageResponse> responses = databaseContext.MessageResponses.ToList(); foreach (var response in responses) { MessageResponses.Add(response.Message, response.Response); } } }
//[Command("doggirl")] //[Description("Wyświetla słodkie doggirl.")] public async Task Dog(CommandContext ctx, [Description("Wzmianka")] DiscordMember member = null) { await ctx.TriggerTypingAsync(); using (var databaseContext = new StaticDBContext()) { // String.Equals doesn't work in SQLite provider (comparison is case sensitive) so it must be replaced with DbFunctions.Like(). var dogGirl = databaseContext.SimpleResponses .Where(catboy => catboy.Command.Name == "DogGirl") .Select(p => p.Content) .ToList(); var wordIndex = random.Next(0, dogGirl.Count); var response = dogGirl[wordIndex]; await PostEmbedHelper.PostEmbed(ctx, "Dog girl", member?.Mention, response); } }
/// <summary> /// Losuje słowo /// </summary> /// <param name="Category">kategoria</param> /// <returns></returns> private string GetWord(string Category = null) { using (var databaseContext = new StaticDBContext()) { IQueryable <string> wordList = null; if (Category == null) { wordList = databaseContext.HangmanWords .Select(p => p.Word); } else if (Category == "państwa") { wordList = databaseContext.HangmanWords .Where(p => p.HangmanCategoryID == 1) .Select(p => p.Word); } else if (Category == "zwierzęta") { wordList = databaseContext.HangmanWords .Where(p => p.HangmanCategoryID == 2) .Select(p => p.Word); } else if (Category == "rzeczy") { wordList = databaseContext.HangmanWords .Where(p => p.HangmanCategoryID == 3) .Select(p => p.Word); } var words = wordList.ToList(); var wordIndex = _random.Next(0, words.Count); var word = words[wordIndex]; return(word); } }
public SimpleResponseResponse <List <SimpleResponseElement> > GetAnswers(string commandName) { using (var databaseContext = new StaticDBContext()) { var command = databaseContext.Commands.Where(p => p.Name == commandName).FirstOrDefault(); if (command == null) { return(new SimpleResponseResponse <List <SimpleResponseElement> >(SimpleResponseResult.NoSuchCommand)); } var responses = databaseContext.SimpleResponses.Where(p => p.Command.Name == commandName); if (responses.Count() == 0) { return(new SimpleResponseResponse <List <SimpleResponseElement> >(SimpleResponseResult.CommandHasNoResponses)); } var list = new List <SimpleResponseElement>(); foreach (var response in responses) { list.Add(new SimpleResponseElement(response.Content, response.Type)); } return(new SimpleResponseResponse <List <SimpleResponseElement> >(list)); } }