Skip to main content

An add-on for Plone

Project description

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.3 (2022-03-22)

  • Allow to use cateogry in rss feed. [lucabel]

1.0.2 (2022-03-04)

  • Allow dates with wrong date format (eg. a date range) [lucabel]

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.3.tar.gz (22.3 kB view details)

Uploaded Source

File details

Details for the file redturtle.rssservice-1.0.3.tar.gz.

File metadata

  • Download URL: redturtle.rssservice-1.0.3.tar.gz
  • Upload date:
  • Size: 22.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.7.0 requests/2.25.1 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.7.3

File hashes

Hashes for redturtle.rssservice-1.0.3.tar.gz
Algorithm Hash digest
SHA256 a984f36c933c9fd06f50d7e0fa802f8d3e82497927dfb94fa5250ab20a073954
MD5 f67a601ea516a65323b44818b2d07db5
BLAKE2b-256 78fc1bdd48579d7606d5a42600b1ab2690f18fd2004c1fb6e08c865e6326006d

See more details on using hashes here.

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