mirror of
https://github.com/C9Glax/tranga.git
synced 2025-10-17 10:50:45 +02:00
Include all Data in ActionRecord return Add endpoints for returning actions related to manga and chapter Fix wrong syncs for ActionsContext
4232 lines
116 KiB
JSON
4232 lines
116 KiB
JSON
{
|
|
"openapi": "3.0.4",
|
|
"info": {
|
|
"title": "Tranga v2",
|
|
"version": "2.0"
|
|
},
|
|
"paths": {
|
|
"/v2/Actions/Types": {
|
|
"get": {
|
|
"tags": [
|
|
"Actions"
|
|
],
|
|
"summary": "Returns the available Action Types (API.Schema.ActionsContext.Actions.ActionsEnum)",
|
|
"responses": {
|
|
"200": {
|
|
"description": "List of action-types",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ActionsEnum"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Actions/Interval": {
|
|
"post": {
|
|
"tags": [
|
|
"Actions"
|
|
],
|
|
"summary": "Returns API.Schema.ActionsContext.ActionRecord performed in API.Controllers.ActionsController.Interval",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json-patch+json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Interval"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Interval"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Interval"
|
|
}
|
|
},
|
|
"application/*+json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Interval"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "List of performed actions",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ActionRecord"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Database error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Actions/Type/{Type}": {
|
|
"get": {
|
|
"tags": [
|
|
"Actions"
|
|
],
|
|
"summary": "Returns API.Schema.ActionsContext.ActionRecord with TypeAPI.Schema.ActionsContext.Actions.ActionsEnum",
|
|
"parameters": [
|
|
{
|
|
"name": "Type",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ActionsEnum"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "List of performed actions",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ActionRecord"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Database error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Actions/RelatedTo/Manga/{MangaId}": {
|
|
"get": {
|
|
"tags": [
|
|
"Actions"
|
|
],
|
|
"summary": "Returns API.Schema.ActionsContext.ActionRecord related to API.Controllers.DTOs.Manga",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaId",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "List of performed actions",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ActionRecord"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Database error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Actions/RelatedTo/Chapter/{ChapterId}": {
|
|
"get": {
|
|
"tags": [
|
|
"Actions"
|
|
],
|
|
"summary": "Returns API.Schema.ActionsContext.ActionRecord related to API.Controllers.DTOs.Chapter",
|
|
"parameters": [
|
|
{
|
|
"name": "ChapterId",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "List of performed actions",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ActionRecord"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Database error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Chapters/{MangaId}": {
|
|
"get": {
|
|
"tags": [
|
|
"Chapters"
|
|
],
|
|
"summary": "Returns all API.Schema.MangaContext.Chapter of API.Schema.MangaContext.Manga with MangaId",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaId",
|
|
"in": "path",
|
|
"description": "API.Schema.MangaContext.Manga.Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Chapter"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "API.Schema.MangaContext.Manga with MangaId not found",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Chapters/{MangaId}/Downloaded": {
|
|
"get": {
|
|
"tags": [
|
|
"Chapters"
|
|
],
|
|
"summary": "Returns all downloaded API.Controllers.DTOs.Chapter for API.Schema.MangaContext.Manga with MangaId",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaId",
|
|
"in": "path",
|
|
"description": "API.Schema.MangaContext.Manga.Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Chapter"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "API.Schema.MangaContext.Manga with MangaId not found.",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Chapters/{MangaId}/NotDownloaded": {
|
|
"get": {
|
|
"tags": [
|
|
"Chapters"
|
|
],
|
|
"summary": "Returns all API.Controllers.DTOs.Chapter not downloaded for API.Schema.MangaContext.Manga with MangaId",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaId",
|
|
"in": "path",
|
|
"description": "API.Schema.MangaContext.Manga.Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Chapter"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "API.Schema.MangaContext.Manga with MangaId not found.",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Chapters/{MangaId}/LatestAvailable": {
|
|
"get": {
|
|
"tags": [
|
|
"Chapters"
|
|
],
|
|
"summary": "Returns the latest API.Controllers.DTOs.Chapter of requested API.Schema.MangaContext.Manga",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaId",
|
|
"in": "path",
|
|
"description": "API.Schema.MangaContext.Manga.Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"204": {
|
|
"description": "No available chapters"
|
|
},
|
|
"404": {
|
|
"description": "API.Schema.MangaContext.Manga with MangaId not found.",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Chapters/{MangaId}/LatestDownloaded": {
|
|
"get": {
|
|
"tags": [
|
|
"Chapters"
|
|
],
|
|
"summary": "Returns the latest API.Controllers.DTOs.Chapter of requested API.Schema.MangaContext.Manga that is downloaded",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaId",
|
|
"in": "path",
|
|
"description": "API.Schema.MangaContext.Manga.Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Chapter"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"204": {
|
|
"description": "No available chapters"
|
|
},
|
|
"404": {
|
|
"description": "API.Schema.MangaContext.Manga with MangaId not found.",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"412": {
|
|
"description": "Could not retrieve the maximum chapter-number",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"503": {
|
|
"description": "Retry after timeout, updating value"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Chapters/{MangaId}/IgnoreBefore": {
|
|
"patch": {
|
|
"tags": [
|
|
"Chapters"
|
|
],
|
|
"summary": "Configure the API.Controllers.DTOs.Chapter cut-off for API.Schema.MangaContext.Manga",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaId",
|
|
"in": "path",
|
|
"description": "API.Schema.MangaContext.Manga.Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "Threshold (API.Controllers.DTOs.Chapter ChapterNumber)",
|
|
"content": {
|
|
"application/json-patch+json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "number",
|
|
"format": "float"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "number",
|
|
"format": "float"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "number",
|
|
"format": "float"
|
|
}
|
|
},
|
|
"application/*+json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "number",
|
|
"format": "float"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"404": {
|
|
"description": "API.Schema.MangaContext.Manga with MangaId not found.",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"202": {
|
|
"description": ""
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Chapters/WithId/{ChapterId}": {
|
|
"get": {
|
|
"tags": [
|
|
"Chapters"
|
|
],
|
|
"summary": "Returns API.Controllers.DTOs.Chapter with ChapterId",
|
|
"parameters": [
|
|
{
|
|
"name": "ChapterId",
|
|
"in": "path",
|
|
"description": "API.Controllers.DTOs.Chapter.Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Chapter"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "API.Controllers.DTOs.Chapter with ChapterId not found",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Chapters/ConnectorId/{MangaConnectorIdId}": {
|
|
"get": {
|
|
"tags": [
|
|
"Chapters"
|
|
],
|
|
"summary": "Returns the API.Schema.MangaContext.MangaConnectorId`1 with API.Schema.MangaContext.MangaConnectorId`1.Key",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaConnectorIdId",
|
|
"in": "path",
|
|
"description": "Key of API.Schema.MangaContext.MangaConnectorId`1",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MangaConnectorId"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "API.Schema.MangaContext.MangaConnectorId`1 with MangaConnectorIdId not found",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/FileLibrary": {
|
|
"get": {
|
|
"tags": [
|
|
"FileLibrary"
|
|
],
|
|
"summary": "Returns all API.Controllers.DTOs.FileLibrary",
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/FileLibrary"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"FileLibrary"
|
|
],
|
|
"summary": "Creates new API.Controllers.DTOs.FileLibrary",
|
|
"requestBody": {
|
|
"description": "New API.Controllers.DTOs.FileLibrary to add",
|
|
"content": {
|
|
"application/json-patch+json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateLibraryRecord"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateLibraryRecord"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateLibraryRecord"
|
|
}
|
|
},
|
|
"application/*+json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateLibraryRecord"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Created",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"200": {
|
|
"description": "Key of new Library"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/FileLibrary/{FileLibraryId}": {
|
|
"get": {
|
|
"tags": [
|
|
"FileLibrary"
|
|
],
|
|
"summary": "Returns API.Controllers.DTOs.FileLibrary with FileLibraryId",
|
|
"parameters": [
|
|
{
|
|
"name": "FileLibraryId",
|
|
"in": "path",
|
|
"description": "API.Controllers.DTOs.FileLibrary.Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FileLibrary"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "API.Controllers.DTOs.FileLibrary with FileLibraryId not found.",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"FileLibrary"
|
|
],
|
|
"summary": "Changes the !:FileLibraryId.BasePath with FileLibraryId",
|
|
"parameters": [
|
|
{
|
|
"name": "FileLibraryId",
|
|
"in": "path",
|
|
"description": "API.Controllers.DTOs.FileLibrary.Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json-patch+json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PatchFileLibraryRecord"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PatchFileLibraryRecord"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PatchFileLibraryRecord"
|
|
}
|
|
},
|
|
"application/*+json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PatchFileLibraryRecord"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": ""
|
|
},
|
|
"404": {
|
|
"description": "API.Controllers.DTOs.FileLibrary with FileLibraryId not found.",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"FileLibrary"
|
|
],
|
|
"summary": "Deletes the !:FileLibraryId.LibraryName with FileLibraryId",
|
|
"parameters": [
|
|
{
|
|
"name": "FileLibraryId",
|
|
"in": "path",
|
|
"description": "API.Controllers.DTOs.FileLibrary.Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": ""
|
|
},
|
|
"404": {
|
|
"description": "API.Controllers.DTOs.FileLibrary with FileLibraryId not found.",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/LibraryConnector": {
|
|
"get": {
|
|
"tags": [
|
|
"LibraryConnector"
|
|
],
|
|
"summary": "Gets all configured API.Controllers.DTOs.LibraryConnector",
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LibraryConnector"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"LibraryConnector"
|
|
],
|
|
"summary": "Creates a new API.Controllers.DTOs.LibraryConnector",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json-patch+json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateLibraryConnectorRecord"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateLibraryConnectorRecord"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateLibraryConnectorRecord"
|
|
}
|
|
},
|
|
"application/*+json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateLibraryConnectorRecord"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/LibraryConnector/{LibraryConnectorId}": {
|
|
"get": {
|
|
"tags": [
|
|
"LibraryConnector"
|
|
],
|
|
"summary": "Returns API.Controllers.DTOs.LibraryConnector with LibraryConnectorId",
|
|
"parameters": [
|
|
{
|
|
"name": "LibraryConnectorId",
|
|
"in": "path",
|
|
"description": "API.Controllers.DTOs.LibraryConnector.Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LibraryConnector"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "API.Controllers.DTOs.LibraryConnector with LibraryConnectorId not found.",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"LibraryConnector"
|
|
],
|
|
"summary": "Deletes API.Controllers.DTOs.LibraryConnector with LibraryConnectorId",
|
|
"parameters": [
|
|
{
|
|
"name": "LibraryConnectorId",
|
|
"in": "path",
|
|
"description": "ToFileLibrary-Connector-ID",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": ""
|
|
},
|
|
"404": {
|
|
"description": "API.Controllers.DTOs.LibraryConnector with LibraryConnectorId not found.",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Maintenance/CleanupNoDownloadManga": {
|
|
"post": {
|
|
"tags": [
|
|
"Maintenance"
|
|
],
|
|
"summary": "Removes all API.Schema.MangaContext.Manga not marked for Download on any API.MangaConnectors.MangaConnector",
|
|
"responses": {
|
|
"200": {
|
|
"description": ""
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Manga": {
|
|
"get": {
|
|
"tags": [
|
|
"Manga"
|
|
],
|
|
"summary": "Returns all cached API.Controllers.DTOs.Manga",
|
|
"responses": {
|
|
"200": {
|
|
"description": "API.Controllers.DTOs.MinimalManga exert of API.Schema.MangaContext.Manga. Use M:API.Controllers.MangaController.GetManga(System.String) for more information",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MinimalManga"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Manga/Downloading": {
|
|
"get": {
|
|
"tags": [
|
|
"Manga"
|
|
],
|
|
"summary": "Returns all API.Schema.MangaContext.Manga that are being downloaded from at least one API.MangaConnectors.MangaConnector",
|
|
"responses": {
|
|
"200": {
|
|
"description": "API.Controllers.DTOs.MinimalManga exert of API.Schema.MangaContext.Manga. Use M:API.Controllers.MangaController.GetManga(System.String) for more information",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MinimalManga"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Manga/{MangaId}": {
|
|
"get": {
|
|
"tags": [
|
|
"Manga"
|
|
],
|
|
"summary": "Return API.Schema.MangaContext.Manga with MangaId",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaId",
|
|
"in": "path",
|
|
"description": "API.Schema.MangaContext.Manga.Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "API.Controllers.DTOs.Manga with MangaId not found",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Manga"
|
|
],
|
|
"summary": "Delete API.Controllers.DTOs.Manga with MangaId",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaId",
|
|
"in": "path",
|
|
"description": "API.Controllers.DTOs.Manga.Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": ""
|
|
},
|
|
"404": {
|
|
"description": "API.Controllers.DTOs.Manga with MangaId not found",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Manga/{MangaIdFrom}/MergeInto/{MangaIdInto}": {
|
|
"post": {
|
|
"tags": [
|
|
"Manga"
|
|
],
|
|
"summary": "Merge two API.Controllers.DTOs.Manga into one. THIS IS NOT REVERSIBLE!",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaIdFrom",
|
|
"in": "path",
|
|
"description": "API.Controllers.DTOs.Manga.Key of API.Controllers.DTOs.Manga merging data from (getting deleted)",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "MangaIdInto",
|
|
"in": "path",
|
|
"description": "API.Controllers.DTOs.Manga.Key of API.Controllers.DTOs.Manga merging data into",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": ""
|
|
},
|
|
"404": {
|
|
"description": "API.Controllers.DTOs.Manga with MangaIdFrom or MangaIdInto not found",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Manga/{MangaId}/Cover/{CoverSize}": {
|
|
"get": {
|
|
"tags": [
|
|
"Manga"
|
|
],
|
|
"summary": "Returns Cover of API.Controllers.DTOs.Manga with MangaId",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaId",
|
|
"in": "path",
|
|
"description": "API.Controllers.DTOs.Manga.Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "CoverSize",
|
|
"in": "path",
|
|
"description": "Size of the cover returned\n \n - API.Controllers.MangaController.CoverSize.SmallAPI.Constants.ImageSmSize\n - API.Controllers.MangaController.CoverSize.MediumAPI.Constants.ImageMdSize\n - API.Controllers.MangaController.CoverSize.LargeAPI.Constants.ImageLgSize",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CoverSize"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "JPEG Image",
|
|
"content": {
|
|
"image/jpeg; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"204": {
|
|
"description": "Cover not loaded"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "API.Controllers.DTOs.Manga with MangaId not found",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"503": {
|
|
"description": "Retry later, downloading cover"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Manga/{MangaId}/ChangeLibrary/{LibraryId}": {
|
|
"post": {
|
|
"tags": [
|
|
"Manga"
|
|
],
|
|
"summary": "Move API.Controllers.DTOs.Manga to different API.Controllers.DTOs.FileLibrary",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaId",
|
|
"in": "path",
|
|
"description": "API.Controllers.DTOs.Manga.Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "LibraryId",
|
|
"in": "path",
|
|
"description": "API.Controllers.DTOs.FileLibrary.Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"404": {
|
|
"description": "MangaId or LibraryId not found",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"202": {
|
|
"description": "Folder is going to be moved"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Manga/{MangaId}/DownloadFrom/{MangaConnectorName}/{IsRequested}": {
|
|
"patch": {
|
|
"tags": [
|
|
"Manga"
|
|
],
|
|
"summary": "(Un-)Marks API.Controllers.DTOs.Manga as requested for Download from API.MangaConnectors.MangaConnector",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaId",
|
|
"in": "path",
|
|
"description": "API.Controllers.DTOs.Manga with MangaId",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "MangaConnectorName",
|
|
"in": "path",
|
|
"description": "API.MangaConnectors.MangaConnector with MangaConnectorName",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "IsRequested",
|
|
"in": "path",
|
|
"description": "true to mark as requested, false to mark as not-requested",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": ""
|
|
},
|
|
"404": {
|
|
"description": "MangaId or MangaConnectorName not found",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"412": {
|
|
"description": "API.Controllers.DTOs.Manga was not linked to API.MangaConnectors.MangaConnector, so nothing changed",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"428": {
|
|
"description": "API.Controllers.DTOs.Manga is not linked to API.MangaConnectors.MangaConnector yet. Search for API.Controllers.DTOs.Manga on API.MangaConnectors.MangaConnector first (to create a API.Schema.MangaContext.MangaConnectorId`1).",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Manga/{MangaId}/OnMangaConnector/{MangaConnectorName}": {
|
|
"get": {
|
|
"tags": [
|
|
"Manga"
|
|
],
|
|
"summary": "Initiate a search for API.Schema.MangaContext.Manga on a different API.MangaConnectors.MangaConnector",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaId",
|
|
"in": "path",
|
|
"description": "API.Schema.MangaContext.Manga with MangaId",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "MangaConnectorName",
|
|
"in": "path",
|
|
"description": "API.MangaConnectors.MangaConnector.Name",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "API.Controllers.DTOs.MinimalManga exert of API.Schema.MangaContext.Manga",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MinimalManga"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "API.MangaConnectors.MangaConnector with Name not found",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"406": {
|
|
"description": "Not Acceptable",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"412": {
|
|
"description": "API.MangaConnectors.MangaConnector with Name is disabled"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Manga/WithAuthorId/{AuthorId}": {
|
|
"get": {
|
|
"tags": [
|
|
"Manga"
|
|
],
|
|
"summary": "Returns all API.Controllers.DTOs.Manga which where Authored by API.Controllers.DTOs.Author with AuthorId",
|
|
"parameters": [
|
|
{
|
|
"name": "AuthorId",
|
|
"in": "path",
|
|
"description": "API.Controllers.DTOs.Author.Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Manga"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "API.Controllers.DTOs.Author with AuthorId",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Manga/WithTag/{Tag}": {
|
|
"get": {
|
|
"tags": [
|
|
"Manga"
|
|
],
|
|
"summary": "Returns all API.Controllers.DTOs.Manga with !:Tag",
|
|
"parameters": [
|
|
{
|
|
"name": "Tag",
|
|
"in": "path",
|
|
"description": "!:Tag.Tag",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Manga"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "!:Tag not found",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Manga/WithSimilarName/{MangaId}": {
|
|
"get": {
|
|
"tags": [
|
|
"Manga"
|
|
],
|
|
"summary": "Returns API.Schema.MangaContext.Manga with names similar to API.Schema.MangaContext.Manga (identified by MangaId)",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaId",
|
|
"in": "path",
|
|
"description": "Key of API.Schema.MangaContext.Manga",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "API.Schema.MangaContext.Manga with MangaId not found",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Manga/ConnectorId/{MangaConnectorIdId}": {
|
|
"get": {
|
|
"tags": [
|
|
"Manga"
|
|
],
|
|
"summary": "Returns the API.Schema.MangaContext.MangaConnectorId`1 with API.Schema.MangaContext.MangaConnectorId`1.Key",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaConnectorIdId",
|
|
"in": "path",
|
|
"description": "Key of API.Schema.MangaContext.MangaConnectorId`1",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MangaConnectorId"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "API.Schema.MangaContext.MangaConnectorId`1 with MangaConnectorIdId not found",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/MangaConnector": {
|
|
"get": {
|
|
"tags": [
|
|
"MangaConnector"
|
|
],
|
|
"summary": "Get all API.MangaConnectors.MangaConnector (Scanlation-Sites)",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Names of API.MangaConnectors.MangaConnector (Scanlation-Sites)",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MangaConnector"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/MangaConnector/{MangaConnectorName}": {
|
|
"get": {
|
|
"tags": [
|
|
"MangaConnector"
|
|
],
|
|
"summary": "Returns the API.MangaConnectors.MangaConnector (Scanlation-Sites) with the requested Name",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaConnectorName",
|
|
"in": "path",
|
|
"description": "API.MangaConnectors.MangaConnector.Name",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MangaConnector"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "API.Controllers.DTOs.MangaConnector (Scanlation-Sites) with Name not found.",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/MangaConnector/Enabled/{Enabled}": {
|
|
"get": {
|
|
"tags": [
|
|
"MangaConnector"
|
|
],
|
|
"summary": "Get all API.MangaConnectors.MangaConnector (Scanlation-Sites) with Enabled-Status",
|
|
"parameters": [
|
|
{
|
|
"name": "Enabled",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MangaConnector"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/MangaConnector/{MangaConnectorName}/SetEnabled/{Enabled}": {
|
|
"patch": {
|
|
"tags": [
|
|
"MangaConnector"
|
|
],
|
|
"summary": "Enabled or disables API.MangaConnectors.MangaConnector (Scanlation-Sites) with Name",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaConnectorName",
|
|
"in": "path",
|
|
"description": "API.MangaConnectors.MangaConnector.Name",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "Enabled",
|
|
"in": "path",
|
|
"description": "Set true to enable, false to disable",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": ""
|
|
},
|
|
"404": {
|
|
"description": "API.MangaConnectors.MangaConnector (Scanlation-Sites) with Name not found.",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/MetadataFetcher": {
|
|
"get": {
|
|
"tags": [
|
|
"MetadataFetcher"
|
|
],
|
|
"summary": "Get all API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites)",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Names of API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites)",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/MetadataFetcher/Links": {
|
|
"get": {
|
|
"tags": [
|
|
"MetadataFetcher"
|
|
],
|
|
"summary": "Returns all API.Schema.MangaContext.MetadataFetchers.MetadataEntry",
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MetadataEntry"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/MetadataFetcher/Links/{MangaId}": {
|
|
"get": {
|
|
"tags": [
|
|
"MetadataFetcher"
|
|
],
|
|
"summary": "Returns all API.Schema.MangaContext.MetadataFetchers.MetadataEntry for API.Schema.MangaContext.Manga with MangaId",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaId",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MetadataEntry"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error"
|
|
},
|
|
"404": {
|
|
"description": "API.Schema.MangaContext.Manga with MangaId not found"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/MetadataFetcher/{MetadataFetcherName}/SearchManga/{MangaId}": {
|
|
"post": {
|
|
"tags": [
|
|
"MetadataFetcher"
|
|
],
|
|
"summary": "Searches API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites) for Manga-Metadata",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaId",
|
|
"in": "path",
|
|
"description": "API.Schema.MangaContext.Manga.Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "MetadataFetcherName",
|
|
"in": "path",
|
|
"description": "API.Schema.MangaContext.MetadataFetchers.MetadataFetcher.Name",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "Instead of using the MangaId for search on Website, use a specific term",
|
|
"content": {
|
|
"application/json-patch+json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/*+json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MetadataSearchResult"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites) with MetadataFetcherName does not exist",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "API.Schema.MangaContext.Manga with MangaId not found",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/MetadataFetcher/{MetadataFetcherName}/Link/{MangaId}": {
|
|
"post": {
|
|
"tags": [
|
|
"MetadataFetcher"
|
|
],
|
|
"summary": "Links API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites) using Provider-Specific Identifier to API.Schema.MangaContext.Manga",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaId",
|
|
"in": "path",
|
|
"description": "API.Schema.MangaContext.Manga.Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "MetadataFetcherName",
|
|
"in": "path",
|
|
"description": "API.Schema.MangaContext.MetadataFetchers.MetadataFetcher.Name",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "!:MetadataFetcherName-Specific ID",
|
|
"content": {
|
|
"application/json-patch+json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/*+json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MetadataEntry"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites) with MetadataFetcherName does not exist",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "API.Schema.MangaContext.Manga with MangaId not found",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/MetadataFetcher/{MetadataFetcherName}/Unlink/{MangaId}": {
|
|
"post": {
|
|
"tags": [
|
|
"MetadataFetcher"
|
|
],
|
|
"summary": "Un-Links API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites) from API.Schema.MangaContext.Manga",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaId",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "MetadataFetcherName",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": ""
|
|
},
|
|
"400": {
|
|
"description": "API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites) with MetadataFetcherName does not exist",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "API.Schema.MangaContext.Manga with MangaId not found",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"412": {
|
|
"description": "No API.Schema.MangaContext.MetadataFetchers.MetadataEntry linking API.Schema.MangaContext.Manga and API.Schema.MangaContext.MetadataFetchers.MetadataFetcher found",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/NotificationConnector": {
|
|
"get": {
|
|
"tags": [
|
|
"NotificationConnector"
|
|
],
|
|
"summary": "Gets all configured API.Controllers.DTOs.NotificationConnector",
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/NotificationConnector"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"NotificationConnector"
|
|
],
|
|
"summary": "Creates a new API.Controllers.DTOs.NotificationConnector",
|
|
"description": "Formatting placeholders: \"%title\" and \"%text\" can be placed in url, header-values and body and will be replaced when notifications are sent",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json-patch+json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateNotificationConnectorRecord"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateNotificationConnectorRecord"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateNotificationConnectorRecord"
|
|
}
|
|
},
|
|
"application/*+json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateNotificationConnectorRecord"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Created",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"200": {
|
|
"description": "ID of the new API.Controllers.DTOs.NotificationConnector"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/NotificationConnector/{Name}": {
|
|
"get": {
|
|
"tags": [
|
|
"NotificationConnector"
|
|
],
|
|
"summary": "Returns API.Controllers.DTOs.NotificationConnector with requested Name",
|
|
"parameters": [
|
|
{
|
|
"name": "Name",
|
|
"in": "path",
|
|
"description": "API.Controllers.DTOs.NotificationConnector.Name",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NotificationConnector"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "API.Controllers.DTOs.NotificationConnector with Name not found",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"NotificationConnector"
|
|
],
|
|
"summary": "Deletes the API.Controllers.DTOs.NotificationConnector with the requested Name",
|
|
"parameters": [
|
|
{
|
|
"name": "Name",
|
|
"in": "path",
|
|
"description": "API.Controllers.DTOs.NotificationConnector.Name",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": ""
|
|
},
|
|
"404": {
|
|
"description": "API.Controllers.DTOs.NotificationConnector with Name not found",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/NotificationConnector/Gotify": {
|
|
"put": {
|
|
"tags": [
|
|
"NotificationConnector"
|
|
],
|
|
"summary": "Creates a new Gotify-API.Controllers.DTOs.NotificationConnector",
|
|
"description": "Priority needs to be between 0 and 10",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json-patch+json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateGotifyConnectorRecord"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateGotifyConnectorRecord"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateGotifyConnectorRecord"
|
|
}
|
|
},
|
|
"application/*+json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateGotifyConnectorRecord"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Created",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"200": {
|
|
"description": "ID of the new API.Controllers.DTOs.NotificationConnector"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/NotificationConnector/Ntfy": {
|
|
"put": {
|
|
"tags": [
|
|
"NotificationConnector"
|
|
],
|
|
"summary": "Creates a new Ntfy-API.Controllers.DTOs.NotificationConnector",
|
|
"description": "Priority needs to be between 1 and 5",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json-patch+json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateNtfyConnectorRecord"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateNtfyConnectorRecord"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateNtfyConnectorRecord"
|
|
}
|
|
},
|
|
"application/*+json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateNtfyConnectorRecord"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Created",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"200": {
|
|
"description": "ID of the new API.Controllers.DTOs.NotificationConnector"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/NotificationConnector/Pushover": {
|
|
"put": {
|
|
"tags": [
|
|
"NotificationConnector"
|
|
],
|
|
"summary": "Creates a new Pushover-API.Controllers.DTOs.NotificationConnector",
|
|
"description": "https://pushover.net/api",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json-patch+json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreatePushoverConnectorRecord"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreatePushoverConnectorRecord"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreatePushoverConnectorRecord"
|
|
}
|
|
},
|
|
"application/*+json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreatePushoverConnectorRecord"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Created",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"200": {
|
|
"description": "ID of the new API.Controllers.DTOs.NotificationConnector"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Author/{AuthorId}": {
|
|
"get": {
|
|
"tags": [
|
|
"Query"
|
|
],
|
|
"summary": "Returns the API.Controllers.DTOs.Author with AuthorId",
|
|
"parameters": [
|
|
{
|
|
"name": "AuthorId",
|
|
"in": "path",
|
|
"description": "API.Controllers.DTOs.Author.Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Author"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "API.Controllers.DTOs.Author with AuthorId not found",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Search/{MangaConnectorName}/{Query}": {
|
|
"get": {
|
|
"tags": [
|
|
"Search"
|
|
],
|
|
"summary": "Initiate a search for a API.Schema.MangaContext.Manga on API.Controllers.DTOs.MangaConnector with searchTerm",
|
|
"parameters": [
|
|
{
|
|
"name": "MangaConnectorName",
|
|
"in": "path",
|
|
"description": "API.Controllers.DTOs.MangaConnector.Name",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "Query",
|
|
"in": "path",
|
|
"description": "searchTerm",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "API.Controllers.DTOs.MinimalManga exert of API.Schema.MangaContext.Manga",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MinimalManga"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "API.Controllers.DTOs.MangaConnector with Name not found",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"406": {
|
|
"description": "Not Acceptable",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"412": {
|
|
"description": "API.Controllers.DTOs.MangaConnector with Name is disabled"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Search": {
|
|
"get": {
|
|
"tags": [
|
|
"Search"
|
|
],
|
|
"summary": "Returns API.Schema.MangaContext.Manga from the API.Controllers.DTOs.MangaConnector associated with url",
|
|
"parameters": [
|
|
{
|
|
"name": "url",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "API.Controllers.DTOs.MinimalManga exert of API.Schema.MangaContext.Manga.",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MinimalManga"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "API.Schema.MangaContext.Manga not found",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error during Database Operation",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Settings": {
|
|
"get": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Get all API.Tranga.Settings",
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TrangaSettings"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Settings/UserAgent": {
|
|
"get": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Get the current UserAgent used by Tranga",
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Set a new UserAgent",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json-patch+json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/*+json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": ""
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Reset the UserAgent to default",
|
|
"responses": {
|
|
"200": {
|
|
"description": ""
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Settings/ImageCompressionLevel": {
|
|
"get": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Returns Level of Image-Compression for Images",
|
|
"responses": {
|
|
"200": {
|
|
"description": "JPEG ImageCompression-level as Integer",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Settings/ImageCompressionLevel/{level}": {
|
|
"patch": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Set the Image-Compression-Level for Images",
|
|
"parameters": [
|
|
{
|
|
"name": "level",
|
|
"in": "path",
|
|
"description": "100 to disable, 0-99 for JPEG ImageCompression-Level",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": ""
|
|
},
|
|
"400": {
|
|
"description": "Level outside permitted range",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Settings/BWImages": {
|
|
"get": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Get state of Black/White-Image setting",
|
|
"responses": {
|
|
"200": {
|
|
"description": "True if enabled",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Settings/BWImages/{enabled}": {
|
|
"patch": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Enable/Disable conversion of Images to Black and White",
|
|
"parameters": [
|
|
{
|
|
"name": "enabled",
|
|
"in": "path",
|
|
"description": "true to enable",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": ""
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Settings/ChapterNamingScheme": {
|
|
"get": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Gets the Chapter Naming Scheme",
|
|
"description": "Placeholders:\n%M Obj Name\n%V Volume\n%C Chapter\n%T Title\n%A Author (first in list)\n%I Chapter Internal ID\n%i Obj Internal ID\n%Y Year (Obj)\n \n?_(...) replace _ with a value from above:\nEverything inside the braces will only be added if the value of %_ is not null",
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Sets the Chapter Naming Scheme",
|
|
"description": "Placeholders:\n%M Obj Name\n%V Volume\n%C Chapter\n%T Title\n%A Author (first in list)\n%Y Year (Obj)\n \n?_(...) replace _ with a value from above:\nEverything inside the braces will only be added if the value of %_ is not null",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json-patch+json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/*+json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": ""
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Settings/FlareSolverr/Url": {
|
|
"patch": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Sets the FlareSolverr-URL",
|
|
"requestBody": {
|
|
"description": "URL of FlareSolverr-Instance",
|
|
"content": {
|
|
"application/json-patch+json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/*+json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": ""
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Resets the FlareSolverr-URL (HttpClient does not use FlareSolverr anymore)",
|
|
"responses": {
|
|
"200": {
|
|
"description": ""
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Settings/FlareSolverr/Test": {
|
|
"post": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Test FlareSolverr",
|
|
"responses": {
|
|
"200": {
|
|
"description": "FlareSolverr is working!"
|
|
},
|
|
"500": {
|
|
"description": "FlareSolverr is not working"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Settings/DownloadLanguage": {
|
|
"get": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Returns the language in which Manga are downloaded",
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Settings/DownloadLanguage/{Language}": {
|
|
"patch": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Sets the language in which Manga are downloaded",
|
|
"parameters": [
|
|
{
|
|
"name": "Language",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": ""
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Settings/LibraryRefresh": {
|
|
"patch": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Sets the time when Libraries are refreshed",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json-patch+json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PatchLibraryRefreshRecord"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PatchLibraryRefreshRecord"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PatchLibraryRefreshRecord"
|
|
}
|
|
},
|
|
"application/*+json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PatchLibraryRefreshRecord"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": ""
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Worker": {
|
|
"get": {
|
|
"tags": [
|
|
"Worker"
|
|
],
|
|
"summary": "Returns all API.Workers.BaseWorker",
|
|
"responses": {
|
|
"200": {
|
|
"description": "API.Controllers.DTOs.Worker",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Worker"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Worker/State/{State}": {
|
|
"get": {
|
|
"tags": [
|
|
"Worker"
|
|
],
|
|
"summary": "Get all API.Workers.BaseWorker in requested API.Workers.WorkerExecutionState",
|
|
"parameters": [
|
|
{
|
|
"name": "State",
|
|
"in": "path",
|
|
"description": "Requested API.Workers.WorkerExecutionState",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WorkerExecutionState"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Worker"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Worker/{WorkerId}": {
|
|
"get": {
|
|
"tags": [
|
|
"Worker"
|
|
],
|
|
"summary": "Return API.Workers.BaseWorker with WorkerId",
|
|
"parameters": [
|
|
{
|
|
"name": "WorkerId",
|
|
"in": "path",
|
|
"description": "API.Workers.BaseWorker.Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Worker"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "API.Workers.BaseWorker with WorkerId could not be found",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/Worker/{WorkerId}/Stop": {
|
|
"post": {
|
|
"tags": [
|
|
"Worker"
|
|
],
|
|
"summary": "Stops API.Workers.BaseWorker with WorkerId",
|
|
"parameters": [
|
|
{
|
|
"name": "WorkerId",
|
|
"in": "path",
|
|
"description": "API.Workers.BaseWorker.Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"202": {
|
|
"description": "Accepted"
|
|
},
|
|
"404": {
|
|
"description": "API.Workers.BaseWorker with WorkerId could not be found",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"412": {
|
|
"description": "API.Workers.BaseWorker was already not running",
|
|
"content": {
|
|
"text/plain; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
},
|
|
"application/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
},
|
|
"text/json; x-version=2.0": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDetails"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"200": {
|
|
"description": ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"components": {
|
|
"schemas": {
|
|
"ActionRecord": {
|
|
"required": [
|
|
"action",
|
|
"key",
|
|
"performedAt"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"$ref": "#/components/schemas/ActionsEnum"
|
|
},
|
|
"performedAt": {
|
|
"type": "string",
|
|
"description": "<inheritdoc cref=\"P:API.Schema.ActionsContext.ActionRecord.PerformedAt\" />",
|
|
"format": "date-time"
|
|
},
|
|
"mangaId": {
|
|
"type": "string",
|
|
"description": "MangaId if Record is API.Schema.ActionsContext.Actions.Generic.ActionWithMangaRecord",
|
|
"nullable": true
|
|
},
|
|
"chapterId": {
|
|
"type": "string",
|
|
"description": "ChapterId if Record is API.Schema.ActionsContext.Actions.Generic.ActionWithMangaRecord",
|
|
"nullable": true
|
|
},
|
|
"key": {
|
|
"maxLength": 64,
|
|
"minLength": 16,
|
|
"type": "string",
|
|
"description": "Unique Identifier of the DTO"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ActionsEnum": {
|
|
"enum": [
|
|
"Startup",
|
|
"ChapterDownloaded",
|
|
"ChaptersRetrieved",
|
|
"CoverDownloaded",
|
|
"DataMoved",
|
|
"LibraryMoved",
|
|
"MetadataUpdated"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"AltTitle": {
|
|
"required": [
|
|
"language",
|
|
"title"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"language": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "Language of the Title"
|
|
},
|
|
"title": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "Title"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"description": "API.Schema.MangaContext.AltTitle DTO"
|
|
},
|
|
"Author": {
|
|
"required": [
|
|
"key",
|
|
"name"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "Name of the Author."
|
|
},
|
|
"key": {
|
|
"maxLength": 64,
|
|
"minLength": 16,
|
|
"type": "string",
|
|
"description": "Unique Identifier of the DTO"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"description": "The API.Schema.MangaContext.Author DTO"
|
|
},
|
|
"Chapter": {
|
|
"required": [
|
|
"chapterNumber",
|
|
"downloaded",
|
|
"key",
|
|
"mangaConnectorIds",
|
|
"mangaId",
|
|
"title",
|
|
"volume"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"mangaId": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "Identifier of the Manga this Chapter belongs to"
|
|
},
|
|
"volume": {
|
|
"type": "integer",
|
|
"description": "Volume number",
|
|
"format": "int32"
|
|
},
|
|
"chapterNumber": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "Chapter number"
|
|
},
|
|
"title": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "Title of the Chapter"
|
|
},
|
|
"downloaded": {
|
|
"type": "boolean",
|
|
"description": "Whether Chapter is Downloaded (on disk)"
|
|
},
|
|
"mangaConnectorIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MangaConnectorId"
|
|
},
|
|
"description": "Ids of the Manga on MangaConnectors"
|
|
},
|
|
"fileName": {
|
|
"type": "string",
|
|
"description": "Filename of the archive",
|
|
"nullable": true
|
|
},
|
|
"key": {
|
|
"maxLength": 64,
|
|
"minLength": 16,
|
|
"type": "string",
|
|
"description": "Unique Identifier of the DTO"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"description": "API.Schema.MangaContext.Chapter DTO"
|
|
},
|
|
"CoverSize": {
|
|
"enum": [
|
|
"Original",
|
|
"Large",
|
|
"Medium",
|
|
"Small"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"CreateGotifyConnectorRecord": {
|
|
"required": [
|
|
"appToken",
|
|
"name",
|
|
"priority",
|
|
"url"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The Name of the Notification Connector"
|
|
},
|
|
"url": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The Url of the Instance",
|
|
"format": "uri"
|
|
},
|
|
"appToken": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The Apptoken used for authentication"
|
|
},
|
|
"priority": {
|
|
"type": "integer",
|
|
"description": "The Priority of Notifications",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CreateLibraryConnectorRecord": {
|
|
"required": [
|
|
"libraryType",
|
|
"password",
|
|
"url",
|
|
"username"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"libraryType": {
|
|
"$ref": "#/components/schemas/LibraryType"
|
|
},
|
|
"url": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The Url of the Library instance",
|
|
"format": "uri"
|
|
},
|
|
"username": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The Username to authenticate to the Library instance"
|
|
},
|
|
"password": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The Password to authenticate to the Library instance"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CreateLibraryRecord": {
|
|
"required": [
|
|
"basePath",
|
|
"libraryName"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"basePath": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The directory Path of the library"
|
|
},
|
|
"libraryName": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The Name of the library"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CreateNotificationConnectorRecord": {
|
|
"required": [
|
|
"body",
|
|
"headers",
|
|
"httpMethod",
|
|
"name",
|
|
"url"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The Name of the Notification Connector"
|
|
},
|
|
"url": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The Url of the Instance",
|
|
"format": "uri"
|
|
},
|
|
"httpMethod": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The HTTP Request Method to use for notifications"
|
|
},
|
|
"body": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The Request Body to use to send notifications"
|
|
},
|
|
"headers": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"description": "The Request Headers to use to send notifications"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CreateNtfyConnectorRecord": {
|
|
"required": [
|
|
"name",
|
|
"password",
|
|
"priority",
|
|
"topic",
|
|
"url",
|
|
"username"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The Name of the Notification Connector"
|
|
},
|
|
"url": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The Url of the Instance",
|
|
"format": "uri"
|
|
},
|
|
"priority": {
|
|
"type": "integer",
|
|
"description": "The Priority of Notifications",
|
|
"format": "int32"
|
|
},
|
|
"username": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The Username used for authentication"
|
|
},
|
|
"password": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The Password used for authentication"
|
|
},
|
|
"topic": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The Topic of Notifications"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CreatePushoverConnectorRecord": {
|
|
"required": [
|
|
"appToken",
|
|
"name",
|
|
"username"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The Name of the Notification Connector"
|
|
},
|
|
"appToken": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The Apptoken used for authentication"
|
|
},
|
|
"username": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The Username used for authentication"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"FileLibrary": {
|
|
"required": [
|
|
"basePath",
|
|
"key",
|
|
"libraryName"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"basePath": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The directory Path of the library"
|
|
},
|
|
"libraryName": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The Name of the library"
|
|
},
|
|
"key": {
|
|
"maxLength": 64,
|
|
"minLength": 16,
|
|
"type": "string",
|
|
"description": "Unique Identifier of the DTO"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"Interval": {
|
|
"type": "object",
|
|
"properties": {
|
|
"start": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"end": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"LibraryConnector": {
|
|
"required": [
|
|
"baseUrl",
|
|
"key",
|
|
"type"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"baseUrl": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The Url of the Library instance",
|
|
"format": "uri"
|
|
},
|
|
"type": {
|
|
"$ref": "#/components/schemas/LibraryType"
|
|
},
|
|
"key": {
|
|
"maxLength": 64,
|
|
"minLength": 16,
|
|
"type": "string",
|
|
"description": "Unique Identifier of the DTO"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"LibraryRefreshSetting": {
|
|
"enum": [
|
|
"AfterAllFinished",
|
|
"AfterMangaFinished",
|
|
"AfterEveryChapter",
|
|
"WhileDownloading"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"LibraryType": {
|
|
"enum": [
|
|
"Komga",
|
|
"Kavita"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"Link": {
|
|
"required": [
|
|
"key",
|
|
"provider",
|
|
"url"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"provider": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "Name of the Provider"
|
|
},
|
|
"url": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "Url"
|
|
},
|
|
"key": {
|
|
"maxLength": 64,
|
|
"minLength": 16,
|
|
"type": "string",
|
|
"description": "Unique Identifier of the DTO"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"description": "API.Schema.MangaContext.Link DTO"
|
|
},
|
|
"Manga": {
|
|
"required": [
|
|
"altTitles",
|
|
"authors",
|
|
"chapterIds",
|
|
"description",
|
|
"fileLibraryId",
|
|
"ignoreChaptersBefore",
|
|
"key",
|
|
"links",
|
|
"mangaConnectorIds",
|
|
"name",
|
|
"releaseStatus",
|
|
"tags"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"ignoreChaptersBefore": {
|
|
"type": "number",
|
|
"description": "Chapter cutoff for Downloads (Chapters before this will not be downloaded)",
|
|
"format": "float"
|
|
},
|
|
"year": {
|
|
"type": "integer",
|
|
"description": "Release Year",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"originalLanguage": {
|
|
"type": "string",
|
|
"description": "Release Language",
|
|
"nullable": true
|
|
},
|
|
"chapterIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "Keys of ChapterDTOs"
|
|
},
|
|
"authors": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Author"
|
|
},
|
|
"description": "Author-names"
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "Manga Tags"
|
|
},
|
|
"links": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Link"
|
|
},
|
|
"description": "Links for more Metadata"
|
|
},
|
|
"altTitles": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AltTitle"
|
|
},
|
|
"description": "Alt Titles of Manga"
|
|
},
|
|
"fileLibraryId": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "Id of the Library the Manga gets downloaded to"
|
|
},
|
|
"name": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "Name of the Manga"
|
|
},
|
|
"description": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "Description of the Manga"
|
|
},
|
|
"releaseStatus": {
|
|
"$ref": "#/components/schemas/MangaReleaseStatus"
|
|
},
|
|
"mangaConnectorIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MangaConnectorId"
|
|
},
|
|
"description": "Ids of the Manga on MangaConnectors"
|
|
},
|
|
"key": {
|
|
"maxLength": 64,
|
|
"minLength": 16,
|
|
"type": "string",
|
|
"description": "Unique Identifier of the DTO"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"description": "API.Schema.MangaContext.Manga DTO"
|
|
},
|
|
"MangaConnector": {
|
|
"required": [
|
|
"enabled",
|
|
"iconUrl",
|
|
"key",
|
|
"supportedLanguages"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Whether Connector is used for Searches and Downloads"
|
|
},
|
|
"supportedLanguages": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "Languages supported by the Connector"
|
|
},
|
|
"iconUrl": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "Url of the Website Icon"
|
|
},
|
|
"key": {
|
|
"maxLength": 64,
|
|
"minLength": 16,
|
|
"type": "string",
|
|
"description": "Unique Identifier of the DTO"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"MangaConnectorId": {
|
|
"required": [
|
|
"foreignKey",
|
|
"key",
|
|
"mangaConnectorName",
|
|
"useForDownload"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"mangaConnectorName": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "Name of the Connector"
|
|
},
|
|
"foreignKey": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "Key of the referenced DTO"
|
|
},
|
|
"websiteUrl": {
|
|
"type": "string",
|
|
"description": "Website Link for reference, if any",
|
|
"nullable": true
|
|
},
|
|
"useForDownload": {
|
|
"type": "boolean",
|
|
"description": "Whether this Link is used for downloads"
|
|
},
|
|
"key": {
|
|
"maxLength": 64,
|
|
"minLength": 16,
|
|
"type": "string",
|
|
"description": "Unique Identifier of the DTO"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"description": "API.Schema.MangaContext.MangaConnectorId`1 DTO"
|
|
},
|
|
"MangaReleaseStatus": {
|
|
"enum": [
|
|
"Continuing",
|
|
"Completed",
|
|
"OnHiatus",
|
|
"Cancelled",
|
|
"Unreleased"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"MetadataEntry": {
|
|
"type": "object",
|
|
"properties": {
|
|
"mangaId": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"metadataFetcherName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"identifier": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"MetadataSearchResult": {
|
|
"required": [
|
|
"coverUrl",
|
|
"description",
|
|
"identifier",
|
|
"name",
|
|
"url"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"identifier": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "Identifier specific to the MetadataFetcher"
|
|
},
|
|
"name": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "Name of the Manga"
|
|
},
|
|
"url": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "Url to the result"
|
|
},
|
|
"description": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "Description of the Manga"
|
|
},
|
|
"coverUrl": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "Url to the cover if available"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"MinimalManga": {
|
|
"required": [
|
|
"description",
|
|
"key",
|
|
"mangaConnectorIds",
|
|
"name",
|
|
"releaseStatus"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "Name of the Manga"
|
|
},
|
|
"description": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "Description of the Manga"
|
|
},
|
|
"releaseStatus": {
|
|
"$ref": "#/components/schemas/MangaReleaseStatus"
|
|
},
|
|
"mangaConnectorIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MangaConnectorId"
|
|
},
|
|
"description": "Ids of the Manga on MangaConnectors"
|
|
},
|
|
"key": {
|
|
"maxLength": 64,
|
|
"minLength": 16,
|
|
"type": "string",
|
|
"description": "Unique Identifier of the DTO"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"description": "Shortened Version of API.Controllers.DTOs.Manga"
|
|
},
|
|
"NotificationConnector": {
|
|
"required": [
|
|
"body",
|
|
"headers",
|
|
"httpMethod",
|
|
"key",
|
|
"name",
|
|
"url"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The Name of the Notification Connector"
|
|
},
|
|
"url": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The Url of the Instance",
|
|
"format": "uri"
|
|
},
|
|
"httpMethod": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The HTTP Request Method to use for notifications"
|
|
},
|
|
"body": {
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "The Request Body to use to send notifications"
|
|
},
|
|
"headers": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"description": "The Request Headers to use to send notifications"
|
|
},
|
|
"key": {
|
|
"maxLength": 64,
|
|
"minLength": 16,
|
|
"type": "string",
|
|
"description": "Unique Identifier of the DTO"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"PatchFileLibraryRecord": {
|
|
"required": [
|
|
"name",
|
|
"path"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"path": {
|
|
"type": "string",
|
|
"description": "Directory Path",
|
|
"nullable": true
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "Library Name",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"PatchLibraryRefreshRecord": {
|
|
"required": [
|
|
"setting"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"setting": {
|
|
"$ref": "#/components/schemas/LibraryRefreshSetting"
|
|
},
|
|
"refreshLibraryWhileDownloadingEveryMinutes": {
|
|
"type": "integer",
|
|
"description": "When API.Workers.LibraryRefreshSetting.WhileDownloading is selected, update the time between refreshes",
|
|
"format": "int32",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ProblemDetails": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"status": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"detail": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"instance": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": { }
|
|
},
|
|
"TrangaSettings": {
|
|
"type": "object",
|
|
"properties": {
|
|
"defaultDownloadLocation": {
|
|
"type": "string",
|
|
"nullable": true,
|
|
"readOnly": true
|
|
},
|
|
"userAgent": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"imageCompression": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"blackWhiteImages": {
|
|
"type": "boolean"
|
|
},
|
|
"flareSolverrUrl": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"chapterNamingScheme": {
|
|
"type": "string",
|
|
"description": "Placeholders:\n%M Obj Name\n%V Volume\n%C Chapter\n%T Title\n%A Author (first in list)\n%I Chapter Internal ID\n%i Obj Internal ID\n%Y Year (Obj)\n \n?_(...) replace _ with a value from above:\nEverything inside the braces will only be added if the value of %_ is not null",
|
|
"nullable": true
|
|
},
|
|
"workCycleTimeoutMs": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"downloadLanguage": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"maxConcurrentDownloads": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"maxConcurrentWorkers": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryRefreshSetting": {
|
|
"$ref": "#/components/schemas/LibraryRefreshSetting"
|
|
},
|
|
"refreshLibraryWhileDownloadingEveryMinutes": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"Worker": {
|
|
"required": [
|
|
"dependencies",
|
|
"dependenciesFulfilled",
|
|
"key",
|
|
"missingDependencies",
|
|
"state"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"dependencies": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "Workers this worker depends on having ran."
|
|
},
|
|
"missingDependencies": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "Workers that have not yet ran, that need to run for this Worker to run."
|
|
},
|
|
"dependenciesFulfilled": {
|
|
"type": "boolean",
|
|
"description": "Worker can run."
|
|
},
|
|
"state": {
|
|
"$ref": "#/components/schemas/WorkerExecutionState"
|
|
},
|
|
"key": {
|
|
"maxLength": 64,
|
|
"minLength": 16,
|
|
"type": "string",
|
|
"description": "Unique Identifier of the DTO"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"description": "API.Workers.BaseWorker DTO"
|
|
},
|
|
"WorkerExecutionState": {
|
|
"enum": [
|
|
"Failed",
|
|
"Cancelled",
|
|
"Created",
|
|
"Waiting",
|
|
"Running",
|
|
"Completed"
|
|
],
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
} |