private async static Task Handler(string mode, Uri uri) { IFileLayout docLayout; if (!_modeMap.TryGetValue(mode, out docLayout)) { throw new ArgumentException($"The value of {nameof(mode)} should be single or package."); } var mapper = new FeedRetriever(uri); await mapper.ReadAsync(); Trace.TraceInformation($"Retrieved {mapper.Count} links."); var retriever = new HttpRetriever(); var article = new ArticleExtractor(); var images = new ImageExtractor(); var context = BrowsingContext.New(Configuration.Default); var inserter = new ArticleInserter(); var imgWriter = new FileWriter(_modeMap["nested"]); var docWriter = new HtmlWriter(docLayout); string fileName; foreach (var i in mapper) { Trace.TraceInformation($"{i.Title}\t{i.Link}"); var itemUri = new Uri(i.Link); var input = await retriever.StartAsync(itemUri); var content = await article.ExtractAsync(input, "type-post"); var imgs = await images.ExtractAllAsync(input); foreach (var j in imgs) { var source = ((IHtmlImageElement)j)?.Source ?? "http://127.0.0.1"; var imgUri = new Uri(source); var file = await retriever.StartAsync(imgUri); await imgWriter.WriteAsync(file, imgUri.LocalPath); Trace.TraceInformation($"Path: {imgUri.AbsoluteUri} Length: {file.Length}"); } var document = await context.CreateDocumentAsync("templates\\post.html"); var placeholder = document.QuerySelector("div#article-placeholder"); inserter.Replace(placeholder, content); fileName = itemUri.Segments[1]; fileName = fileName.Replace("/", ""); await docWriter.WriteAsync(document, fileName); } }
public void FilmTest() { var retriever = new HttpRetriever(); var movie = retriever.RetrieveMovie(123); }
public void GenresTest() { var retriever = new HttpRetriever(); var jobs = retriever.RetrieveGenres().ToList(); }
public void MovieGenresFromMovieTest() { var retriever = new HttpRetriever(); var jobs = retriever.RetrieveGenresFromMovie(123).ToList(); }
public void JobsTest() { var retriever = new HttpRetriever(); var jobs = retriever.RetrieveDepartments().ToList(); }
public void CrewTest() { var retriever = new HttpRetriever(); var crews = retriever.RetrieveCrewFromFilm(123).ToList(); }
public void CastTest() { var retriever = new HttpRetriever(); var casts = retriever.RetrieveCastFromFilm(123).ToList(); }
public void PersonTest() { var retriever = new HttpRetriever(); var people = retriever.RetrievePerson(123); }
public void CountriesTest() { var retriever = new HttpRetriever(); var countries = retriever.RetrieveMovieProductionCountries(123).ToList(); }