From ad358b5e0f2d48911137c03f5b6ccf2ea35c56ad Mon Sep 17 00:00:00 2001 From: Master Kwoth Date: Sun, 29 May 2016 19:18:55 +0200 Subject: [PATCH] ~ir error 400 should be more rare, closes #247 --- .../Modules/Conversations/Conversations.cs | 58 +++++++++---------- NadekoBot/Modules/Searches/SearchesModule.cs | 7 ++- 2 files changed, 33 insertions(+), 32 deletions(-) diff --git a/NadekoBot/Modules/Conversations/Conversations.cs b/NadekoBot/Modules/Conversations/Conversations.cs index f40f0678..b8de0cea 100644 --- a/NadekoBot/Modules/Conversations/Conversations.cs +++ b/NadekoBot/Modules/Conversations/Conversations.cs @@ -227,36 +227,36 @@ namespace NadekoBot.Modules.Conversations } cgb.CreateCommand("slm") - .Description("Shows the message where you were last mentioned in this channel (checks last 10k messages)") - .Do(async e => - { + .Description("Shows the message where you were last mentioned in this channel (checks last 10k messages)") + .Do(async e => + { - Message msg = null; - var msgs = (await e.Channel.DownloadMessages(100).ConfigureAwait(false)) - .Where(m => m.MentionedUsers.Contains(e.User)) - .OrderByDescending(m => m.Timestamp); - if (msgs.Any()) - msg = msgs.First(); - else - { - var attempt = 0; - Message lastMessage = null; - while (msg == null && attempt++ < 5) - { - var msgsarr = await e.Channel.DownloadMessages(100, lastMessage?.Id).ConfigureAwait(false); - msg = msgsarr - .Where(m => m.MentionedUsers.Contains(e.User)) - .OrderByDescending(m => m.Timestamp) - .FirstOrDefault(); - lastMessage = msgsarr.OrderBy(m => m.Timestamp).First(); - } - } - if (msg != null) - await e.Channel.SendMessage($"Last message mentioning you was at {msg.Timestamp}\n**Message from {msg.User.Name}:** {msg.RawText}") - .ConfigureAwait(false); - else - await e.Channel.SendMessage("I can't find a message mentioning you.").ConfigureAwait(false); - }); + Message msg = null; + var msgs = (await e.Channel.DownloadMessages(100).ConfigureAwait(false)) + .Where(m => m.MentionedUsers.Contains(e.User)) + .OrderByDescending(m => m.Timestamp); + if (msgs.Any()) + msg = msgs.First(); + else + { + var attempt = 0; + Message lastMessage = null; + while (msg == null && attempt++ < 5) + { + var msgsarr = await e.Channel.DownloadMessages(100, lastMessage?.Id).ConfigureAwait(false); + msg = msgsarr + .Where(m => m.MentionedUsers.Contains(e.User)) + .OrderByDescending(m => m.Timestamp) + .FirstOrDefault(); + lastMessage = msgsarr.OrderBy(m => m.Timestamp).First(); + } + } + if (msg != null) + await e.Channel.SendMessage($"Last message mentioning you was at {msg.Timestamp}\n**Message from {msg.User.Name}:** {msg.RawText}") + .ConfigureAwait(false); + else + await e.Channel.SendMessage("I can't find a message mentioning you.").ConfigureAwait(false); + }); cgb.CreateCommand("hide") .Description("Hides Nadeko in plain sight!11!!") diff --git a/NadekoBot/Modules/Searches/SearchesModule.cs b/NadekoBot/Modules/Searches/SearchesModule.cs index 22c22955..5eeeef50 100644 --- a/NadekoBot/Modules/Searches/SearchesModule.cs +++ b/NadekoBot/Modules/Searches/SearchesModule.cs @@ -27,7 +27,7 @@ namespace NadekoBot.Modules.Searches commands.Add(new StreamNotifications(this)); commands.Add(new ConverterCommand(this)); commands.Add(new RedditCommand(this)); - commands.Add(new WowJokeCommand(this)); + commands.Add(new WowJokeCommand(this)); rng = new Random(); } @@ -187,9 +187,10 @@ $@"🌍 **Weather for** 【{obj["target"]}】 return; try { - var reqString = $"https://www.googleapis.com/customsearch/v1?q={Uri.EscapeDataString(e.GetArg("query"))}&cx=018084019232060951019%3Ahs5piey28-e&num=1&searchType=image&start={ rng.Next(1, 150) }&fields=items%2Flink&key={NadekoBot.Creds.GoogleAPIKey}"; + var reqString = $"https://www.googleapis.com/customsearch/v1?q={Uri.EscapeDataString(e.GetArg("query"))}&cx=018084019232060951019%3Ahs5piey28-e&num=50&searchType=image&start={ rng.Next(1, 50) }&fields=items%2Flink&key={NadekoBot.Creds.GoogleAPIKey}"; var obj = JObject.Parse(await SearchHelper.GetResponseStringAsync(reqString).ConfigureAwait(false)); - await e.Channel.SendMessage(obj["items"][0]["link"].ToString()).ConfigureAwait(false); + var items = obj["items"] as JArray; + await e.Channel.SendMessage(items[rng.Next(0, items.Count)]["link"].ToString()).ConfigureAwait(false); } catch (HttpRequestException exception) {