From 5d2a4e28fada4b121c3032723898fa260e592891 Mon Sep 17 00:00:00 2001 From: Adam R Grey Date: Tue, 4 Apr 2023 13:12:08 -0400 Subject: [PATCH] catchup feed --- ttrss/ApiClient.cs | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/ttrss/ApiClient.cs b/ttrss/ApiClient.cs index 512d6b0..b45054e 100644 --- a/ttrss/ApiClient.cs +++ b/ttrss/ApiClient.cs @@ -545,10 +545,40 @@ namespace ttrss_co_client.ttrss } } public enum CATCHUPMODE { All, OneDay, OneWeek, TwoWeeks } - public async Task CatchupFeed(int feed_id, bool is_cat, CATCHUPMODE mode = CATCHUPMODE.All) + ///Tries to catchup (e.g. mark as read) specified feed. + public async Task CatchupFeed(int feed_id, bool is_cat, CATCHUPMODE mode = CATCHUPMODE.All) { assertInitialized(); - throw new NotImplementedException(); + + var modestring = "all"; + if(mode != CATCHUPMODE.All) + { + assertApiLevel(15); + switch (mode) + { + case CATCHUPMODE.OneDay: + modestring = "1day"; + break; + case CATCHUPMODE.OneWeek: + modestring = "1week"; + break; + case CATCHUPMODE.TwoWeeks: + modestring = "2week"; + break; + } + } + + var json = JsonContent.Create(new + { + op = "catchupFeed", + sid = this.SessionId, + feed_id = feed_id, + is_cat = is_cat, + mode = modestring + }); + var apiResponse = await get>(json); + + return apiResponse.ContainsKey("status") && apiResponse["status"]?.ToLower() == "ok"; } public async Task GetLabels(int? article_id) {