Can "proxy"/mirror any RSS Feed to fetch full-text Content. Allows integration into any feed reader, without plugins or further configuration required.
- Download and modify the docker-compose.yml file to your liking.
- Run
docker-compose up -d
- Clone the repository:
git clone https://github.com/Kombustor/rss-fulltext-proxy.git - Change working path:
cd rss-fulltext-proxy - Install dependencies:
npm install - Compile:
npm run build - Run:
node dist/server.js
Note: You have to set the environment variables described in Configuration yourself, and you have to start a local redis server.
The application is easily configurable with environment variables.
| Name | Type | Default | Description |
|---|---|---|---|
| PORT | number | 3000 | The port the webserver listens on. |
| REDIS_URL | string | redis://127.0.0.1 | The redis connection URL for caching. |
| CACHE_EXPIRY_SECONDS | number | 900 | The number of seconds for cache entries to expire. |
We have to define two query parameters:
| Identifier | Description |
|---|---|
| feed | The original feed URL to proxy. |
| selectors | URL-encoded string[] of CSS-selectors. |
- Feed URL:
http://rss.sueddeutsche.de/rss/Topthemen - Query Selectors of relevant HTML elements:
["figure.asset-image", "section.body > p, section.body > h3"] - URL-encoded selectors using this website:
%5B%22figure.asset-image%22%2C%20%22section.body%20%3E%20p%2C%20section.body%20%3E%20h3%22%5D - The URL we are adding to our feed reader is:
http://host:post/?feed=http://rss.sueddeutsche.de/rss/Topthemen&selectors=%5B%22figure.asset-image%22%2C%20%22section.body%20%3E%20p%2C%20section.body%20%3E%20h3%22%5D - We are getting full-text RSS content for this feed. 🔥
A collection of selectors can be found on the wiki page. If you create or improve a selector, feel free to open a pull request to add it to the wiki page.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
- Make redis optional.
- Add common templates for easier usage.
- Unit tests.
- Linting.
- Add option to clear cache.
- Tutorial on how to choose selectors.
- Webinterface to visually select elements that should be included/removed.
- Support websites which don't provide a RSS feed.