Skip to content

snickler/RSSCore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Snickler.RSSCore: ASPNETCore Middleware for generating RSS Feeds

NuGet

This library was created in order to provide a way to easily generate RSS feeds on the fly via an ASP.NET Core Middleware.

Targets

Currently supports:

  • ASPNET Core 1.1 (netstandard1.3)
  • ASPNET Core 2.x (netstandard2.0)

Getting Started

Add the NuGet package to your project(s). Utilize the namespaces: Snickler.RSSCore.Models, Snickler.RSSCore.Providers, and Snickler.RSSCore.Extensions.

Create an RSS Provider

Create a provider class that implements IRSSProvider and returns a list of RSSItem objects via the RetrieveSyndicationItems method.

public class SomeRSSProvider: IRSSProvider
{
    public Task<IList<RSSItem>> RetrieveSyndicationItems()
    {
        IList<RSSItem> syndicationList = new List<RSSItem>();
        var synd1 = new RSSItem("Sample Title 1", "Sample Content 1")
        {
            PermaLink = new Uri("http://www.sampleaddress.com/sample-content-1"),
            LinkUri = new Uri("http://www.sampleaddress.com/sample-content-1"),
            LastUpdated = DateTime.Now,
            PublishDate = DateTime.Now,
            Categories = new List<string> { ".NET" },
            Authors = new List<string> { "someuser@sampleaddress.com" }
        };

        syndicationList.Add(synd1);

        return Task.FromResult(syndicationList);
    }
}

RSS Feed Configuration

Add your provider to the service registration in ConfigureServices with the AddRSSFeed extension

	public void ConfigureServices(IServiceCollection services)
	{
		services.AddRSSFeed<SomeRSSProvider>();
		services.AddMvc();
	}

Set the options for your RSS Feed in Configure with UseRSSFeed

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        app.UseRssFeed("/feed", new RSSFeedOptions
        {
            Title = "Snickler's Super Awesome RSS Feed",
            Copyright = "2018",
            Description = "The Best and Most Awesome RSS Feed Content",
            ManagingEditor = "managingeditor@someaddress.com",
            Webmaster = "webmaster@someaddress.com",
            Url = new Uri("http://someaddress.com")
        });
    }

Optional RSS Caching Configuration

By default, MemoryCache is used to cache the feed for 1 day. To be able to update the cache duration or cache key, add a new instance of the MemoryCacheProvider to the Caching property within the RSSFeedOptions class.

    app.UseRssFeed("/feed", new RSSFeedOptions
    {
        Title = "Snickler's Super Awesome RSS Feed",
        Copyright = "2018",
        Description = "The Best and Most Awesome RSS Feed Content",
        ManagingEditor = "managingeditor@someaddress.com",
        Webmaster = "webmaster@someaddress.com",
        Url = new Uri("http://someaddress.com"),
        Caching = new MemoryCacheProvider 
        {
            CacheDuration = TimeSpan.FromDays(5),
            CacheKey = "SomeSuperAwesomeCacheKey"
        }
    });

With this example setup, you'll be able to access the feed at http://whateverurl.com/feed

Example Project

An example project is located within the .sln file in the source.

About

ASPNETCore Middleware for generating RSS Feeds

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages