Esempio n. 1
0
        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 }));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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));
            }
        }