Compare commits

...

3 Commits

5 changed files with 27 additions and 17 deletions

View File

@ -246,7 +246,7 @@ public class APIHelper : IAPIHelper
}
public async Task<User?> GetUserInfo(string endpoint)
public async Task<User?> GetUserInfo(string username, string endpoint)
{
Log.Debug($"Calling GetUserInfo: {endpoint}");
@ -275,7 +275,7 @@ public class APIHelper : IAPIHelper
user = JsonConvert.DeserializeObject<Entities.User>(body, m_JsonSerializerSettings);
if (user is not null && !endpoint.EndsWith("/me"))
await m_DBHelper.UpdateUserInfo(user);
await m_DBHelper.UpdateUserInfo(username, user);
return user;
}

View File

@ -254,9 +254,9 @@ namespace OF_DL.Helpers
return result;
}
public async Task UpdateUserInfo(User? user)
public async Task UpdateUserInfo(string username, User? user)
{
if (user is null)
if (user?.id is null)
return;
SqliteConnection connection = await GetAndOpenConnectionAsync($"Data Source={Directory.GetCurrentDirectory()}/users.db");
@ -270,7 +270,7 @@ namespace OF_DL.Helpers
);
cmdInfo.Parameters.AddWithValue("@userId", user.id);
cmdInfo.Parameters.AddWithValue("@name", user.name);
cmdInfo.Parameters.AddWithValue("@name", user.name ?? user.username ?? username);
cmdInfo.Parameters.AddWithValue("@about", user.about);
cmdInfo.Parameters.AddWithValue("@expiresOn", user.subscribedByExpireDate);
cmdInfo.Parameters.AddWithValue("@photoCount", user.photosCount ?? 0);

View File

@ -29,7 +29,7 @@ namespace OF_DL.Helpers
Task<PaidMessageCollection> GetPaidMessages(string endpoint, string folder, string username, int userId, IDownloadConfig config, StatusContext ctx);
Task<Dictionary<string, int>> GetPurchasedTabUsers(string endpoint, IDownloadConfig config, Dictionary<string, int> users);
Task<List<PurchasedTabCollection>> GetPurchasedTab(string endpoint, string folder, IDownloadConfig config, Dictionary<string, int> users);
Task<User> GetUserInfo(string endpoint);
Task<User> GetUserInfo(string username, string endpoint);
Task<JObject> GetUserInfoById(string endpoint);
Dictionary<string, string> GetDynamicHeaders(string path, string queryParam);
Task<Dictionary<string, int>> GetActiveSubscriptions(string endpoint, bool includeRestrictedSubscriptions, IDownloadConfig config);

View File

@ -15,6 +15,6 @@ namespace OF_DL.Helpers
Task<long> GetStoredFileSize(string folder, long media_id, string api_type);
Task<bool> CheckDownloaded(string folder, long media_id, string api_type);
Task<DateTime?> GetMostRecentPostDate(string folder);
Task UpdateUserInfo(User? user);
Task UpdateUserInfo(string username, User? user);
}
}

View File

@ -112,6 +112,7 @@ public class Program
levelSwitch.MinimumLevel = LogEventLevel.Error; //set initial level (until we've read from config)
Log.Logger = new LoggerConfiguration()
.Enrich.FromLogContext()
.Enrich.WithProperty("Application", "OF_DL")
.Enrich.WithProperty("StartTime", $"{DateTime.Now:yyyy-MM-dd HH:mm:ss} ")
.Enrich.WithProperty("MachineName", Environment.MachineName)
@ -843,7 +844,7 @@ public class Program
//Check if auth is valid
var apiHelper = new APIHelper(auth, config);
Entities.User? validate = await apiHelper.GetUserInfo($"/users/me");
Entities.User? validate = await apiHelper.GetUserInfo(string.Empty, $"/users/me");
if (validate == null || (validate?.name == null && validate?.username == null))
{
Log.Error("Auth failed");
@ -966,16 +967,22 @@ public class Program
Console.WriteLine();
await AnsiConsole.Progress()
.Columns(new ProgressBarColumn(), new PercentageColumn(), new TaskDescriptionColumn())
.Columns(new ProgressBarColumn(), new PercentageColumn(), new TaskDescriptionColumn { Alignment = Justify.Left })
.StartAsync(RunUpdateAsync);
async Task RunUpdateAsync(ProgressContext context)
{
ProgressTask updateTask = context.AddTask($"Updating User Info for '{users.Count}' users", true, users.Count);
ProgressTask updateTask = null;
int maxUsernameLength = users.Keys.Max(s => s.Length);
foreach ((string username, long userId) in users)
{
updateTask.Description = $"Updating '{username}'";
string description = $"Updating '{username}'".PadRight(11 + maxUsernameLength);
double prevValue = updateTask?.Value ?? 0;
updateTask = context.AddTask(description, true, users.Count);
updateTask.Value = prevValue;
using (LogContext.PushProperty("Username", username))
using (LogContext.PushProperty("UserId", userId))
@ -983,22 +990,25 @@ public class Program
try
{
Log.Information("Updating User Info for for: {Username:l}");
User? user_info = await m_ApiHelper.GetUserInfo($"/users/{username}");
await dbHelper.UpdateUserInfo(user_info);
User? user_info = await m_ApiHelper.GetUserInfo(username, $"/users/{username}");
await dbHelper.UpdateUserInfo(username, user_info);
updateTask.Description = $"{description} - COMPLETE";
}
catch (Exception ex)
{
Log.Warning(ex, "Failed to update User Info for: {Username:l}");
AnsiConsole.Markup($"[red]Failed to update User Info for '{username}'\n[/]");
updateTask.Description = $"{description} - FAILED: {ex.Message}";
}
finally
{
updateTask.Increment(1);
updateTask.StopTask();
}
}
}
updateTask.StopTask();
}
}
@ -1212,7 +1222,7 @@ public class Program
Log.Debug($"Folder for {user.Key} already created");
}
Entities.User user_info = await m_ApiHelper.GetUserInfo($"/users/{user.Key}");
Entities.User user_info = await m_ApiHelper.GetUserInfo(user.Key, $"/users/{user.Key}");
await dBHelper.CreateDB(path);
}
@ -1405,7 +1415,7 @@ public class Program
var downloadContext = new DownloadContext(Auth, Config, GetCreatorFileNameFormatConfig(Config, user.Key), m_ApiHelper, dBHelper);
User? user_info = await m_ApiHelper.GetUserInfo($"/users/{user.Key}");
User? user_info = await m_ApiHelper.GetUserInfo(user.Key, $"/users/{user.Key}");
if (Config.DownloadAvatarHeaderPhoto && user_info != null)
{