Newer
Older
cartastraccia / README.md
@GallaFrancesco GallaFrancesco on 27 Sep 2019 2 KB readme update

Carta Straccia is a RSS feed aggregator

Written in D using sumtype, pegged, htmld, requests and Vibe.d

RSS parsing uses libmrss.

Features

  • Linux only (yep, it's a feature)
  • Server/client architecture with simple CLI parameters
  • Multi-tasking using Vibe.d's Tasks and the message passing model to concurrently process multiple feeds
  • Single-file feeds configuration, with separate, per-feed refresh interval
  • Multiple endpoints support: Display the aggregated news in HTML, from the command line (WIP) or edit source/cartastraccia/endpoints.d to add your desired visualization
  • HTML endpoint visualization can be customized editing public/css/* and the frontpage's Diet Template in views/index.dt
  • RSS parsing and partial validation (WIP) by keeping the tags needed to a minimum: Carta Straccia follows a text-preferred phylosophy and tries to push any other information out of the way by omitting it when possible.

Installation

This program is compatible with a Unix-like OS, notably GNU/Linux. Other platforms (OSX, Windows) are not supported and they probably won't ever be.

Dependencies

Carta Straccia uses libmrss to parse RSS feeds. It can be installed in the following ways:

  • Using your package manager: libmrss can be installed from the main repositories of some distros, using the appropriate package manager. Examples:
      - Gentoo/portage: `emerge libmrss`
      - Debian/apt and derivatives: `apt install libmrss`
      - etc.

Building

Requires a working D compiler and Dub:

  1. clone this repo:
git clone https://github.com/gallafrancesco/cartastraccia.git
  1. build:
dub build

You'll find the cartastraccia executable in the root project directory.

Usage

CLI options and sample first usage:

cartastraccia --help

For feeds configuration, see the sample feeds.conf file included.

License

This project is licensed under the terms of the GPLv3 License.

Contributing

Feel free to open issues and PRs. Current TODOs are:

  • Test extensively parsing of RSS feeds.
  • Work on a comfortable and polished CLI endpoint
  • Add enpoints in general (new visualization, curses, improve HTML...)
  • Documentation and usage examples