Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        /// <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));
        }
Ejemplo n.º 5
0
 public async Task <RandomData> GetRandImage(string type, string[] tags, FileType fileType, NsfwSearch nsfw)
 {
     return(await _weebClient.GetRandomAsync(type, tags, fileType, false, nsfw));
 }
Ejemplo n.º 6
0
        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
            });
        }