forked from sim0n00ps/OF-DL
Improved subscription loading and null handling
This commit is contained in:
parent
3ac8360a09
commit
3cc3c49b0f
@ -334,11 +334,14 @@ public class APIHelper : IAPIHelper
|
|||||||
|
|
||||||
foreach (Subscriptions.List subscription in subscriptions.list)
|
foreach (Subscriptions.List subscription in subscriptions.list)
|
||||||
{
|
{
|
||||||
if ((!(subscription.isRestricted ?? false) || ((subscription.isRestricted ?? false) && includeRestricted))
|
if (users.ContainsKey(subscription.username))
|
||||||
&& !users.ContainsKey(subscription.username))
|
continue;
|
||||||
{
|
|
||||||
|
bool isRestricted = subscription.isRestricted ?? false;
|
||||||
|
bool isRestrictedButAllowed = isRestricted && includeRestricted;
|
||||||
|
|
||||||
|
if (!isRestricted || isRestrictedButAllowed)
|
||||||
users.Add(subscription.username, subscription.id);
|
users.Add(subscription.username, subscription.id);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return users;
|
return users;
|
||||||
|
@ -884,13 +884,21 @@ public class Program
|
|||||||
do
|
do
|
||||||
{
|
{
|
||||||
DateTime startTime = DateTime.Now;
|
DateTime startTime = DateTime.Now;
|
||||||
Dictionary<string, int> users = new();
|
Dictionary<string, int> users = new();
|
||||||
Dictionary<string, int> activeSubs = await m_ApiHelper.GetActiveSubscriptions("/subscriptions/subscribes", Config.IncludeRestrictedSubscriptions, Config);
|
|
||||||
|
|
||||||
Log.Debug("Subscriptions: ");
|
Task<Dictionary<string, int>?> taskActive = m_ApiHelper.GetActiveSubscriptions("/subscriptions/subscribes", Config.IncludeRestrictedSubscriptions, Config);
|
||||||
|
Task<Dictionary<string, int>?> taskExpired = Config!.IncludeExpiredSubscriptions
|
||||||
|
? m_ApiHelper.GetExpiredSubscriptions("/subscriptions/subscribes", Config.IncludeRestrictedSubscriptions, Config)
|
||||||
|
: Task.FromResult<Dictionary<string, int>?>([]);
|
||||||
|
|
||||||
foreach (KeyValuePair<string, int> activeSub in activeSubs)
|
await Task.WhenAll(taskActive, taskExpired);
|
||||||
{
|
|
||||||
|
Dictionary<string, int> subsActive = await taskActive ?? [];
|
||||||
|
Dictionary<string, int> subsExpired = await taskExpired ?? [];
|
||||||
|
|
||||||
|
Log.Debug("Subscriptions: ");
|
||||||
|
foreach (KeyValuePair<string, int> activeSub in subsActive)
|
||||||
|
{
|
||||||
if (!users.ContainsKey(activeSub.Key))
|
if (!users.ContainsKey(activeSub.Key))
|
||||||
{
|
{
|
||||||
users.Add(activeSub.Key, activeSub.Value);
|
users.Add(activeSub.Key, activeSub.Value);
|
||||||
@ -900,11 +908,9 @@ public class Program
|
|||||||
if (Config!.IncludeExpiredSubscriptions)
|
if (Config!.IncludeExpiredSubscriptions)
|
||||||
{
|
{
|
||||||
Log.Debug("Inactive Subscriptions: ");
|
Log.Debug("Inactive Subscriptions: ");
|
||||||
|
foreach (KeyValuePair<string, int> expiredSub in subsExpired)
|
||||||
Dictionary<string, int> expiredSubs = await m_ApiHelper.GetExpiredSubscriptions("/subscriptions/subscribes", Config.IncludeRestrictedSubscriptions, Config);
|
{
|
||||||
foreach (KeyValuePair<string, int> expiredSub in expiredSubs)
|
if (!users.ContainsKey(expiredSub.Key))
|
||||||
{
|
|
||||||
if (!users.ContainsKey(expiredSub.Key))
|
|
||||||
{
|
{
|
||||||
users.Add(expiredSub.Key, expiredSub.Value);
|
users.Add(expiredSub.Key, expiredSub.Value);
|
||||||
Log.Debug($"Name: {expiredSub.Key} ID: {expiredSub.Value}");
|
Log.Debug($"Name: {expiredSub.Key} ID: {expiredSub.Value}");
|
||||||
@ -927,9 +933,12 @@ public class Program
|
|||||||
var ignoredUsernames = await m_ApiHelper.GetListUsers($"/lists/{ignoredUsersListId}/users", Config) ?? [];
|
var ignoredUsernames = await m_ApiHelper.GetListUsers($"/lists/{ignoredUsersListId}/users", Config) ?? [];
|
||||||
users = users.Where(x => !ignoredUsernames.Contains(x.Key)).ToDictionary(x => x.Key, x => x.Value);
|
users = users.Where(x => !ignoredUsernames.Contains(x.Key)).ToDictionary(x => x.Key, x => x.Value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await dBHelper.CreateUsersDB(users);
|
if (users.Count <= 0)
|
||||||
|
throw new InvalidOperationException("No users found!");
|
||||||
|
|
||||||
|
await dBHelper.CreateUsersDB(users);
|
||||||
KeyValuePair<bool, Dictionary<string, int>> hasSelectedUsersKVP;
|
KeyValuePair<bool, Dictionary<string, int>> hasSelectedUsersKVP;
|
||||||
if(Config.NonInteractiveMode && Config.NonInteractiveModePurchasedTab)
|
if(Config.NonInteractiveMode && Config.NonInteractiveModePurchasedTab)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user