Fixed lookup for Paid Posts and Messages, due to API changes

This commit is contained in:
Casper Sparre 2025-10-06 20:04:31 +02:00
parent 023a811643
commit a7121d0676

View File

@ -904,13 +904,13 @@ public class APIHelper : IAPIHelper
Purchased paidPosts = new();
PaidPostCollection paidPostCollection = new();
int post_limit = 50;
int offset = 0;
Dictionary<string, string> 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<string, string> 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<string, string> 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<Purchased>(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);
}
}