From 579d62d889f5484d6544ffb5f22448546d1d2cb9 Mon Sep 17 00:00:00 2001 From: Casper Sparre Date: Mon, 6 Oct 2025 20:04:31 +0200 Subject: [PATCH] Fixed lookup for Paid Posts and Messages, due to API changes --- OF DL/Helpers/APIHelper.cs | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/OF DL/Helpers/APIHelper.cs b/OF DL/Helpers/APIHelper.cs index 4f7789c..5188ae2 100644 --- a/OF DL/Helpers/APIHelper.cs +++ b/OF DL/Helpers/APIHelper.cs @@ -904,13 +904,13 @@ public class APIHelper : IAPIHelper Purchased paidPosts = new(); PaidPostCollection paidPostCollection = new(); int post_limit = 50; + int offset = 0; Dictionary getParams = new() { { "limit", post_limit.ToString() }, { "skip_users", "all" }, - { "order", "publish_date_desc" }, { "format", "infinite" }, - { "author", username } + { "author", username }, }; var body = await BuildHeaderAndExecuteRequests(getParams, endpoint, GetHttpClient(config)); @@ -920,9 +920,10 @@ public class APIHelper : IAPIHelper ctx.SpinnerStyle(Style.Parse("blue")); if (paidPosts != null && paidPosts.hasMore) { - getParams["offset"] = paidPosts.list.Count.ToString(); while (true) { + offset += post_limit; + getParams["offset"] = offset.ToString(); Purchased newPaidPosts = new(); @@ -937,7 +938,6 @@ public class APIHelper : IAPIHelper { break; } - getParams["offset"] = Convert.ToString(Convert.ToInt32(getParams["offset"]) + post_limit); } } @@ -1697,7 +1697,7 @@ public class APIHelper : IAPIHelper { { "limit", post_limit.ToString() }, { "order", "desc" }, - { "skip_users", "all" } + { "skip_users", "all" }, }; var body = await BuildHeaderAndExecuteRequests(getParams, endpoint, GetHttpClient(config)); @@ -1707,9 +1707,10 @@ public class APIHelper : IAPIHelper ctx.SpinnerStyle(Style.Parse("blue")); if (messages.hasMore) { - getParams["id"] = messages.list[^1].id.ToString(); while (true) { + getParams["id"] = messages.list[^1].id.ToString(); + Messages newmessages = new(); var loopbody = await BuildHeaderAndExecuteRequests(getParams, endpoint, GetHttpClient(config)); @@ -1723,7 +1724,6 @@ public class APIHelper : IAPIHelper { break; } - getParams["id"] = newmessages.list[newmessages.list.Count - 1].id.ToString(); } } @@ -2008,13 +2008,14 @@ public class APIHelper : IAPIHelper Purchased paidMessages = new(); PaidMessageCollection paidMessageCollection = new(); int post_limit = 50; + int offset = 0; Dictionary getParams = new() { { "limit", post_limit.ToString() }, - { "order", "publish_date_desc" }, + { "skip_users", "all" }, { "format", "infinite" }, + { "offset", offset.ToString() }, { "author", username }, - { "skip_users", "all" } }; var body = await BuildHeaderAndExecuteRequests(getParams, endpoint, GetHttpClient(config)); @@ -2024,9 +2025,11 @@ public class APIHelper : IAPIHelper ctx.SpinnerStyle(Style.Parse("blue")); if (paidMessages != null && paidMessages.hasMore) { - getParams["offset"] = paidMessages.list.Count.ToString(); while (true) { + offset += post_limit; + getParams["offset"] = offset.ToString(); + string loopqueryParams = "?" + string.Join("&", getParams.Select(kvp => $"{kvp.Key}={kvp.Value}")); Purchased newpaidMessages = new(); Dictionary loopheaders = GetDynamicHeaders("/api2/v2" + endpoint, loopqueryParams); @@ -2038,12 +2041,14 @@ public class APIHelper : IAPIHelper { looprequest.Headers.Add(keyValuePair.Key, keyValuePair.Value); } + using (var loopresponse = await loopclient.SendAsync(looprequest)) { loopresponse.EnsureSuccessStatusCode(); var loopbody = await loopresponse.Content.ReadAsStringAsync(); newpaidMessages = JsonConvert.DeserializeObject(loopbody, m_JsonSerializerSettings); } + paidMessages.list.AddRange(newpaidMessages.list); ctx.Status($"[red]Getting Paid Messages\n[/] [red]Found {paidMessages.list.Count}[/]"); ctx.Spinner(Spinner.Known.Dots); @@ -2052,7 +2057,6 @@ public class APIHelper : IAPIHelper { break; } - getParams["offset"] = Convert.ToString(Convert.ToInt32(getParams["offset"]) + post_limit); } }