diff --git a/OF DL/Helpers/APIHelper.cs b/OF DL/Helpers/APIHelper.cs index d82be2f..160df76 100644 --- a/OF DL/Helpers/APIHelper.cs +++ b/OF DL/Helpers/APIHelper.cs @@ -735,12 +735,14 @@ public class APIHelper : IAPIHelper Purchased paidPosts = new(); PaidPostCollection paidPostCollection = new(); int post_limit = 50; + int offset = 0; Dictionary getParams = new() { { "limit", post_limit.ToString() }, - { "order", "publish_date_desc" }, + { "skip_users", "all" }, { "format", "infinite" }, - { "user_id", username } + { "offset", offset.ToString() }, + { "author", username }, }; var body = await BuildHeaderAndExecuteRequests(getParams, endpoint, GetHttpClient(config)); @@ -750,9 +752,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(); @@ -767,7 +770,6 @@ public class APIHelper : IAPIHelper { break; } - getParams["offset"] = Convert.ToString(Convert.ToInt32(getParams["offset"]) + post_limit); } } @@ -1524,7 +1526,8 @@ public class APIHelper : IAPIHelper Dictionary getParams = new() { { "limit", post_limit.ToString() }, - { "order", "desc" } + { "order", "desc" }, + { "skip_users", "all" }, }; var body = await BuildHeaderAndExecuteRequests(getParams, endpoint, GetHttpClient(config)); @@ -1534,9 +1537,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)); @@ -1550,7 +1554,6 @@ public class APIHelper : IAPIHelper { break; } - getParams["id"] = newmessages.list[newmessages.list.Count - 1].id.ToString(); } } @@ -1835,12 +1838,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" }, - { "user_id", username } + { "offset", offset.ToString() }, + { "author", username }, }; var body = await BuildHeaderAndExecuteRequests(getParams, endpoint, GetHttpClient(config)); @@ -1850,9 +1855,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); @@ -1864,12 +1871,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); @@ -1878,7 +1887,6 @@ public class APIHelper : IAPIHelper { break; } - getParams["offset"] = Convert.ToString(Convert.ToInt32(getParams["offset"]) + post_limit); } } diff --git a/OF DL/Program.cs b/OF DL/Program.cs index 86c9d87..bfa013b 100644 --- a/OF DL/Program.cs +++ b/OF DL/Program.cs @@ -1303,7 +1303,7 @@ public class Program await AnsiConsole.Status() .StartAsync("[red]Getting Paid Messages[/]", async ctx => { - paidMessageCollection = await downloadContext.ApiHelper.GetPaidMessages("/posts/paid", path, user.Key, downloadContext.DownloadConfig!, ctx); + paidMessageCollection = await downloadContext.ApiHelper.GetPaidMessages("/posts/paid/chat", path, user.Key, downloadContext.DownloadConfig!, ctx); }); int oldPaidMessagesCount = 0; int newPaidMessagesCount = 0; @@ -1956,7 +1956,7 @@ public class Program await AnsiConsole.Status() .StartAsync("[red]Getting Paid Posts[/]", async ctx => { - purchasedPosts = await downloadContext.ApiHelper.GetPaidPosts("/posts/paid", path, user.Key, downloadContext.DownloadConfig!, paid_post_ids, ctx); + purchasedPosts = await downloadContext.ApiHelper.GetPaidPosts("/posts/paid/post", path, user.Key, downloadContext.DownloadConfig!, paid_post_ids, ctx); }); int oldPaidPostCount = 0;