3
8
Fork
You've already forked frenring
1
generator tool and library for webrings with posts from frens
  • Rust 96.2%
  • Dockerfile 3.8%
lauren n. liberda b3aae11bf2
Some checks failed
ci/woodpecker/manual/build-container Pipeline was successful
ci/woodpecker/manual/build-binary Pipeline failed
ci/woodpecker/manual/ci Pipeline failed
release 0.2.0-rc2
2024年05月03日 08:15:32 +02:00
.woodpecker ci: repositories 2023年07月08日 12:52:45 +02:00
core release 0.2.0-rc2 2024年05月03日 08:15:32 +02:00
src initial commit 2023年07月06日 20:17:10 +02:00
.dockerignore add container build script 2023年07月07日 03:08:52 +02:00
.gitignore initial commit 2023年07月06日 20:17:10 +02:00
Cargo.lock release 0.2.0-rc2 2024年05月03日 08:15:32 +02:00
Cargo.toml release 0.2.0-rc2 2024年05月03日 08:15:32 +02:00
Dockerfile Add trailing slash to COPY in Dockerfile 2023年07月08日 01:40:46 +01:00
LICENSE initial commit 2023年07月06日 20:17:10 +02:00
README.md initial commit 2023年07月06日 20:17:10 +02:00

frenring

it's a webring with posts from frens!

$ frenring -n 4 -l 80 \
 -s 'https://sdomi.pl/weblog/atom/' \
 -s 'https://maia.crimew.gay/feed.xml' \
 -s 'https://cadence.moe/blog/atom.xml?limit=1' \
 -s 'https://drewdevault.com/blog/index.xml'
[
 {
 "title": "Making MDR-V6 wireless, the hard way",
 "link": "http://sakamoto.pl/weblog/16-making-mdrv6-wireless/",
 "summary": "Join me as I hack a pair of cool wired headphones to have a detachable cord alon...",
 "date": "2022年11月21日T09:53:00Z",
 "source_link": "https://sdomi.pl/weblog/",
 "source_title": "sdomi's weblog"
 },
 {
 "title": "#FuckStalkerware pt. 1 - the LetMeSpy hack",
 "link": "https://maia.crimew.gay/posts/fuckstalkerware-1/",
 "summary": "the intro to this series can be found here a few days ago, while i was starting ...",
 "date": "2023年06月26日T00:00:00Z",
 "source_link": "https://maia.crimew.gay/",
 "source_title": "maia blog"
 },
 {
 "title": "Seriously, don't sign a CLA",
 "link": "https://drewdevault.com/2023/07/04/Dont-sign-a-CLA-2.html",
 "summary": "SourceGraph is making their product closed source, abandoning the Apache 2.0 lic...",
 "date": "2023年07月04日T00:00:00Z",
 "source_link": "https://drewdevault.com/",
 "source_title": "Drew DeVault's blog"
 },
 {
 "title": "How to log in to phpBB for scraping",
 "link": "https://cadence.moe/blog/2023-02-26-how-to-log-in-to-phpbb-for-scraping",
 "summary": "This post is all about logging in to phpBB through manually constructed requests...",
 "date": "2023年02月26日T10:57:58.136Z",
 "source_link": "https://cadence.moe/blog",
 "source_title": "Cadence's Weblog"
 }
]

inspired by Drew DeVault's openring. I mean this is basically a "rewrite it in rust" moment, because I didn't want to touch golang templates, or worse, golang. the main difference is that it outputs a JSON array rather than fill the data into a supplied golang template.

in Zola, you can use the resulting JSON in a template with the load_data built-in function.

this is the cli. the core functionality is a rust library - see the core directory or frenring-core crate (lib.rs).

security considerations: make sure the output you serve (such as html) is sanitized. xml parser is in use. paths to local filesystem are accepted as a source of a feed. remote http/https servers receive your ip address. http communication can be intercepted and altered by a third party.

copyright (c) 2023 lauren n. liberda, usage allowed under LGPL-3.0-only, see LICENSE file.