public async Task <Task> SendWOTDAsync() { WordOfTheDay TodaysWOTD = Logic.GetXMLWOTD(); DiscordEmbedBuilder embedBuilder = new DiscordEmbedBuilder(); embedBuilder.WithTitle("Word of the Day"); embedBuilder.WithUrl(TodaysWOTD.link); //https://imgur.com/rT9YocG embedBuilder.WithThumbnail("https://cdn.discordapp.com/attachments/477632242190123027/603763546836303899/dummy.png"); embedBuilder.WithFooter("A Yoshi's bot", "https://i.imgur.com/rT9YocG.jpg"); embedBuilder.AddField(":flag_es: - " + TodaysWOTD.es_word, $"{TodaysWOTD.es_sentence}", true); embedBuilder.AddField(":flag_gb: - " + TodaysWOTD.en_word, $"{TodaysWOTD.en_sentence}", true); embedBuilder.WithColor(new DiscordColor("#970045")); DiscordEmbed embed = embedBuilder.Build(); languagechannel.CrosspostMessageAsync( languagechannel.SendMessageAsync(new DiscordMessageBuilder() .WithContent(WOTDrole.Mention) .WithEmbed(embed)).Result ); return(Task.CompletedTask); }
public static WordOfTheDay GetXMLWOTD() { List <String> Strings = new List <string>(); XmlDocument rssXmlDoc = new XmlDocument(); // Load the RSS file from the RSS URL rssXmlDoc.Load("http://feeds.feedblitz.com/spanish-word-of-the-day&x=1"); //Rss String rawUnparsedXML = rssXmlDoc.OuterXml; rawUnparsedXML = rawUnparsedXML.Replace("<![CDATA[", ""); rawUnparsedXML = rawUnparsedXML.Replace("]]>", ""); rawUnparsedXML = rawUnparsedXML.Replace("</content:encoded>", "</Img></content:encoded>"); //Creo que esto es lo mas hardcoded que he visto jamas rssXmlDoc.LoadXml(rawUnparsedXML); Strings.Add(rssXmlDoc.SelectSingleNode("rss/channel/link").InnerText); XmlNodeList NodeListTitle = rssXmlDoc.SelectNodes("//title"); //Por que el RSS tiene dos titulos y necesito el segundo foreach (XmlNode rssNode in NodeListTitle) { Strings.Add(rssNode.InnerText); } XmlNodeList rsstable = rssXmlDoc.SelectNodes("rss/channel/item/description/table/tr"); foreach (XmlNode rssNode in rsstable) { XmlNode rssSubNode = rssNode.SelectSingleNode("th"); if (rssSubNode != null) { Strings.Add(rssSubNode.InnerText); } rssSubNode = rssNode.SelectSingleNode("td"); if (rssSubNode != null) { Strings.Add(rssSubNode.InnerText); } } Strings.AddRange(Strings[2].Split(':')); //Separo uno de los strings dentro del string en otros dos strings ("test:test2") => ("test","test2") for (int i = 0; i < Strings.Count; i++) { Strings[i] = Strings[i].Trim(); } //PARSE FROM STRING[] TO WOTD //Vamos a hacerlo bonito String es_word = FirstCharToUpper(Strings[9]); String en_word = FirstCharToUpper(Strings[10]); String es_sentence = Strings[6]; String en_sentence = Strings[8]; String link = Strings[0]; WordOfTheDay WOTD = new WordOfTheDay(es_word, en_word, es_sentence, en_sentence, link); return(WOTD); }