Tranga-Website/Website/apiConnector.js

135 lines
3.8 KiB
JavaScript
Raw Normal View History

2023-05-25 10:42:19 +02:00
let apiUri = `http://${window.location.host.split(':')[0]}:6531`
if(getCookie("apiUri") != ""){
apiUri = getCookie("apiUri");
}
function getCookie(cname) {
let name = cname + "=";
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(';');
for(let i = 0; i < ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
2023-05-23 12:51:21 +02:00
2023-05-23 13:52:35 +02:00
async function GetData(uri){
let request = await fetch(uri, {
2023-05-23 13:15:29 +02:00
method: 'GET',
headers: {
'Accept': 'application/json'
}
2023-05-23 13:52:35 +02:00
});
let json = await request.json();
return json;
2023-05-23 13:15:29 +02:00
}
2023-05-23 13:52:35 +02:00
function PostData(uri){
fetch(uri, {
method: 'POST'
});
}
function DeleteData(uri){
fetch(uri, {
method: 'DELETE'
});
}
async function GetAvailableControllers(){
var uri = apiUri + "/Tranga/GetAvailableControllers";
let json = await GetData(uri);
return json;
}
async function GetPublication(connectorName, title){
var uri = apiUri + `/Tranga/GetPublicationsFromConnector?connectorName=${connectorName}&title=${title}`;
let json = await GetData(uri);
return json;
}
async function GetKnownPublications(){
var uri = apiUri + "/Tranga/GetKnownPublications";
let json = await GetData(uri);
return json;
}
async function GetTaskTypes(){
2023-05-23 14:44:45 +02:00
var uri = apiUri + "/Tasks/GetTaskTypes";
2023-05-23 13:52:35 +02:00
let json = await GetData(uri);
return json;
}
async function GetRunningTasks(){
var uri = apiUri + "/Tasks/GetRunningTasks";
2023-05-23 13:52:35 +02:00
let json = await GetData(uri);
return json;
}
2023-05-23 13:15:29 +02:00
2023-05-24 21:48:54 +02:00
async function GetDownloadTasks(){
var uri = apiUri + "/Tasks/Get?taskType=DownloadNewChapters";
2023-05-23 13:52:35 +02:00
let json = await GetData(uri);
return json;
2023-05-23 13:15:29 +02:00
}
async function GetSettings(){
var uri = apiUri + "/Settings/Get";
2023-05-23 13:52:35 +02:00
let json = await GetData(uri);
return json;
}
2023-05-24 21:48:54 +02:00
async function GetKomgaTask(){
2023-06-03 16:25:04 +02:00
var uri = apiUri + "/Tasks/Get?taskType=UpdateLibraries";
2023-05-24 21:48:54 +02:00
let json = await GetData(uri);
return json;
}
function CreateTask(taskType, reoccurrence, connectorName, internalId, language){
var uri = apiUri + `/Tasks/Create?taskType=${taskType}&connectorName=${connectorName}&internalId=${internalId}&reoccurrenceTime=${reoccurrence}&language=${language}`;
2023-05-23 13:52:35 +02:00
PostData(uri);
}
2023-06-05 01:03:03 +02:00
function StartTask(taskType, connectorName, internalId){
var uri = apiUri + `/Tasks/Start?taskType=${taskType}&connectorName=${connectorName}&internalId=${internalId}`;
2023-05-23 13:52:35 +02:00
PostData(uri);
}
function EnqueueTask(taskType, connectorName, publicationId){
var uri = apiUri + `/Queue/Enqueue?taskType=${taskType}&connectorName=${connectorName}&publicationId=${publicationId}`;
PostData(uri);
}
2023-06-03 21:26:29 +02:00
function UpdateSettings(downloadLocation, komgaUrl, komgaAuth, kavitaUrl, kavitaUser, kavitaPass){
var uri = apiUri + "/Settings/Update?"
if(downloadLocation != ""){
uri += "&downloadLocation="+downloadLocation;
}
if(komgaUrl != "" && komgaAuth != ""){
uri += `&komgaUrl=${komgaUrl}&komgaAuth=${komgaAuth}`;
}
if(kavitaUrl != "" && kavitaUser != "" && kavitaPass != ""){
uri += `&kavitaUrl=${kavitaUrl}&kavitaUsername=${kavitaUser}&kavitaPassword=${kavitaPass}`;
}
2023-05-23 13:52:35 +02:00
PostData(uri);
}
function DeleteTask(taskType, connectorName, publicationId){
var uri = apiUri + `/Tasks/Delete?taskType=${taskType}&connectorName=${connectorName}&publicationId=${publicationId}`;
DeleteData(uri);
}
function DequeueTask(taskType, connectorName, publicationId){
var uri = apiUri + `/Queue/Dequeue?taskType=${taskType}&connectorName=${connectorName}&publicationId=${publicationId}`;
DeleteData(uri);
}
async function GetQueue(){
var uri = apiUri + "/Queue/GetList";
let json = await GetData(uri);
return json;
2023-05-23 12:51:21 +02:00
}