コード例 #1
0
ファイル: Fun.cs プロジェクト: oatsfx/Geometric
        public async Task Fact([Remainder] string animal = null)
        {
            if (animal == null)
            {
                await ReplyAsync($"Possible animal facts are: **dog**, **cat**, **panda**, **fox**, **bird**, **koala**, **racoon**, **kangaroo**, **elephant**, **giraffe**, or **whale**.");

                return;
            }
            else
            {
                RandomFact randomFact = null;

                //Removes Slashes to prevent Link issues
                animal = animal.Replace("/", "");
                animal = animal.Replace(@"\", "");

                using (WebClient webClient = new WebClient())
                {
                    try
                    {
                        webClient.UseDefaultCredentials = true;
                        string json = webClient.DownloadString("https://some-random-api.ml/facts/" + animal);
                        randomFact = JsonConvert.DeserializeObject <RandomFact>(json);
                    }
                    catch (Exception ex)
                    {
                        await ReplyAsync($"That animal does not exist in the API. Please use: **dog**, **cat**, **panda**, **fox**, **bird**, **koala**, **racoon**, **kangaroo**, **elephant**, **giraffe**, or **whale**. If this problem persists, the API doesn't work.");

                        Console.WriteLine(ex);
                    }
                }

                var bytes       = Encoding.Default.GetBytes(randomFact.factText); //Fixes ’ in the original string from the API (kind of annoying)
                var factEncoded = Encoding.UTF8.GetString(bytes);

                Random random   = new Random();
                int    redRnd   = random.Next(0, 255);
                Random random2  = new Random();
                int    greenRnd = random.Next(0, 255);
                Random random3  = new Random();
                int    blueRnd  = random.Next(0, 255);

                var auth = new EmbedAuthorBuilder()
                {
                    Name = $"Random {char.ToUpper(animal[0])}{animal.Substring(1)} Fact",
                };

                var embed = new EmbedBuilder()
                {
                    Color       = new Color(redRnd, greenRnd, blueRnd),
                    Author      = auth,
                    Description = factEncoded,
                };

                await ReplyAsync("", false, embed.Build());
            }
        }
コード例 #2
0
        public async Task GetRandomFactAsync(string url)
        {
            HttpClient client = new HttpClient();

            client.BaseAddress = new Uri(url);
            var response = await client.GetAsync(client.BaseAddress);

            response.EnsureSuccessStatusCode();
            var        JsonResult = response.Content.ReadAsStringAsync().Result;
            RandomFact randomfact = JsonConvert.DeserializeObject <RandomFact>(JsonResult);

            SetValues(randomfact);
        }
コード例 #3
0
        private void SetValues(RandomFact randomfact)
        {
            var text       = randomfact.text;
            var permalink  = randomfact.permalink;
            var source_url = randomfact.source_url;
            var language   = randomfact.language;
            var source     = randomfact.source;

            Text      = text;
            PermaLink = permalink;
            SourceURL = source_url;
            Language  = language;
            Source    = source;
        }
コード例 #4
0
        public async Task <IActionResult> OnGetAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            RandomFact = await _context.RandomFact.FirstOrDefaultAsync(m => m.RandomFactId == id);

            if (RandomFact == null)
            {
                return(NotFound());
            }
            return(Page());
        }
コード例 #5
0
        public async Task <IActionResult> OnPostAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            RandomFact = await _context.RandomFact.FindAsync(id);

            if (RandomFact != null)
            {
                _context.RandomFact.Remove(RandomFact);
                await _context.SaveChangesAsync();
            }

            return(RedirectToPage("./Index"));
        }
コード例 #6
0
        public async Task <ActionResult <RandomFact> > UpdateRandomFact(Guid id)
        {
            var account = _context.Accounts.Find(id);

            if (account == null)
            {
                return(NotFound("No account find with this id"));
            }

            var fact = await RandomFact.GetFact();

            if (fact == null)
            {
                return(BadRequest("New fact: Something went wrong (This is a error message)"));
            }

            account.RandomFact = fact.Data;

            _context.SaveChanges();
            return(Ok(fact));
        }