Esempio n. 1
0
        public async Task <ComicStripResponse> GetLastComicStripUrlAsync(ComicStripType comicStripType)
        {
            var dateTime           = DateTime.UtcNow;
            var comicStripResponse = await GetComicStripUrlAsync(dateTime, comicStripType);

            if (comicStripResponse.HasErrors)
            {
                comicStripResponse = await GetComicStripUrlAsync(dateTime.AddDays(-1), comicStripType);
            }

            return(comicStripResponse);
        }
Esempio n. 2
0
        private ComicStripResponse GetImageUri(HtmlDocument htmlDocument, ComicStripType comicStripType)
        {
            HtmlNodeCollection imagesNodeCollection = htmlDocument.DocumentNode.SelectNodes(comicStripType.HtmlImageClass);

            if (imagesNodeCollection is null ||
                imagesNodeCollection.Count != 1)
            {
                return(new ComicStripResponse(String.Empty, true, "Resource not found"));
            }

            var imageLink = String.Empty;

            if (comicStripType.IsInChildNodes)
            {
                imageLink = imagesNodeCollection[0].ChildNodes[0].GetAttributeValue("src", "");
            }
            else
            {
                imageLink = imagesNodeCollection[0].GetAttributeValue("src", "");
            }

            return(new ComicStripResponse($"{imageLink}.png"));
        }
Esempio n. 3
0
        public async Task <ComicStripResponse> GetComicStripUrlAsync(DateTime dateTime, ComicStripType comicStripType)
        {
            var dilbertStripResponse = await GetHtmlSourceCodeAsync(new Uri(String.Format(comicStripType.Url, dateTime.ToString(comicStripType.Parameter))));

            if (!dilbertStripResponse.HasErrors)
            {
                var htmlDocument = new HtmlDocument();
                htmlDocument.LoadHtml(dilbertStripResponse.Source);

                return(GetImageUri(htmlDocument, comicStripType));
            }

            return(dilbertStripResponse);
        }