Library Connector Constructors

This commit is contained in:
Glax 2024-12-16 17:45:58 +01:00
parent 6737be4a20
commit 6534341fd5
2 changed files with 29 additions and 10 deletions

View File

@ -3,9 +3,19 @@ using System.Text.Json.Nodes;
namespace API.Schema.LibraryConnectors; namespace API.Schema.LibraryConnectors;
public class Kavita(string baseUrl, string auth) public class Kavita : LibraryConnector
: LibraryConnector(TokenGen.CreateToken(typeof(Kavita), 64), LibraryType.Kavita, baseUrl, auth)
{ {
public Kavita(string baseUrl, string auth) : base(TokenGen.CreateToken(typeof(Kavita), 64), LibraryType.Kavita, baseUrl, auth)
{
}
public Kavita(string baseUrl, string username, string password) :
this(baseUrl, GetToken(baseUrl, username, password))
{
}
private static string GetToken(string baseUrl, string username, string password) private static string GetToken(string baseUrl, string username, string password)
{ {
HttpClient client = new() HttpClient client = new()
@ -43,13 +53,13 @@ public class Kavita(string baseUrl, string auth)
protected override void UpdateLibraryInternal() protected override void UpdateLibraryInternal()
{ {
foreach (KavitaLibrary lib in GetLibraries()) foreach (KavitaLibrary lib in GetLibraries())
NetClient.MakePost($"{baseUrl}/api/Library/scan?libraryId={lib.id}", "Bearer", auth); NetClient.MakePost($"{BaseUrl}/api/Library/scan?libraryId={lib.id}", "Bearer", Auth);
} }
internal override bool Test() internal override bool Test()
{ {
foreach (KavitaLibrary lib in GetLibraries()) foreach (KavitaLibrary lib in GetLibraries())
if (NetClient.MakePost($"{baseUrl}/api/Library/scan?libraryId={lib.id}", "Bearer", auth)) if (NetClient.MakePost($"{BaseUrl}/api/Library/scan?libraryId={lib.id}", "Bearer", Auth))
return true; return true;
return false; return false;
} }
@ -60,7 +70,7 @@ public class Kavita(string baseUrl, string auth)
/// <returns>Array of KavitaLibrary</returns> /// <returns>Array of KavitaLibrary</returns>
private IEnumerable<KavitaLibrary> GetLibraries() private IEnumerable<KavitaLibrary> GetLibraries()
{ {
Stream data = NetClient.MakeRequest($"{baseUrl}/api/Library/libraries", "Bearer", auth); Stream data = NetClient.MakeRequest($"{BaseUrl}/api/Library/libraries", "Bearer", Auth);
if (data == Stream.Null) if (data == Stream.Null)
{ {
return Array.Empty<KavitaLibrary>(); return Array.Empty<KavitaLibrary>();

View File

@ -3,19 +3,28 @@ using System.Text.Json.Nodes;
namespace API.Schema.LibraryConnectors; namespace API.Schema.LibraryConnectors;
public class Komga(string baseUrl, string auth) public class Komga : LibraryConnector
: LibraryConnector(TokenGen.CreateToken(typeof(Komga), 64), LibraryType.Komga, baseUrl, auth)
{ {
public Komga(string baseUrl, string auth) : base(TokenGen.CreateToken(typeof(Komga), 64), LibraryType.Komga,
baseUrl, auth)
{
}
public Komga(string baseUrl, string username, string password)
: this(baseUrl, Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes($"{username}:{password}")))
{
}
protected override void UpdateLibraryInternal() protected override void UpdateLibraryInternal()
{ {
foreach (KomgaLibrary lib in GetLibraries()) foreach (KomgaLibrary lib in GetLibraries())
NetClient.MakePost($"{baseUrl}/api/v1/libraries/{lib.id}/scan", "Basic", auth); NetClient.MakePost($"{BaseUrl}/api/v1/libraries/{lib.id}/scan", "Basic", Auth);
} }
internal override bool Test() internal override bool Test()
{ {
foreach (KomgaLibrary lib in GetLibraries()) foreach (KomgaLibrary lib in GetLibraries())
if (NetClient.MakePost($"{baseUrl}/api/v1/libraries/{lib.id}/scan", "Basic", auth)) if (NetClient.MakePost($"{BaseUrl}/api/v1/libraries/{lib.id}/scan", "Basic", Auth))
return true; return true;
return false; return false;
} }
@ -26,7 +35,7 @@ public class Komga(string baseUrl, string auth)
/// <returns>Array of KomgaLibraries</returns> /// <returns>Array of KomgaLibraries</returns>
private IEnumerable<KomgaLibrary> GetLibraries() private IEnumerable<KomgaLibrary> GetLibraries()
{ {
Stream data = NetClient.MakeRequest($"{baseUrl}/api/v1/libraries", "Basic", auth); Stream data = NetClient.MakeRequest($"{BaseUrl}/api/v1/libraries", "Basic", Auth);
if (data == Stream.Null) if (data == Stream.Null)
{ {
return Array.Empty<KomgaLibrary>(); return Array.Empty<KomgaLibrary>();