diff --git a/Discord.Net b/Discord.Net
index d2229228..9ce5c475 160000
--- a/Discord.Net
+++ b/Discord.Net
@@ -1 +1 @@
-Subproject commit d2229228b92117899d65cd549a1f2853057b255b
+Subproject commit 9ce5c4757efc6cb6bb8959e851abcdcbe03217be
diff --git a/README.md b/README.md
index 62289d80..cb00cdc9 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,12 @@
![img](https://ci.appveyor.com/api/projects/status/gmu6b3ltc80hr3k9?svg=true)
[![Discord](https://discordapp.com/api/guilds/117523346618318850/widget.png)](https://discord.gg/nadekobot)
[![Documentation Status](https://readthedocs.org/projects/nadekobot/badge/?version=latest)](http://nadekobot.readthedocs.io/en/latest/?badge=latest)
-![nadeko0](https://cdn.discordapp.com/attachments/266240393639755778/281920716809699328/part1.png)
+[![nadeko0](https://cdn.discordapp.com/attachments/266240393639755778/281920716809699328/part1.png)](http://nadekobot.xyz)
[![nadeko1](https://cdn.discordapp.com/attachments/266240393639755778/281920134967328768/part2.png)](https://discordapp.com/oauth2/authorize?client_id=170254782546575360&scope=bot&permissions=66186303)
[![nadeko2](https://cdn.discordapp.com/attachments/266240393639755778/281920161311883264/part3.png)](http://nadekobot.readthedocs.io/en/latest/Commands%20List/)
-##For Update, Help and Guidlines
-
-`Follow me on twitter for updates. | Join my Discord server if you need help. | Read the Docs for hosting guides.`
-
-[![twitter](https://cdn.discordapp.com/attachments/155726317222887425/252192520094613504/twiter_banner.JPG)](https://twitter.com/TheNadekoBot) [![discord](https://cdn.discordapp.com/attachments/266240393639755778/281920766490968064/discord.png)](https://discord.gg/nadekobot) [![Wiki](https://cdn.discordapp.com/attachments/266240393639755778/281920793330581506/datcord.png)](http://nadekobot.readthedocs.io/en/latest/)
-
+##For Update, Help and Guidelines
+| [![twitter](https://cdn.discordapp.com/attachments/155726317222887425/252192520094613504/twiter_banner.JPG)](https://twitter.com/TheNadekoBot) | [![discord](https://cdn.discordapp.com/attachments/266240393639755778/281920766490968064/discord.png)](https://discord.gg/nadekobot) | [![Wiki](https://cdn.discordapp.com/attachments/266240393639755778/281920793330581506/datcord.png)](http://nadekobot.readthedocs.io/en/latest/)
+| --- | --- | --- |
+| Follow me on Twitter for updates. | Join my Discord server if you need help. | Read the Docs for hosting guides. |
\ No newline at end of file
diff --git a/src/NadekoBot/Modules/Utility/Commands/QuoteCommands.cs b/src/NadekoBot/Modules/Utility/Commands/QuoteCommands.cs
index 193acf42..d68b8c29 100644
--- a/src/NadekoBot/Modules/Utility/Commands/QuoteCommands.cs
+++ b/src/NadekoBot/Modules/Utility/Commands/QuoteCommands.cs
@@ -70,6 +70,27 @@ namespace NadekoBot.Modules.Utility
}
await Context.Channel.SendMessageAsync("📣 " + quote.Text.SanitizeMentions());
}
+
+ [NadekoCommand, Usage, Description, Aliases]
+ [RequireContext(ContextType.Guild)]
+ public async Task SearchQuote(string keyword, [Remainder] string text)
+ {
+ if (string.IsNullOrWhiteSpace(keyword) || string.IsNullOrWhiteSpace(text))
+ return;
+
+ keyword = keyword.ToUpperInvariant();
+
+ Quote keywordquote;
+ using (var uow = DbHandler.UnitOfWork())
+ {
+ keywordquote = await uow.Quotes.SearchQuoteKeywordTextAsync(Context.Guild.Id, keyword, text).ConfigureAwait(false);
+ }
+
+ if (keywordquote == null)
+ return;
+
+ await Context.Channel.SendMessageAsync("💬 " + keyword + ": " + keywordquote.Text.SanitizeMentions());
+ }
[NadekoCommand, Usage, Description, Aliases]
[RequireContext(ContextType.Guild)]
@@ -155,4 +176,4 @@ namespace NadekoBot.Modules.Utility
}
}
}
-}
\ No newline at end of file
+}
diff --git a/src/NadekoBot/Resources/CommandStrings.Designer.cs b/src/NadekoBot/Resources/CommandStrings.Designer.cs
index a95f8db1..7fb45cfe 100644
--- a/src/NadekoBot/Resources/CommandStrings.Designer.cs
+++ b/src/NadekoBot/Resources/CommandStrings.Designer.cs
@@ -2381,6 +2381,33 @@ namespace NadekoBot.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to qsearch.
+ ///
+ public static string searchquote_cmd {
+ get {
+ return ResourceManager.GetString("searchquote_cmd", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Searches a quote for a given keyword and any string portion of a quote matching that keyword..
+ ///
+ public static string searchquote_desc {
+ get {
+ return ResourceManager.GetString("searchquote_desc", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to `{0}qsearch keyword text`.
+ ///
+ public static string searchquote_usage {
+ get {
+ return ResourceManager.GetString("searchquote_usage", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to delmsgoncmd.
///
diff --git a/src/NadekoBot/Resources/CommandStrings.resx b/src/NadekoBot/Resources/CommandStrings.resx
index 664b0713..8f010f11 100644
--- a/src/NadekoBot/Resources/CommandStrings.resx
+++ b/src/NadekoBot/Resources/CommandStrings.resx
@@ -1143,6 +1143,15 @@
`{0}.. abc`
+
+ qsearch
+
+
+ Searches a quote for a given keyword and any string portion of a quote matching that keyword.
+
+
+ `{0}qsearch keyword text`
+
deletequote delq
@@ -3132,4 +3141,4 @@
`{0}langli`
-
\ No newline at end of file
+
diff --git a/src/NadekoBot/Services/Database/Repositories/IQuoteRepository.cs b/src/NadekoBot/Services/Database/Repositories/IQuoteRepository.cs
index e3ca6ec1..080783ab 100644
--- a/src/NadekoBot/Services/Database/Repositories/IQuoteRepository.cs
+++ b/src/NadekoBot/Services/Database/Repositories/IQuoteRepository.cs
@@ -8,6 +8,7 @@ namespace NadekoBot.Services.Database.Repositories
{
IEnumerable GetAllQuotesByKeyword(ulong guildId, string keyword);
Task GetRandomQuoteByKeywordAsync(ulong guildId, string keyword);
+ Task SearchQuoteKeywordTextAsync(ulong guildId, string keyword, string text);
IEnumerable GetGroup(ulong guildId, int skip, int take);
}
}
diff --git a/src/NadekoBot/Services/Database/Repositories/Impl/QuoteRepository.cs b/src/NadekoBot/Services/Database/Repositories/Impl/QuoteRepository.cs
index 22c6e5c9..898f0efd 100644
--- a/src/NadekoBot/Services/Database/Repositories/Impl/QuoteRepository.cs
+++ b/src/NadekoBot/Services/Database/Repositories/Impl/QuoteRepository.cs
@@ -23,5 +23,10 @@ namespace NadekoBot.Services.Database.Repositories.Impl
var rng = new NadekoRandom();
return _set.Where(q => q.GuildId == guildId && q.Keyword == keyword).OrderBy(q => rng.Next()).FirstOrDefaultAsync();
}
+ public Task SearchQuoteKeywordTextAsync(ulong guildId, string keyword, string text)
+ {
+ var rngk = new NadekoRandom();
+ return _set.Where(q => q.Text.Contains(text) && q.GuildId == guildId && q.Keyword == keyword).OrderBy(q => rngk.Next()).FirstOrDefaultAsync();
+ }
}
}