mirror of
https://codeberg.org/Ewen/rudibridge.git
synced 2024-12-06 05:22:31 +00:00
.vscode | ||
api | ||
frontend | ||
.env.dev | ||
.env.example | ||
.gitignore | ||
docker-compose.dev.yml | ||
docker-compose.yml | ||
LICENSE | ||
README.md |
Rudibridge
A rudimentary RSS bridge for changing web pages that don't have an RSS feed.
Architecture and usage
This (personal side-) project can be used to build an RSS feed from webpages that don't have any.
This project consists of two parts :
- a back-end, written in Flask, that responds an RSS feed to GET requests with specific parameters
- a front-end, written in Vue.js, a simple wrapper/helper to write the GET requests
Parameters
url
(required): the URL of the pagearticle
(required): the HTML tag encapsulating a feed itemtitle
(required): the HTML tag of the article titlearticleClass
: a class name helping to filter the article elementtitleClass
: a class name helping to filter the title elementsection
: the HTML tag encapsulating the group of items. If not given, the entire page will be usedcontent
: the HTML tag encapsulating the content, or description, of the item. The default isp
contentClass
: a class name helping to filter the content elementlink
: the HTML tag encapsulating the link to the item. The default isa
.linkClass
: a class name helping to filter the link elementdatetime
: the HTML tag encapsulating the date and time of the item. Any date and time format can be used, the parser will try to understand the format.datetimeClass
: a class name helping to filter the datetime elementauthor
: the HTML tag encapsulating the author of the itemauthorClass
: a class name helping to filter the author element
Installation
Using Docker, for development purposes
You will need to have Docker and Docker Compose installed.
Clone the repository, go to its root and run docker-compose -f docker-compose.dev.yml up -d
.
To use the backend directly, go to the page http://localhost:8080/api/feed/ and start adding parameters!
Using Docker, for production
You will also need Docker and Docker Compose.
Copy .env.example
to .env
and edit the latter. Tweak your reverse proxy (in my case, Traefik). Then, run docker compose up -d
.
Examples
(as of May 2024, the web pages can change over time and break the generated feeds)
- http://localhost:8080/api/feed/?url=https://www.ouest-france.fr/bretagne/rennes-35000/&title=h2&titleClass=titre&article=article&datetime=time&link=a&linkClass=titre-lien§ion=section§ionClass=liste-articles&content=p&contentClass=chapeau&datetime=time&datetimeClass=meta-time
- http://localhost:8080/api/feed/?url=ewen.korr.bzh/fr/cv/&article=div&articleClass=card&title=h4&content=div&contentClass=details&link=None