From 0506b4dcb2cd563e3b2216f3f47b0be1ebdfbc8d Mon Sep 17 00:00:00 2001 From: yggverse Date: Sat, 14 Jun 2025 04:20:32 +0300 Subject: [PATCH] initial commit --- .gitignore | 2 + Cargo.toml | 17 ++++++ README.md | 86 ++++++++++++++++++++++++++++- src/argument.rs | 37 +++++++++++++ src/debug.rs | 48 ++++++++++++++++ src/format.rs | 57 +++++++++++++++++++ src/main.rs | 101 ++++++++++++++++++++++++++++++++++ src/target.rs | 25 +++++++++ src/time.rs | 29 ++++++++++ template/html/index.html | 49 +++++++++++++++++ template/html/index/item.html | 5 ++ 11 files changed, 455 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 Cargo.toml create mode 100644 src/argument.rs create mode 100644 src/debug.rs create mode 100644 src/format.rs create mode 100644 src/main.rs create mode 100644 src/target.rs create mode 100644 src/time.rs create mode 100644 template/html/index.html create mode 100644 template/html/index/item.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..869df07 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/target +Cargo.lock \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..970d6ad --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "rssto" +version = "0.1.0" +edition = "2024" +license = "MIT" +readme = "README.md" +description = "Aggregate RSS feeds into different formats" +keywords = ["rss", "aggregator", "convertor", "conversion", "static"] +categories = ["command-line-utilities", "parsing", "text-processing", "value-formatting"] +repository = "https://github.com/YGGverse/rssto" + +[dependencies] +anyhow = "1.0" +chrono = "0.4" +clap = { version = "4.5", features = ["derive"] } +reqwest = { version = "0.12", features = ["blocking"] } +rss = "2.0" diff --git a/README.md b/README.md index c4dbc40..2c739db 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,86 @@ # rssto -Aggregate RSS feeds into different formats + +![Build](https://github.com/YGGverse/rssto/actions/workflows/build.yml/badge.svg) +[![Dependencies](https://deps.rs/repo/github/YGGverse/rssto/status.svg)](https://deps.rs/repo/github/YGGverse/rssto) +[![crates.io](https://img.shields.io/crates/v/rssto.svg)](https://crates.io/crates/rssto) + +## Aggregate RSS feeds into different formats + +A simple multi-source feed aggregator that outputs static files in multiple formats. + +## Roadmap + +* [x] HTML +* [ ] Markdown +* [ ] Gemtext + +## Install + +``` bash +cargo install rssto +``` + +## Launch + +``` bash +rssto --source https://path/to/source1.rss\ + --target /path/to/source1dir\ + --source https://path/to/source2.rss\ + --target /path/to/source2dir\ + --format html +``` + +### Options + +``` bash +-d, --debug Show output (`d` - debug, `e` - error, `i` - info) [default: ei] +-f, --format Export formats (`html`,`md`,etc.) [default: html] +-l, --limit Limit channel items (unlimited by default) +-s, --source RSS feed URL(s) + --target Destination directory + --template