mirror of
https://codeberg.org/Ewen/rudibridge.git
synced 2024-10-22 09:11:21 +00:00
51 lines
3 KiB
Markdown
51 lines
3 KiB
Markdown
# 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 page
|
|
- `article` (required): the HTML tag encapsulating a feed item
|
|
- `title` (required): the HTML tag of the article title
|
|
- `articleClass`: a class name helping to filter the article element
|
|
- `titleClass`: a class name helping to filter the title element
|
|
- `section`: the HTML tag encapsulating the group of items. If not given, the entire page will be used
|
|
- `content`: the HTML tag encapsulating the content, or description, of the item. The default is `p`
|
|
- `contentClass`: a class name helping to filter the content element
|
|
- `link`: the HTML tag encapsulating the link to the item. The default is `a`.
|
|
- `linkClass`: a class name helping to filter the link element
|
|
- `datetime`: 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 element
|
|
- `author`: the HTML tag encapsulating the author of the item
|
|
- `authorClass`: 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/](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=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](http://localhost:8080/api/feed/?url=ewen.korr.bzh/fr/cv/&article=div&articleClass=card&title=h4&content=div&contentClass=details&link=None) |