Skip to main content

An add-on for Plone

Project description

https://travis-ci.com/collective/collective.volto.cookieconsent.svg?branch=master

This package add support to retrieve RSS feeds from external sources.

Usage

RSS proxy

There is a service “@get_rss_feed” that is used as proxy to call an RSS feed from backend and not from frontend to avoid CORS problems.

The service will reply with an “application/rss+xml” response with the desired feed.

Each feed url has a 10 minutes cache for his result to avoid too much requests.

You can call the endpoint passing a feed parameter like this example:

> curl -i http://localhost:8080/Plone/@get_rss_feed?feed=https://www.plone.org/RSS -H 'Accept: application/rss+xml'

RSS block

There is a service “@rss_mixer_data” that accept a list of sources and limit, and return a list of sorted feeds by date.

This service only accept POST calls and accept following parameters:

  • limit: the number of items to show (default 20)

  • feeds: a list of objects like this: {“url”: “url-of-the-feed”, “source”: “A custom label”}

For example:

> curl -i -X POST http://localhost:8080/Plone/@rss_mixer_data -H 'Accept: application/json' -H 'Content-Type: application/json' --data-raw '{"limit":5, "feeds": [{"url": "url-of-the-feed", "source": "A custom label"}]}'

Will reply with something like this:

[
    {
        "source": "Foo site",
        "contentSnippet": "some description 2",
        "title": "Foo News 2",
        "date": "Thu, 1 Apr 2020 10:44:01 +0200",
        "url": "http://test.com/foo-news-2"
    },
    {
        "source": "",
        "contentSnippet": "some description 2",
        "title": "Bar News 2",
        "date": "Thu, 1 Apr 2020 10:44:01 +0200",
        "url": "http://test.com/bar-news-2"
    },
    {
        "source": "Foo site",
        "contentSnippet": "some description",
        "title": "Foo News 1",
        "date": "Thu, 2 Apr 2020 10:44:01 +0200",
        "url": "http://test.com/foo-news-1"
    },
    {
        "source": "",
        "contentSnippet": "some description",
        "title": "Bar News 1",
        "date": "Thu, 2 Apr 2020 10:44:01 +0200",
        "url": "http://test.com/bar-news-1"
    }
]

This endpoint works with volto-rss-block plugin.

Installation

Install redturtle.rssservice by adding it to your buildout:

[buildout]

...

eggs =
    redturtle.rssservice

and then running bin/buildout

Contribute

Support

If you are having issues, please let us know. We have a mailing list located at: sviluppo@redturtle.it

License

The project is licensed under the GPLv2.

Contributors

Changelog

1.0.1 (2021-12-02)

  • Fix python version in setup.py [cekk]

1.0.0 (2021-10-13)

  • Add @rss_mixer_data endpoint. [cekk]

0.1.0 (2020-04-08)

  • Initial release. [cekk]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

redturtle.rssservice-1.0.1.tar.gz (21.8 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page