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
Issue Tracker: https://github.com/RedTurtle/redturtle.rssservice/issues
Source Code: https://github.com/RedTurtle/redturtle.rssservice
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
RedTurtle, sviluppo@redturtle.it
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)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| redturtle_rssservice-2.2.2.tar.gz | 30.1 kB | Without provenance | Details for redturtle_rssservice-2.2.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| redturtle_rssservice-2.2.2-py3-none-any.whl | Python 3 | none | any | Details for redturtle_rssservice-2.2.2-py3-none-any.whl |
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
|
Security for redturtle.rssservice 2.2.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.