public async Task <IActionResult> BuildAudioFile(string subwiki, string title) { WikiTextParser wtp = new WikiTextParser(); WikipediaParseRoot war = WikipediaDAL.ParseWikitext(subwiki, title); List <string> paragraphs = await wtp.GetParagraphs($"https://en.{subwiki}.org/?curid={war.parse.pageid}"); string fileURL = await TextToSpeech.SynthesizeAudioAsync(String.Join(",", paragraphs), title); ViewBag.Title = war.parse.title; ViewBag.PageId = war.parse.pageid; ViewBag.FileURL = fileURL; Audiofiles af = new Audiofiles(); af.SectionNumber = 1; af.PageId = war.parse.pageid; af.StorageAddress = fileURL; if (ModelState.IsValid) { _context.Audiofiles.Add(af); _context.SaveChanges(); } return(RedirectToAction("Wikiparse", "Home", new { subwiki, title })); }
public async Task <IActionResult> ViewLinks(string subwiki, string title) { WikiTextParser wtp = new WikiTextParser(); WikipediaParseRoot war = WikipediaDAL.ParseWikitext(subwiki, title); List <string> links = await wtp.GetArticleLinks($"https://en.wikipedia.org/?curid={war.parse.pageid}", title); ViewBag.Title = war.parse.title; ViewBag.PageId = war.parse.pageid; return(View(links)); }
public async Task <IActionResult> WikiParse(string subwiki, string title) { WikiTextParser wtp = new WikiTextParser(); WikipediaParseRoot war = WikipediaDAL.ParseWikitext(subwiki, title); List <string> paragraphs = await wtp.GetParagraphs($"https://en.{subwiki}.org/?curid={war.parse.pageid}"); List <string> links = await wtp.GetArticleLinks($"https://en.wikipedia.org/?curid={war.parse.pageid}", title); List <Audiofiles> matches = _context.Audiofiles.Where(x => x.PageId == war.parse.pageid).ToList(); if (matches.Count == 0) { ViewBag.fileURL = null; } else { ViewBag.fileURL = matches[0].StorageAddress; } ViewBag.Title = war.parse.title; ViewBag.PageId = war.parse.pageid; ViewBag.Links = links; if (subwiki.Equals("wikibooks")) { return(View("WikiParseBook", paragraphs)); } else if (subwiki.Equals("wikinews")) { return(View("WikiParseNews", paragraphs)); } else { return(View(paragraphs)); } }