private async Task RunNsfwAsync <T>(IContext e) where T : BooruPost, ILinkable { try { ILinkable s = await ImageboardProviderPool.GetProvider <T>() .GetPostAsync(e.GetArgumentPack().Pack.TakeAll(), ImageRating.EXPLICIT); if (!IsValid(s)) { throw new DataNotFoundException(); } await CreateEmbed(s) .QueueAsync(e, e.GetChannel()); } catch (ArgumentOutOfRangeException) { throw new DataNotFoundException(); } catch (Exception ex) { if (!(ex is LocalizedException)) { await e.ErrorEmbed("Too many tags for this system. sorry :(") .ToEmbed() .QueueAsync(e, e.GetChannel()); } throw; } await UnlockLewdAchievementAsync(e, e.GetService <AchievementService>()); }
public async Task DoSafe(EventContext e) { Locale locale = Locale.GetEntity(e.Channel.Id.ToDbLong()); ILinkable s = null; if (e.arguments.ToLower().StartsWith("use")) { string[] a = e.arguments.Split(' '); e.arguments = e.arguments.Substring(a[0].Length); switch (a[0].Split(':')[1].ToLower()) { case "safebooru": { s = ImageboardProviderPool.GetProvider <SafebooruPost>().GetPost(e.arguments, ImageboardRating.SAFE); } break; case "gelbooru": { s = ImageboardProviderPool.GetProvider <GelbooruPost>().GetPost(e.arguments, ImageboardRating.SAFE); } break; case "konachan": { s = ImageboardProviderPool.GetProvider <KonachanPost>().GetPost(e.arguments, ImageboardRating.SAFE); } break; case "e621": { s = ImageboardProviderPool.GetProvider <E621Post>().GetPost(e.arguments, ImageboardRating.SAFE); } break; default: { await e.Channel.SendMessage("I do not support this image host :("); } break; } } else { s = ImageboardProviderPool.GetProvider <SafebooruPost>().GetPost(e.arguments, ImageboardRating.SAFE); } if (s == null) { await Utils.ErrorEmbed(locale, "We couldn't find an image with these tags!").SendToChannel(e.Channel); return; } await e.Channel.SendMessage(s.Url); }
public async Task RunYandere(EventContext e) { ILinkable s = ImageboardProviderPool.GetProvider <YanderePost>().GetPost(e.arguments, ImageboardRating.EXPLICIT); if (!IsValid(s)) { e.ErrorEmbed("Couldn't find anything with these tags!") .QueueToChannel(e.Channel); return; } CreateEmbed(s).QueueToChannel(e.Channel); }
public async Task RunYandere(EventContext e) { ILinkable s = ImageboardProviderPool.GetProvider <YanderePost>().GetPost(e.arguments, ImageboardRating.EXPLICIT); if (s == null) { await Utils.ErrorEmbed(Locale.GetEntity(e.Channel.Id), "Couldn't find anything with these tags!") .SendToChannel(e.Channel); } await Utils.Embed .SetTitle("YANDE.RE") .SetImageUrl(s.Url) .SendToChannel(e.Channel.Id); }
public async Task RunYandere(EventContext e) { ILinkable s = ImageboardProviderPool.GetProvider <YanderePost>().GetPost(e.arguments, ImageboardRating.EXPLICIT); if (!IsValid(s)) { await Utils.ErrorEmbed(Locale.GetEntity(e.Channel.Id), "Couldn't find anything with these tags!") .SendToChannel(e.Channel); return; } await CreateEmbed(s) .SendToChannel(e.Channel); }
public FunModule(RuntimeModule m) { ImageboardProviderPool.AddProvider(new ImageboardProvider <E621Post>(new ImageboardConfigurations { QueryKey = "http://e621.net/post/index.json?limit=1&tags=", ExplicitTag = "rating:e", QuestionableTag = "rating:q", SafeTag = "rating:s", NetUseCredentials = true, NetHeaders = new List <string>() { "User-Agent: Other" } })); ImageboardProviderPool.AddProvider(new ImageboardProvider <GelbooruPost>("http://gelbooru.com/index.php?page=dapi&s=post&q=index&json=1&tags=")); ImageboardProviderPool.AddProvider(new ImageboardProvider <SafebooruPost>("https://safebooru.org/index.php?page=dapi&s=post&q=index&json=1&tags=")); ImageboardProviderPool.AddProvider(new ImageboardProvider <Rule34Post>("http://rule34.xxx/index.php?page=dapi&s=post&q=index&json=1&tags=")); ImageboardProviderPool.AddProvider(new ImageboardProvider <KonachanPost>("https://konachan.com/post.json?tags=")); ImageboardProviderPool.AddProvider(new ImageboardProvider <YanderePost>("https://yande.re/post.json?tags=")); }
public async Task RunYandere(EventContext e) { try { ILinkable s = await ImageboardProviderPool.GetProvider <YanderePost>().GetPostAsync(e.Arguments.ToString(), ImageboardRating.EXPLICIT); if (!IsValid(s)) { e.ErrorEmbed("Couldn't find anything with these tags!") .ToEmbed().QueueToChannel(e.Channel); return; } CreateEmbed(s).QueueToChannel(e.Channel); } catch (Exception ex) { e.ErrorEmbed("Too many tags for this system. sorry :(") .ToEmbed().QueueToChannel(e.Channel); } }
public async Task RunE621(EventContext e) { try { ILinkable s = await ImageboardProviderPool.GetProvider <E621Post>().GetPostAsync(e.Arguments.Pack.TakeAll(), ImageboardRating.EXPLICIT); if (!IsValid(s)) { await e.ErrorEmbed("Couldn't find anything with these tags!") .ToEmbed().QueueToChannelAsync(e.Channel); return; } await CreateEmbed(s) .QueueToChannelAsync(e.Channel); } catch { await e.ErrorEmbed("Too many tags for this system. sorry :(") .ToEmbed().QueueToChannelAsync(e.Channel); } }
public async Task DoSafe(EventContext e) { ILinkable s = null; ArgObject arg = e.Arguments.FirstOrDefault(); if (arg != null) { string useArg = arg.Argument; if (useArg.ToLower().StartsWith("use")) { arg = arg.Next(); switch (useArg.Split(':')[1].ToLower()) { case "safebooru": { s = await ImageboardProviderPool.GetProvider <SafebooruPost>().GetPostAsync(arg?.TakeUntilEnd().Argument, ImageboardRating.SAFE); } break; case "gelbooru": { s = await ImageboardProviderPool.GetProvider <GelbooruPost>().GetPostAsync(arg?.TakeUntilEnd().Argument, ImageboardRating.SAFE); } break; case "konachan": { s = await ImageboardProviderPool.GetProvider <KonachanPost>().GetPostAsync(arg?.TakeUntilEnd().Argument, ImageboardRating.SAFE); } break; case "e621": { s = await ImageboardProviderPool.GetProvider <E621Post>().GetPostAsync(arg?.TakeUntilEnd().Argument, ImageboardRating.SAFE); } break; default: { e.Channel.QueueMessageAsync("I do not support this image host :("); } break; } } else { s = await ImageboardProviderPool.GetProvider <SafebooruPost>().GetPostAsync(e.Arguments.Join()?.Argument ?? "", ImageboardRating.SAFE); } } else { s = await ImageboardProviderPool.GetProvider <SafebooruPost>().GetPostAsync(e.Arguments.Join()?.Argument ?? "", ImageboardRating.SAFE); } if (s == null) { e.ErrorEmbed("We couldn't find an image with these tags!").ToEmbed().QueueToChannel(e.Channel); return; } e.Channel.QueueMessageAsync(s.Url); }
public FunModule(Module m, Bot b) { ImageboardProviderPool.AddProvider(new ImageboardProvider <E621Post>(new ImageboardConfigurations { QueryKey = new Uri("http://e621.net/post/index.json?tags="), ExplicitTag = "rating:e", QuestionableTag = "rating:q", SafeTag = "rating:s", NetUseCredentials = true, NetHeaders = new List <Tuple <string, string> >() { new Tuple <string, string>("User-Agent", "Other"), }, BlacklistedTags = { "loli", "shota", } })); ImageboardProviderPool.AddProvider(new ImageboardProvider <DanbooruPost>(new ImageboardConfigurations { QueryKey = new Uri("https://danbooru.donmai.us/posts.json?tags="), ExplicitTag = "rating:e", QuestionableTag = "rating:q", SafeTag = "rating:s", NetUseCredentials = true, NetHeaders = { new Tuple <string, string>("Authorization", $"Basic {Convert.ToBase64String(Encoding.UTF8.GetBytes(Global.Config.DanbooruCredentials))}"), }, BlacklistedTags = { "loli", "shota" } })); ImageboardProviderPool.AddProvider(new ImageboardProvider <GelbooruPost>(new ImageboardConfigurations { QueryKey = new Uri("http://gelbooru.com/index.php?page=dapi&s=post&q=index&json=1&tags="), BlacklistedTags = { "loli", "shota", } })); ImageboardProviderPool.AddProvider(new ImageboardProvider <SafebooruPost>(new ImageboardConfigurations { QueryKey = new Uri("https://safebooru.org/index.php?page=dapi&s=post&q=index&json=1&tags="), BlacklistedTags = { "loli", "shota", } })); ImageboardProviderPool.AddProvider(new ImageboardProvider <Rule34Post>(new ImageboardConfigurations { QueryKey = new Uri("http://rule34.xxx/index.php?page=dapi&s=post&q=index&json=1&tags="), BlacklistedTags = { "loli", "shota", } })); ImageboardProviderPool.AddProvider(new ImageboardProvider <KonachanPost>(new ImageboardConfigurations { QueryKey = new Uri("https://konachan.com/post.json?tags="), BlacklistedTags = { "loli", "shota", } })); ImageboardProviderPool.AddProvider(new ImageboardProvider <YanderePost>(new ImageboardConfigurations { QueryKey = new Uri("https://yande.re/post.json?tags="), BlacklistedTags = { "loli", "shota", } })); }
public async Task DoSafe(ICommandContext e) { ILinkable s = null; if (e.Arguments.Take(out string useArg)) { string tags = e.Arguments.Pack.TakeAll(); if (useArg.ToLower().StartsWith("use")) { switch (useArg.Split(':')[1].ToLower()) { case "safebooru": { s = await ImageboardProviderPool.GetProvider <SafebooruPost>().GetPostAsync(tags, ImageRating.SAFE); } break; case "gelbooru": { s = await ImageboardProviderPool.GetProvider <GelbooruPost>().GetPostAsync(tags, ImageRating.SAFE); } break; case "konachan": { s = await ImageboardProviderPool.GetProvider <KonachanPost>().GetPostAsync(tags, ImageRating.SAFE); } break; case "e621": { s = await ImageboardProviderPool.GetProvider <E621Post>().GetPostAsync(tags, ImageRating.SAFE); } break; default: { e.Channel.QueueMessage("I do not support this image host :("); } break; } } else { s = await ImageboardProviderPool.GetProvider <SafebooruPost>().GetPostAsync(tags, ImageRating.SAFE); } } else { string tags = e.Arguments.Pack.TakeAll(); s = await ImageboardProviderPool.GetProvider <SafebooruPost>().GetPostAsync(tags, ImageRating.SAFE); } if (s == null) { await e.ErrorEmbed("We couldn't find an image with these tags!") .ToEmbed().QueueToChannelAsync(e.Channel); return; } e.Channel.QueueMessage(s.Url); }
public NsfwModule(Config config) { ImageboardProviderPool.AddProvider <E621Post>(new ImageboardProvider( new ImageboardConfigurations { QueryKey = new Uri("http://e621.net/post/index.json?tags="), ExplicitTag = "rating:e", QuestionableTag = "rating:q", SafeTag = "rating:s", NetUseCredentials = true, NetHeaders = new List <Tuple <string, string> >() { new Tuple <string, string>("User-Agent", "MikiBot"), }, BlacklistedTags = { "loli", "shota", "gore" }, mapper = content => MikiRandom.Of( JsonConvert.DeserializeObject <List <E621Post> >(content)) })); ImageboardProviderPool.AddProvider <DanbooruPost>(new ImageboardProvider( new ImageboardConfigurations { QueryKey = new Uri("https://danbooru.donmai.us/posts.json?tags="), ExplicitTag = "rating:e", QuestionableTag = "rating:q", SafeTag = "rating:s", NetUseCredentials = true, NetHeaders = { new Tuple <string, string>( "Authorization", $"Basic {Convert.ToBase64String(Encoding.UTF8.GetBytes(config.OptionalValues?.DanbooruApiKey ?? ""))}"), }, BlacklistedTags = { "loli", "shota", "gore" }, mapper = content => MikiRandom.Of( JsonConvert.DeserializeObject <List <DanbooruPost> >(content)) })); ImageboardProviderPool.AddProvider <GelbooruPost>(new ImageboardProvider( new ImageboardConfigurations { QueryKey = new Uri( "http://gelbooru.com/index.php?page=dapi&s=post&q=index&json=1&tags="), BlacklistedTags = { "loli", "shota", "gore" }, mapper = content => MikiRandom.Of( JsonConvert.DeserializeObject <List <GelbooruPost> >(content)) })); ImageboardProviderPool.AddProvider <SafebooruPost>(new ImageboardProvider( new ImageboardConfigurations { QueryKey = new Uri( "https://safebooru.org/index.php?page=dapi&s=post&q=index&json=1&tags="), BlacklistedTags = { "loli", "shota", "gore" }, mapper = content => MikiRandom.Of( JsonConvert.DeserializeObject <List <SafebooruPost> >(content)) })); ImageboardProviderPool.AddProvider <Rule34Post>(new ImageboardProvider( new ImageboardConfigurations { QueryKey = new Uri( "http://rule34.xxx/index.php?page=dapi&s=post&q=index&json=1&tags="), BlacklistedTags = { "loli", "shota", "gore" }, mapper = content => MikiRandom.Of( JsonConvert.DeserializeObject <List <Rule34Post> >(content)) })); ImageboardProviderPool.AddProvider <KonachanPost>(new ImageboardProvider( new ImageboardConfigurations { QueryKey = new Uri("https://konachan.com/post.json?tags="), BlacklistedTags = { "loli", "shota", }, mapper = content => MikiRandom.Of( JsonConvert.DeserializeObject <List <KonachanPost> >(content)) })); ImageboardProviderPool.AddProvider <YanderePost>(new ImageboardProvider( new ImageboardConfigurations { QueryKey = new Uri("https://yande.re/post.json?api_version=2&tags="), BlacklistedTags = { "loli", "shota", }, mapper = content => MikiRandom.Of( JsonConvert.DeserializeObject <YandereResponse>(content).Posts) })); }