Implement TA->JF synchronization

This commit is contained in:
DarkFighterLuke
2024-08-27 00:12:14 +02:00
parent cc28016984
commit fd4a9a0130
3 changed files with 195 additions and 3 deletions
@@ -154,7 +154,6 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.TubeArchivist
/// <param name="videoId">Video id.</param>
/// <param name="progress">Progress in seconds.</param>
/// <returns>Nothing if successful.</returns>
/// <exception cref="HttpRequestException">Throws this exception if the request was not successful.</exception>
public async Task<HttpStatusCode> SetProgress(string videoId, long progress)
{
var progressEndpoint = $"/api/video/{videoId}/progress/";
@@ -165,5 +164,28 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.TubeArchivist
return response.StatusCode;
}
/// <summary>
/// Send video playback progress to TubeArchivist.
/// </summary>
/// <param name="videoId">Video id.</param>
/// <returns>Video playback progress data.</returns>
public async Task<Progress?> GetProgress(string videoId)
{
Progress? progress = null;
var progressEndpoint = $"/api/video/{videoId}/progress/";
var url = new Uri(Utils.SanitizeUrl(Plugin.Instance!.Configuration.TubeArchivistUrl + progressEndpoint));
var response = await client.GetAsync(url).ConfigureAwait(true);
if (response.IsSuccessStatusCode)
{
string rawData = await response.Content.ReadAsStringAsync().ConfigureAwait(true);
progress = JsonConvert.DeserializeObject<Progress>(rawData);
}
return progress;
}
}
}