Skip to main content
Latest Version Supported - Python Versions Number of PyPI downloads License Tests Coverage

Redturtle RSS Service

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

Usage

RSS block

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

This service only accept GET calls and accept following parameters:

  • block: the id of the rssBlock with the feeds

The endpoint should be called on the context that has the rssBlock that you want to show.

For example:

> curl -i -X GET http://localhost:8080/Plone/example-page/@rss_mixer_data?block=123456789 -H 'Accept: application/json' -H 'Content-Type: application/json'

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.

Retrieve timeout

There is a 5s default timeout for retrieve RSS feeds.

You can override it with an environment variable: RSS_SERVICE_TIMEOUT

Set User-Agent

You can override the default User-Agent for the requests to get feeds by setting an environment variable: RSS_USER_AGENT

Installation

Install redturtle.rssservice by adding it to your buildout:

[buildout]

...

eggs =
    redturtle.rssservice

and then running bin/buildout

Resilience

To make the product more resilient against external feed disruptions, it is possible to use an external proxy/cache service. The service is utilized in the following format:

` http://proxyservice/http://feedurl `

The product includes a built-in proxy/cache implementation that can be used. After installing the product, you can use it by running the following process:

` bin/rssmixer-proxy --port 8000 --ttl 1200 `

And eventually set the environment variable RSSMIXER_PROXY to http://127.0.0.1:8000 according to the port used for the proxy.

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

2.2.2 (2026-10-05)

  • Fix proxycache url replace [mamico]

  • Refactor proxycache server: thread-safety, atomic writes, background thread deduplication, ThreadingHTTPServer, and anti-SSRF URL validation. [mamico]

2.2.1 (2023-07-12)

  • Handle case when feed url is an internal url with resolveuid. [cekk]

  • Do not print exception on log, but use warning because it’s handled. [cekk]

2.2.0 (2023-03-21)

  • Allow configuring the User-Agent for the requests to get feeds, via the REQUESTS_USER_AGENT environment variable. [davisagli]

2.1.0 (2023-03-10)

  • Customizable timeout. [cekk]

  • Return 404 if block not found instead BadRequest. [cekk]

  • Handle site root blocks in plone 6. [cekk]

2.0.0 (2022-04-07)

  • Remove unused and unsafe endpoint. [cekk]

  • Now @rss_mixer_data accept GET calls (see README for more infos). [cekk]

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]

Metadata

Release files for redturtle.rssservice 2.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for redturtle.rssservice 2.2.2
File Size Uploaded
redturtle_rssservice-2.2.2.tar.gz 30.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for redturtle.rssservice 2.2.2
File Interpreter ABI Platform
redturtle_rssservice-2.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 56.1 kB

Release files / redturtle_rssservice-2.2.2.tar.gz

Download URL redturtle_rssservice-2.2.2.tar.gz
Size 30.1 kB
Tags Source
SHA-256 checksum
How to use checksums
608ed3d12640bcf2117c0a514655de9b5a79f9daa29409f483078f34e022d20c
BLAKE2b-256 checksum
How to use checksums
c05bcac40a23ddc494db1bc0a82850861924c6b37729de6b72c3810b62702436
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.14

Release files / redturtle_rssservice-2.2.2-py3-none-any.whl

Download URL redturtle_rssservice-2.2.2-py3-none-any.whl
Size 26.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c4d3da5f34d9dae5c4f46fb85523ad0e220c744d36217e36f13b8500f145c1d7
BLAKE2b-256 checksum
How to use checksums
d1f7c79530cb3e590de6ec37f08e97f1149cbe83e9bfccbd8a39493b7d244353
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.14

Release history Release notifications | RSS feed

This release

2.2.2 This release

2 release files

2.2.1

1 release file

2.2.0

1 release file

2.1.0

1 release file

2.0.0

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page