From 18e102f5af5858c27087b4dce270b8e612560591 Mon Sep 17 00:00:00 2001 From: Ewen Date: Thu, 9 May 2024 07:43:15 +0200 Subject: [PATCH] updated readme --- README.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 831cac5..cf4bd23 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,47 @@ -# rudibridge +# Rudibridge -A rudimentary RSS bridge \ No newline at end of file +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 up -d`. +To use the backend directly, go to the page [http://localhost:8080/feed/](http://localhost:8080/feed/) and start adding parameters! + +### For production + +*To do* + +## Examples + +(as of May 2024, the web pages can change over time and break the generated feeds) + +- [http://localhost:8080/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/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)