readr

Minimal Terminal RSS Reader
Log | Files | Refs | README | LICENSE

commit ab81a81589c7015445e182833d8d935c19561b12
parent 4c03fcd97aa30453718144eb296aa17173ab9c65
Author: citbl <citbl@citbl.org>
Date:   Thu, 30 Oct 2025 21:57:42 +1000

add link to website url when <ENTER> on the feed

Diffstat:
MTODO | 4++--
Msrc/config.h | 2+-
Msrc/feeds.c | 2++
Msrc/keys.c | 4+++-
Msrc/readr.h | 1+
5 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/TODO b/TODO @@ -4,8 +4,8 @@ [ ] ENTER on the feed title should go to the listing [x] caching, persist links and seen, sqlite [ ] scrolling -[ ] instant display -[ ] background fetching +[f] instant display +[f] background fetching [ ] status bar [ ] folders [ ] indented feeds under one diff --git a/src/config.h b/src/config.h @@ -1,6 +1,6 @@ #pragma once -#define VERSION "v1.6" +#define VERSION "v1.7" // recommended, pass as chrome for reddit feeds #define USER_AGENT \ diff --git a/src/feeds.c b/src/feeds.c @@ -89,6 +89,8 @@ parse_feed(feed_t* feed, char* url, char* http_body) return; } + feed->website_url = strdup(rss->link); + snprintf(feed->title, FEED_CAP, "%s", rss->title ? rss->title : "(unknown feedtitle)"); for (mrss_item_t* it = rss->item; it; it = it->next) { diff --git a/src/keys.c b/src/keys.c @@ -38,7 +38,9 @@ handle_key(app_t* app, struct tb_event ev) app->selected_panel = MIN(app->selected_panel + 1, MAX_PANEL); break; case TB_KEY_ENTER: { - if (app->selected_panel == 1) { + if (app->selected_panel == 0) { + open_url(app->feeds[app->selected_feed]->website_url); + } else if (app->selected_panel == 1) { char url[URL_CAP] = { 0 }; db_post_t* post = app->feeds[app->selected_feed]->posts[app->selected_post]; size_t len = MIN(URL_CAP, strlen(post->link)); diff --git a/src/readr.h b/src/readr.h @@ -19,6 +19,7 @@ typedef struct { } post_t; typedef struct { + const char* website_url; const char* url; char* title; db_post_t** posts;