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)
{