示例#1
0
        public static bool IsDownloadRequiredWrpr(DnLd dl)
        {
            var reason     = "";
            var isRequired = PodHelper.IsDownloadRequired(dl, ref reason);

            dl.RunTimeNote = $"<rsn={reason}> <{dl.CastFilenameExt}>";
            return(isRequired);
        }
示例#2
0
        public Episode ParseEpisode(EpisodeRaw eraw)
        {
            Episode episode = new Episode();

            episode.Title = eraw.Title;
            episode.GUID  = eraw.guid;

            if (!string.IsNullOrEmpty(eraw.LinkWebsiteURL))
            {
                episode.WebsiteURL = eraw.LinkWebsiteURL.ToLower();
            }

            DateTime pubdate;

            if (DateTime.TryParse(eraw.PubDate, out pubdate))
            {
                episode.PubDate = pubdate;
            }
            else
            {
                episode.PubDate = DateTime.Now;
            }

            if (!string.IsNullOrEmpty(eraw.Description))
            {
                episode.Description = eraw.Description;
                if (PodHelper.CheckTextForHtmlEncode(episode.Description))
                {
                    episode.Description = System.Net.WebUtility.HtmlDecode(episode.Description);
                }
                episode.DescriptionContainsMarkup = PodHelper.CheckTextForMarkup(episode.Description);
            }

            if (!string.IsNullOrEmpty(eraw.ContentEncoded))
            {
                episode.Content = eraw.ContentEncoded;
                if (PodHelper.CheckTextForHtmlEncode(episode.Content))
                {
                    episode.Content = System.Net.WebUtility.HtmlDecode(episode.Content);
                }
                episode.ContentContainsMarkup = PodHelper.CheckTextForMarkup(episode.Content);
            }

            if (!string.IsNullOrEmpty(eraw.ItunesSubtitle))
            {
                episode.Subtitle = eraw.ItunesSubtitle;
                if (PodHelper.CheckTextForHtmlEncode(episode.Subtitle))
                {
                    episode.Subtitle = System.Net.WebUtility.HtmlDecode(episode.Subtitle);
                }
            }

            if (!string.IsNullOrEmpty(eraw.ItunesSummary))
            {
                episode.Summary = eraw.ItunesSummary;
                if (PodHelper.CheckTextForHtmlEncode(episode.Summary))
                {
                    episode.Summary = System.Net.WebUtility.HtmlDecode(episode.Summary);
                }
            }

            episode.Keywords = eraw.ItunesKeywords;

            episode.Contributors = eraw.Contributors;
            if (eraw.MediaCredits != null && eraw.MediaCredits.Count > 0)
            {
                if (episode.Contributors == null)
                {
                    episode.Contributors = new List <Contributor>();
                }
                foreach (var mc in eraw.MediaCredits)
                {
                    episode.Contributors.Add(new Contributor()
                    {
                        Name = mc.Name
                    });
                }
            }
            if (episode.HasContributors)
            {
                foreach (var c in episode.Contributors)
                {
                    if (!string.IsNullOrEmpty(c.URI))
                    {
                        c.URI = c.URI.ToLower();
                    }
                }
            }

            episode.Chapters = eraw.PSCChapters;

            episode.PaymentLinks = eraw.LinkPayments;
            if (episode.HasPaymentLinks)
            {
                foreach (var p in episode.PaymentLinks)
                {
                    p.URL = p.URL.ToLower();
                }
            }

            if (!string.IsNullOrEmpty(eraw.MediaItemURL))
            {
                episode.MediaContent = ParseMediaItem(eraw);
            }

            return(episode);
        }