~hentai changed, ~hentaibomb added (buffed ~hentai)

This commit is contained in:
Kwoth 2016-11-06 00:59:21 +01:00
parent f3ce927969
commit 8dfa7ee1c1
4 changed files with 122 additions and 15 deletions

View File

@ -30,11 +30,51 @@ namespace NadekoBot.Modules.NSFW
tag = tag?.Trim() ?? ""; tag = tag?.Trim() ?? "";
var links = await Task.WhenAll(GetGelbooruImageLink("rating%3Aexplicit+" + tag), GetDanbooruImageLink("rating%3Aexplicit+" + tag)).ConfigureAwait(false); tag = "rating%3Aexplicit+" + tag;
var rng = new NadekoRandom();
Task<string> provider = Task.FromResult("");
switch (rng.Next(0,4))
{
case 0:
provider = GetDanbooruImageLink(tag);
break;
case 1:
provider = GetGelbooruImageLink(tag);
break;
case 2:
provider = GetATFbooruImageLink(tag);
break;
case 3:
provider = GetKonachanImageLink(tag);
break;
default:
break;
}
var link = await provider.ConfigureAwait(false);
if (string.IsNullOrWhiteSpace(link))
await channel.SendMessageAsync("Search yielded no results ;(").ConfigureAwait(false);
else
await channel.SendMessageAsync(link).ConfigureAwait(false);
}
[NadekoCommand, Usage, Description, Aliases]
[RequireContext(ContextType.Guild)]
public async Task HentaiBomb(IUserMessage umsg, [Remainder] string tag = null)
{
var channel = (ITextChannel)umsg.Channel;
tag = tag?.Trim() ?? "";
tag = "rating%3Aexplicit+" + tag;
var links = await Task.WhenAll(GetGelbooruImageLink(tag),
GetDanbooruImageLink(tag),
GetKonachanImageLink(tag),
GetATFbooruImageLink(tag)).ConfigureAwait(false);
if (links.All(l => l == null)) if (links.All(l => l == null))
{ {
await channel.SendMessageAsync("`No results.`"); await channel.SendMessageAsync("`No results.`").ConfigureAwait(false);
return; return;
} }
@ -50,7 +90,7 @@ namespace NadekoBot.Modules.NSFW
tag = tag?.Trim() ?? ""; tag = tag?.Trim() ?? "";
var link = await GetATFbooruImageLink(tag).ConfigureAwait(false); var link = await GetATFbooruImageLink(tag).ConfigureAwait(false);
if (string.IsNullOrWhiteSpace(link)) if (string.IsNullOrWhiteSpace(link))
await channel.SendMessageAsync("Search yielded no results ;("); await channel.SendMessageAsync("Search yielded no results ;(").ConfigureAwait(false);
else else
await channel.SendMessageAsync(link).ConfigureAwait(false); await channel.SendMessageAsync(link).ConfigureAwait(false);
} }
@ -64,7 +104,7 @@ namespace NadekoBot.Modules.NSFW
tag = tag?.Trim() ?? ""; tag = tag?.Trim() ?? "";
var link = await GetDanbooruImageLink(tag).ConfigureAwait(false); var link = await GetDanbooruImageLink(tag).ConfigureAwait(false);
if (string.IsNullOrWhiteSpace(link)) if (string.IsNullOrWhiteSpace(link))
await channel.SendMessageAsync("Search yielded no results ;("); await channel.SendMessageAsync("Search yielded no results ;(").ConfigureAwait(false);
else else
await channel.SendMessageAsync(link).ConfigureAwait(false); await channel.SendMessageAsync(link).ConfigureAwait(false);
} }
@ -78,7 +118,7 @@ namespace NadekoBot.Modules.NSFW
tag = tag?.Trim() ?? ""; tag = tag?.Trim() ?? "";
var link = await GetKonachanImageLink(tag).ConfigureAwait(false); var link = await GetKonachanImageLink(tag).ConfigureAwait(false);
if (string.IsNullOrWhiteSpace(link)) if (string.IsNullOrWhiteSpace(link))
await channel.SendMessageAsync("Search yielded no results ;("); await channel.SendMessageAsync("Search yielded no results ;(").ConfigureAwait(false);
else else
await channel.SendMessageAsync(link).ConfigureAwait(false); await channel.SendMessageAsync(link).ConfigureAwait(false);
} }
@ -92,7 +132,7 @@ namespace NadekoBot.Modules.NSFW
tag = tag?.Trim() ?? ""; tag = tag?.Trim() ?? "";
var link = await GetGelbooruImageLink(tag).ConfigureAwait(false); var link = await GetGelbooruImageLink(tag).ConfigureAwait(false);
if (string.IsNullOrWhiteSpace(link)) if (string.IsNullOrWhiteSpace(link))
await channel.SendMessageAsync("Search yielded no results ;("); await channel.SendMessageAsync("Search yielded no results ;(").ConfigureAwait(false);
else else
await channel.SendMessageAsync(link).ConfigureAwait(false); await channel.SendMessageAsync(link).ConfigureAwait(false);
} }
@ -106,7 +146,7 @@ namespace NadekoBot.Modules.NSFW
tag = tag?.Trim() ?? ""; tag = tag?.Trim() ?? "";
var link = await GetRule34ImageLink(tag).ConfigureAwait(false); var link = await GetRule34ImageLink(tag).ConfigureAwait(false);
if (string.IsNullOrWhiteSpace(link)) if (string.IsNullOrWhiteSpace(link))
await channel.SendMessageAsync("Search yielded no results ;("); await channel.SendMessageAsync("Search yielded no results ;(").ConfigureAwait(false);
else else
await channel.SendMessageAsync(link).ConfigureAwait(false); await channel.SendMessageAsync(link).ConfigureAwait(false);
} }
@ -120,7 +160,7 @@ namespace NadekoBot.Modules.NSFW
tag = tag?.Trim() ?? ""; tag = tag?.Trim() ?? "";
var link = await GetE621ImageLink(tag).ConfigureAwait(false); var link = await GetE621ImageLink(tag).ConfigureAwait(false);
if (string.IsNullOrWhiteSpace(link)) if (string.IsNullOrWhiteSpace(link))
await channel.SendMessageAsync("Search yielded no results ;("); await channel.SendMessageAsync("Search yielded no results ;(").ConfigureAwait(false);
else else
await channel.SendMessageAsync(link).ConfigureAwait(false); await channel.SendMessageAsync(link).ConfigureAwait(false);
} }
@ -190,7 +230,7 @@ namespace NadekoBot.Modules.NSFW
if (matches.Count == 0) if (matches.Count == 0)
return null; return null;
return await NadekoBot.Google.ShortenUrl(matches[rng.Next(0, matches.Count)].Groups["ll"].Value).ConfigureAwait(false); return matches[rng.Next(0, matches.Count)].Groups["ll"].Value;
} }
} }

View File

@ -464,6 +464,33 @@ namespace NadekoBot.Resources {
} }
} }
/// <summary>
/// Looks up a localized string similar to atfbooru atf.
/// </summary>
public static string atfbooru_cmd {
get {
return ResourceManager.GetString("atfbooru_cmd", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Shows a random hentai image from atfbooru with a given tag. Tag is optional but preferred..
/// </summary>
public static string atfbooru_desc {
get {
return ResourceManager.GetString("atfbooru_desc", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to `{0}atfbooru yuri+kissing`.
/// </summary>
public static string atfbooru_usage {
get {
return ResourceManager.GetString("atfbooru_usage", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to autoassignrole aar. /// Looks up a localized string similar to autoassignrole aar.
/// </summary> /// </summary>
@ -2823,7 +2850,7 @@ namespace NadekoBot.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Shows a 2 random images (from gelbooru and danbooru) with a given tag. Tag is optional but preferred. Only 1 tag allowed.. /// Looks up a localized string similar to Shows a hentai image from a random website (gelbooru or danbooru or konachan or atfbooru) with a given tag. Tag is optional but preferred. Only 1 tag allowed..
/// </summary> /// </summary>
public static string hentai_desc { public static string hentai_desc {
get { get {
@ -2840,6 +2867,33 @@ namespace NadekoBot.Resources {
} }
} }
/// <summary>
/// Looks up a localized string similar to hentaibomb.
/// </summary>
public static string hentaibomb_cmd {
get {
return ResourceManager.GetString("hentaibomb_cmd", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Shows a total 4 images (from gelbooru, danbooru, konachan and atfbooru). Tag is optional but preferred..
/// </summary>
public static string hentaibomb_desc {
get {
return ResourceManager.GetString("hentaibomb_desc", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to `{0}hentaibomb yuri`.
/// </summary>
public static string hentaibomb_usage {
get {
return ResourceManager.GetString("hentaibomb_usage", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to hgit. /// Looks up a localized string similar to hgit.
/// </summary> /// </summary>
@ -3147,7 +3201,7 @@ namespace NadekoBot.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Shows a random hentai image from konachan with a given tag. Tag is optional but preferred. (multiple tags are appended with +). /// Looks up a localized string similar to Shows a random hentai image from konachan with a given tag. Tag is optional but preferred..
/// </summary> /// </summary>
public static string konachan_desc { public static string konachan_desc {
get { get {

View File

@ -2101,7 +2101,7 @@
<value>hentai</value> <value>hentai</value>
</data> </data>
<data name="hentai_desc" xml:space="preserve"> <data name="hentai_desc" xml:space="preserve">
<value>Shows a 2 random images (from gelbooru and danbooru) with a given tag. Tag is optional but preferred. Only 1 tag allowed.</value> <value>Shows a hentai image from a random website (gelbooru or danbooru or konachan or atfbooru) with a given tag. Tag is optional but preferred. Only 1 tag allowed.</value>
</data> </data>
<data name="hentai_usage" xml:space="preserve"> <data name="hentai_usage" xml:space="preserve">
<value>`{0}hentai yuri`</value> <value>`{0}hentai yuri`</value>
@ -2461,7 +2461,7 @@
<value>konachan</value> <value>konachan</value>
</data> </data>
<data name="konachan_desc" xml:space="preserve"> <data name="konachan_desc" xml:space="preserve">
<value>Shows a random hentai image from konachan with a given tag. Tag is optional but preferred. (multiple tags are appended with +)</value> <value>Shows a random hentai image from konachan with a given tag. Tag is optional but preferred.</value>
</data> </data>
<data name="konachan_usage" xml:space="preserve"> <data name="konachan_usage" xml:space="preserve">
<value>`{0}konachan yuri`</value> <value>`{0}konachan yuri`</value>
@ -2610,4 +2610,13 @@
<data name="listservers_usage" xml:space="preserve"> <data name="listservers_usage" xml:space="preserve">
<value>`{0}listservers 3`</value> <value>`{0}listservers 3`</value>
</data> </data>
<data name="hentaibomb_cmd" xml:space="preserve">
<value>hentaibomb</value>
</data>
<data name="hentaibomb_desc" xml:space="preserve">
<value>Shows a total 4 images (from gelbooru, danbooru, konachan and atfbooru). Tag is optional but preferred.</value>
</data>
<data name="hentaibomb_usage" xml:space="preserve">
<value>`{0}hentaibomb yuri`</value>
</data>
</root> </root>

View File

@ -91,6 +91,10 @@ namespace NadekoBot.Services.Impl
{ {
if (string.IsNullOrWhiteSpace(url)) if (string.IsNullOrWhiteSpace(url))
throw new ArgumentNullException(nameof(url)); throw new ArgumentNullException(nameof(url));
if (string.IsNullOrWhiteSpace(NadekoBot.Credentials.GoogleApiKey))
return url;
try try
{ {
var response = await sh.Url.Insert(new Url { LongUrl = url }).ExecuteAsync(); var response = await sh.Url.Insert(new Url { LongUrl = url }).ExecuteAsync();