コード例 #1
0
ファイル: ReplaceLink.cs プロジェクト: swegner/tbot-rss
 public void TransformFeed(SyndicationFeed feed, SyndicationVisitorContext context)
 {
     if (feed.Links.Any())
     {
         feed.Links[0] = new SyndicationLink(context.RssUrl, "alternate", title: null, mediaType: null, length: 0);
     }
 }
コード例 #2
0
ファイル: FixupGuid.cs プロジェクト: swegner/tbot-rss
        public void TransformItem(SyndicationItem item, SyndicationVisitorContext context)
        {
            string guid = item.Links
                .Where(l => l.RelationshipType == "alternate")
                .Select(l => l.Uri.AbsoluteUri)
                .FirstOrDefault();

            if (guid != null)
            {
                item.Id = guid;
            }
        }
コード例 #3
0
ファイル: ClearSubtitle.cs プロジェクト: swegner/tbot-rss
        public void TransformItem(SyndicationItem item, SyndicationVisitorContext context)
        {
            SyndicationElementExtensionCollection extensions = item.ElementExtensions;
            SyndicationElementExtension subtitle = extensions
                .Where(e => e.OuterName == "subtitle")
                .FirstOrDefault();

            if (subtitle != null)
            {
                extensions.Remove(subtitle);
            }
        }
コード例 #4
0
ファイル: AddAuthor.cs プロジェクト: swegner/tbot-rss
        public void TransformItem(SyndicationItem item, SyndicationVisitorContext context)
        {
            SyndicationElementExtensionCollection extensions = item.ElementExtensions;
            SyndicationElementExtension original = extensions
                .Where(e => e.OuterName == "author")
                .FirstOrDefault();
            if (original != null)
            {
                extensions.Remove(original);
            }

            this.AddAuthorElement(extensions, context);
        }
コード例 #5
0
ファイル: RssController.cs プロジェクト: swegner/tbot-rss
        private void TransformFeed(SyndicationFeed feed)
        {
            SyndicationVisitorContext context = new SyndicationVisitorContext
            {
            RssUrl = new Uri(this.Url.Action("Feed", "Rss", null, this.Request.Url.Scheme)),
            Config = (TbotSection)WebConfigurationManager.GetSection("tbotSection"),
            };

            foreach (ISyndicationFeedVisitor feedVisitor in RssController.FeedVisitors)
            {
                feedVisitor.TransformFeed(feed, context);
            }

            foreach (var item in feed.Items)
            {
                foreach (ISyndicationItemVisitor itemVisitor in RssController.ItemVisitors)
                {
                    itemVisitor.TransformItem(item, context);
                }
            }
        }
コード例 #6
0
ファイル: FixupOwner.cs プロジェクト: swegner/tbot-rss
        public void TransformFeed(SyndicationFeed feed, SyndicationVisitorContext context)
        {
            SyndicationElementExtensionCollection extensions = feed.ElementExtensions;
            SyndicationElementExtension original = extensions
                .Where(e => e.OuterName == "owner")
                .FirstOrDefault();

            if (original != null)
            {
                XElement emailElement = original.GetObject<XElement>().Element(Constants.ItunesNS + "email");
                SyndicationElementExtension newOwnerElement = new SyndicationElementExtension(
                    new XElement(Constants.ItunesNS + "owner", new object[]
                    {
                        emailElement,
                        new XElement(Constants.ItunesNS + "name", context.Config.Authors.GetAuthorsString())
                    }));

                extensions.Remove(original);
                extensions.Add(newOwnerElement);
            }
        }
コード例 #7
0
ファイル: UpdateLanguage.cs プロジェクト: swegner/tbot-rss
 public void TransformFeed(SyndicationFeed feed, SyndicationVisitorContext context)
 {
     feed.Language = "en-us";
 }
コード例 #8
0
ファイル: RemoveXmlBase.cs プロジェクト: swegner/tbot-rss
 public void TransformFeed(SyndicationFeed feed, SyndicationVisitorContext context)
 {
     feed.BaseUri = null;
 }
コード例 #9
0
ファイル: RemoveXmlBase.cs プロジェクト: swegner/tbot-rss
 public void TransformItem(SyndicationItem item, SyndicationVisitorContext context)
 {
     item.BaseUri = null;
 }
コード例 #10
0
ファイル: AddCategory.cs プロジェクト: swegner/tbot-rss
 public void TransformFeed(SyndicationFeed feed, SyndicationVisitorContext context)
 {
     feed.ElementExtensions.Add(new XElement(Constants.ItunesNS + "category", new XAttribute("text", "Technology")));
 }
コード例 #11
0
ファイル: AddSubtitle.cs プロジェクト: swegner/tbot-rss
 public void TransformFeed(SyndicationFeed feed, SyndicationVisitorContext context)
 {
     feed.ElementExtensions.Add("subtitle", Constants.ItunesNS.NamespaceName, "Technology Business Analysis - Going beyond the headlines");
 }
コード例 #12
0
ファイル: AddAuthor.cs プロジェクト: swegner/tbot-rss
 public void TransformFeed(SyndicationFeed feed, SyndicationVisitorContext context)
 {
     this.AddAuthorElement(feed.ElementExtensions, context);
 }
コード例 #13
0
ファイル: AddCopyright.cs プロジェクト: swegner/tbot-rss
 public void TransformFeed(SyndicationFeed feed, SyndicationVisitorContext context)
 {
     feed.Copyright = new TextSyndicationContent(context.Config.Authors.GetAuthorsString());
 }
コード例 #14
0
ファイル: RemoveHtml.cs プロジェクト: swegner/tbot-rss
 public void TransformItem(SyndicationItem item, SyndicationVisitorContext context)
 {
     string strippedSummary = Regex.Replace(item.Summary.Text, @"<[^>]+>", string.Empty);
     item.Summary = new TextSyndicationContent(strippedSummary);
 }
コード例 #15
0
 public void TransformItem(SyndicationItem item, SyndicationVisitorContext context)
 {
     item.ElementExtensions.Add("isClosedCaptioned", Constants.ItunesNS.NamespaceName, "no");
 }
コード例 #16
0
ファイル: AddAuthor.cs プロジェクト: swegner/tbot-rss
 private void AddAuthorElement(SyndicationElementExtensionCollection elementExtensions, SyndicationVisitorContext context)
 {
     elementExtensions.Add("author", Constants.ItunesNS.NamespaceName, context.Config.Authors.GetAuthorsString());
 }
コード例 #17
0
ファイル: AddSummary.cs プロジェクト: swegner/tbot-rss
 public void TransformFeed(SyndicationFeed feed, SyndicationVisitorContext context)
 {
     feed.ElementExtensions.Add("summary", Constants.ItunesNS.NamespaceName, SummaryText);
 }
コード例 #18
0
ファイル: AddImage.cs プロジェクト: swegner/tbot-rss
 public void TransformItem(SyndicationItem item, SyndicationVisitorContext context)
 {
     this.AddItunesImage(item.ElementExtensions);
 }
コード例 #19
0
ファイル: AddImage.cs プロジェクト: swegner/tbot-rss
 public void TransformFeed(SyndicationFeed feed, SyndicationVisitorContext context)
 {
     feed.ImageUrl = ImageUrl;
     this.AddItunesImage(feed.ElementExtensions);
 }