public async Task <RandomData> GetTypesAsync(string type, IEnumerable <string> tags, FileType fileType, NsfwSearch nsfw, bool hidden) { await weebClient.Authenticate(Config.bot.wolkeToken, TokenType.Wolke); var result = await weebClient.GetRandomAsync(type, tags, fileType, hidden, nsfw); //hidden and nsfw are always defaulted to false if (result == null) { return(null); } return(result); }
internal string GetNsfwOption(NsfwSearch search) { string nsfw = ""; switch (search) { case NsfwSearch.False: nsfw = "false"; break; case NsfwSearch.True: nsfw = "true"; break; case NsfwSearch.Only: nsfw = "only"; break; } return(nsfw); }
internal async Task <RandomData> GetRandomImage(string type, string tags, bool hidden, NsfwSearch nsfw, FileType fileType) { string query = ""; if (!string.IsNullOrWhiteSpace(type)) { query += $"&type={type}"; } if (!string.IsNullOrWhiteSpace(tags)) { query += $"&tags={tags}"; } string nsfwS = GetNsfwOption(nsfw); query += $"&hidden={hidden.ToString().ToLower()}&nsfw={nsfwS}"; if (fileType != FileType.Any) { string fileExtension = GetFiletypeExtension(fileType); if (!string.IsNullOrWhiteSpace(fileExtension)) { query += $"&filetype={fileExtension}"; } } query = query.Substring(1); query = "?" + query; string result; try { result = await _client.GetStringAsync(Endpoints.Random + query); } catch (HttpRequestException) { return(null); } return(JsonConvert.DeserializeObject <RandomData>(result)); }
/// <summary> /// Gets a random image with the specified tags and type. Either tag or type is mandatory /// </summary> /// <param name="type">type of image</param> /// <param name="tags">tags the image should contain</param> /// <param name="fileType">Specify which filetpye you want. Default to Any</param> /// <param name="hidden">Only visible to the creator of weeb.sh</param> /// <param name="nsfw">Is nsfw</param> /// <returns>Random image or null if none found or authentication fails</returns> public async Task <RandomData> GetRandomAsync(string type, IEnumerable <string> tags, FileType fileType = FileType.Any, bool hidden = false, NsfwSearch nsfw = NsfwSearch.False) { string finalTags = string.Join(",", tags); //Need at least type or tags if (string.IsNullOrWhiteSpace(type) && string.IsNullOrWhiteSpace(finalTags)) { return(null); } return(await _weebHttp.GetRandomImage(type, finalTags, hidden, nsfw, fileType)); }
public async Task <RandomData> GetRandImage(string type, string[] tags, FileType fileType, NsfwSearch nsfw) { return(await _weebClient.GetRandomAsync(type, tags, fileType, false, nsfw)); }
public static async Task <WeebSh> GetWeebSh(CommandContext ctx, string query, string[] tags = null, NsfwSearch nsfw = NsfwSearch.False) { var weeurl = await Bot._weeb.GetRandomAsync(query, tags, nsfw : nsfw); var hc = new HttpClient(); MemoryStream img = new MemoryStream(await hc.GetByteArrayAsync(weeurl.Url)); img.Position = 0; var em = new DiscordEmbedBuilder(); //em.WithDescription($"{ctx.Member.Mention} hugs {m.Mention} uwu"); em.WithImageUrl($"attachment://image.{MimeGuesser.GuessExtension(img)}"); em.WithFooter("by weeb.sh"); //await ctx.RespondWithFileAsync(embed: em.Build(), fileData: img, fileName: $"image.{MimeGuesser.GuessExtension(img)}"); return(new WeebSh { ImgData = img, Extension = MimeGuesser.GuessExtension(img), Embed = em }); }