[Commits] [SCM] claws branch, master, updated. 4.3.1-51-gf1f6d9d6a

wwp at claws-mail.org wwp at claws-mail.org
Fri Mar 21 10:34:08 UTC 2025


The branch, master has been updated
       via  f1f6d9d6a36d58991b77c939ff33a5ce4b0a98e2 (commit)
      from  24a7d15ed475beb0483874974739f3b1163542cb (commit)

Summary of changes:
 src/plugins/rssyl/rssyl_prefs.c       | 14 ++++++++++++++
 src/plugins/rssyl/rssyl_prefs.h       |  1 +
 src/plugins/rssyl/rssyl_update_feed.c |  9 +++++++--
 3 files changed, 22 insertions(+), 2 deletions(-)


- Log -----------------------------------------------------------------
commit f1f6d9d6a36d58991b77c939ff33a5ce4b0a98e2
Author: wwp <subscript at free.fr>
Date:   Fri Mar 21 11:32:10 2025 +0100

    RSSyl plugin: add a pref so that feeds programmed for manual updates only (refresh interval=0)
    are not updated when refreshing all feeds at once (recursively by the context menu, timer or
    at start-up, if enabled).

diff --git a/src/plugins/rssyl/rssyl_prefs.c b/src/plugins/rssyl/rssyl_prefs.c
index 7c6baa903..097b6621d 100644
--- a/src/plugins/rssyl/rssyl_prefs.c
+++ b/src/plugins/rssyl/rssyl_prefs.c
@@ -50,6 +50,8 @@ static PrefParam param[] = {
 		P_BOOL,	NULL, NULL, NULL },
 	{ "refresh_enabled", "TRUE", &rssyl_prefs.refresh_enabled,
 		P_BOOL,	NULL, NULL, NULL },
+	{ "refresh_all_skips", "FALSE", &rssyl_prefs.refresh_all_skips,
+		P_BOOL,	NULL, NULL, NULL },
 	{ "cookies_path", "", &rssyl_prefs.cookies_path,
 		P_STRING, NULL, NULL, NULL },
 	{ "ssl_verify_peer", "TRUE", &rssyl_prefs.ssl_verify_peer,
@@ -66,6 +68,7 @@ static struct _RPrefsPage {
 	GtkWidget *refresh_enabled;
 	GtkWidget *refresh;
 	GtkWidget *refresh_on_startup;
+	GtkWidget *refresh_all_skips;
 	GtkWidget *cookies_path;
 	GtkWidget *ssl_verify_peer;
 	GtkWidget *use_custom_user_agent;
@@ -153,6 +156,7 @@ static void create_rssyl_prefs_page(PrefsPage *page,
 	GtkWidget *refresh, *refresh_enabled, *refresh_hbox;
 	GtkWidget *label;
 	GtkWidget *refresh_on_startup;
+	GtkWidget *refresh_all_skips;
 	GtkAdjustment *refresh_adj;
 	GtkWidget *cookies_path, *cookies_btn, *cookies_hbox;
 	GtkWidget *ssl_verify_peer;
@@ -188,6 +192,13 @@ static void create_rssyl_prefs_page(PrefsPage *page,
 			rssyl_prefs.refresh_on_startup);
 	gtk_box_pack_start(GTK_BOX(vbox1), refresh_on_startup, FALSE, FALSE, 0);
 
+	/* Whether refresh-all will skip feeds that are not programmed to be periodically refreshed or not */
+	refresh_all_skips = gtk_check_button_new_with_label(
+			_("Refresh all skips feeds programmed to be refreshed manually"));
+	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(refresh_all_skips),
+			rssyl_prefs.refresh_all_skips);
+	gtk_box_pack_start(GTK_BOX(vbox1), refresh_all_skips, FALSE, FALSE, 0);
+
 	vbox2 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 6);
 
 	/* Whether to verify SSL peer certificate */
@@ -261,6 +272,7 @@ static void create_rssyl_prefs_page(PrefsPage *page,
 	prefs_page->refresh_enabled = refresh_enabled;
 	prefs_page->refresh = refresh;
 	prefs_page->refresh_on_startup = refresh_on_startup;
+	prefs_page->refresh_all_skips = refresh_all_skips;
 	prefs_page->cookies_path = cookies_path;
 	prefs_page->ssl_verify_peer = ssl_verify_peer;
 	prefs_page->use_custom_user_agent = use_custom_user_agent;
@@ -286,6 +298,8 @@ static void save_rssyl_prefs(PrefsPage *page)
 			GTK_SPIN_BUTTON(prefs_page->refresh));
 	rssyl_prefs.refresh_on_startup = gtk_toggle_button_get_active(
 			GTK_TOGGLE_BUTTON(prefs_page->refresh_on_startup));
+	rssyl_prefs.refresh_all_skips = gtk_toggle_button_get_active(
+			GTK_TOGGLE_BUTTON(prefs_page->refresh_all_skips));
 	g_free(rssyl_prefs.cookies_path);
 	rssyl_prefs.cookies_path = g_strdup(gtk_entry_get_text(
 				GTK_ENTRY(prefs_page->cookies_path)));
diff --git a/src/plugins/rssyl/rssyl_prefs.h b/src/plugins/rssyl/rssyl_prefs.h
index eb2482400..22f853ade 100644
--- a/src/plugins/rssyl/rssyl_prefs.h
+++ b/src/plugins/rssyl/rssyl_prefs.h
@@ -29,6 +29,7 @@ struct _RPrefs {
 	gboolean refresh_enabled;
 	gint refresh;
 	gboolean refresh_on_startup;
+	gboolean refresh_all_skips;
 	gchar *cookies_path;
 	gboolean ssl_verify_peer;
 	gboolean use_custom_user_agent;
diff --git a/src/plugins/rssyl/rssyl_update_feed.c b/src/plugins/rssyl/rssyl_update_feed.c
index 1735c32dd..91eba8dbc 100644
--- a/src/plugins/rssyl/rssyl_update_feed.c
+++ b/src/plugins/rssyl/rssyl_update_feed.c
@@ -366,8 +366,13 @@ static gboolean rssyl_update_recursively_func(GNode *node, gpointer data)
 	ritem = (RFolderItem *)item;
 
 	if( ritem->url != NULL ) {
-		debug_print("RSSyl: Updating feed '%s'\n", item->name);
-		rssyl_update_feed(ritem, 0);
+		if(rssyl_prefs_get()->refresh_all_skips &&
+			(ritem->default_refresh_interval == FALSE) && (ritem->refresh_interval == 0)) {
+			debug_print("RSSyl: Skipping feed '%s'\n", item->name);
+		} else {
+			debug_print("RSSyl: Updating feed '%s'\n", item->name);
+			rssyl_update_feed(ritem, 0);
+		}
 	} else
 		debug_print("RSSyl: Updating in folder '%s'\n", item->name);
 

-----------------------------------------------------------------------


hooks/post-receive
-- 
Claws Mail


More information about the Commits mailing list