示例#1
0
        private ArticleModel FeedToArticleModel(item nfa, FeedModel fcm)
        {
            if (nfa == null || nfa.link.Contains("tilllate")) return null;

            return ExecuteSafe(() =>
            {
                /*
                 * <text>
                        <![CDATA[
                            <!--{{nxpliveticker('57833145ab5c371ee8000001')}}--> 
                        ]]>
                    </text>
                */

                var a = ConstructArticleModel(fcm);
                nfa.text = "<p>" + nfa.text.Replace("\n\n", "</p><p>") + "</p>";

                var paragraphs = HtmlConverter.CreateOnce(fcm.Source.PublicBaseUrl).HtmlToParagraph(nfa.text);

                a.Content.Clear();
                if (paragraphs != null && paragraphs.Count > 0)
                    a.Content.Add(
                        new TextContentModel()
                        {
                            Content = paragraphs
                        });
                else if (nfa.text.Contains("{{nxpliveticker("))
                    a.Content.Add(
                        TextHelper.TextToTextModel(
                            "Dieser Artikel enthält einen Liveticker. Besuche die Webseite um den Inhalt korrekt darzustellen"));
                else
                    a.Content.Add(
                        TextHelper.TextToTextModel(
                            "Dieser Artikel enthält nicht unterstützter Inhalt. Besuche die Webseite um den Inhalt korrekt darzustellen"));

                a.LeadImage = new ImageContentModel()
                {
                    Url = nfa.pic_bigstory,
                    Text = TextHelper.TextToTextModel(nfa.topelement_description)
                };
                a.PublicUri = nfa.link;
                a.PublishDateTime = DateTime.Parse(nfa.pubDate);
                a.SubTitle = nfa.oberzeile;
                a.Teaser = nfa.lead;
                a.Title = nfa.title;
                a.Author = string.IsNullOrEmpty(nfa.author) ? "20 Minuten" : nfa.author;

                if (string.IsNullOrWhiteSpace(a.SubTitle) && a.Title == "Die Bilder des Tages")
                {
                    a.SubTitle = "Bildergallerie";
                    //Die Bilder des Tages
                    a.Content.Insert(0,
                        TextHelper.TextToTextModel(
                            "Dieser Artikel enthält eine Bildergallerie. Besuche die Webseite, um den Inhalt korrekt darzustellen"));
                }
                a.Themes.Clear();
                if (nfa.category != null)
                    a.AfterSaveFunc = async () =>
                    {
                        await AddThemesAsync(a, new[] { nfa.category });
                    };
                else
                    a.AfterSaveFunc = async () =>
                    {
                        await AddThemesAsync(a);
                    };

                a.LoadingState = LoadingState.Loaded;

                return a;
            });
        }
示例#2
0
 private bool CanConvert(item nfa)
 {
     return nfa.link != null;
 }