mirror of
https://github.com/Kareadita/Kavita.git
synced 2026-04-01 23:04:25 -04:00
32094 lines
789 KiB
JSON
32094 lines
789 KiB
JSON
{
|
|
"openapi": "3.0.4",
|
|
"info": {
|
|
"title": "Kavita",
|
|
"description": "Kavita provides a set of APIs that are authenticated by JWT. JWT token can be copied from local storage. Assume all fields of a payload are required. Built against v0.8.9.29",
|
|
"license": {
|
|
"name": "GPL-3.0",
|
|
"url": "https://github.com/Kareadita/Kavita/blob/develop/LICENSE"
|
|
},
|
|
"version": "0.8.9.29"
|
|
},
|
|
"servers": [
|
|
{
|
|
"url": "{protocol}://{hostpath}",
|
|
"variables": {
|
|
"protocol": {
|
|
"default": "http",
|
|
"enum": [
|
|
"http",
|
|
"https"
|
|
]
|
|
},
|
|
"hostpath": {
|
|
"default": "localhost:5000"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"paths": {
|
|
"/api/Account/oidc-authenticated": {
|
|
"get": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Returns true if OIDC authentication cookies are present and the Kavita.Server.Extensions.IdentityServiceExtensions.OpenIdConnect\nscheme has been registered",
|
|
"description": "Makes no guarantee about their validity",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/clear-oidc-link": {
|
|
"post": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Remove the OIDC link for the authenticated user. This action will also remove the authentication cookie.\nThe caller should take note and redirect to login if no other authentication is currently present (I.e. JWT)",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account": {
|
|
"get": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Returns the current user, as it would from login",
|
|
"description": "Does not return tokens for the user",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/reset-password": {
|
|
"post": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Update a user's password",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ResetPasswordDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ResetPasswordDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ResetPasswordDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/register": {
|
|
"post": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Register the first user (admin) on the server. Will not do anything if an admin is already confirmed",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RegisterDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RegisterDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RegisterDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/login": {
|
|
"post": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Perform a login. Will send JWT Token of the logged in user back.",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LoginDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LoginDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LoginDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/refresh-account": {
|
|
"get": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Returns an up-to-date user account",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/refresh-token": {
|
|
"post": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Refreshes the user's JWT token",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TokenRequestDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TokenRequestDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TokenRequestDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TokenRequestDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TokenRequestDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TokenRequestDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/roles": {
|
|
"get": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Get All Roles back. See Kavita.Models.Constants.PolicyConstants",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/update/email": {
|
|
"post": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Initiates the flow to update a user's email address.\n \nIf email is not setup, then the email address is not changed in this API. A confirmation link is sent/dumped which will\nvalidate the email. It must be confirmed for the email to update.",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateEmailDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateEmailDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateEmailDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InviteUserResponse"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InviteUserResponse"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InviteUserResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/update/age-restriction": {
|
|
"post": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Change the Age Rating restriction for the user",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateAgeRestrictionDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateAgeRestrictionDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateAgeRestrictionDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/update": {
|
|
"post": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Update the user account. This can only affect Username, Email (will require confirming), Roles, and Library access.",
|
|
"description": "Users who's Kavita.Models.Entities.User.AppUser.IdentityProvider is not Kavita.Models.Entities.Enums.IdentityProvider.Kavita cannot be edited if Kavita.Models.DTOs.Settings.OidcConfigDto.SyncUserSettings is true",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateUserDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateUserDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateUserDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/invite-url": {
|
|
"get": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Requests the Invite Url for the AppUserId. Will return error if user is already validated.",
|
|
"parameters": [
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "withBaseUrl",
|
|
"in": "query",
|
|
"description": "Include the \"https://ip:port/\" in the generated link",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/invite": {
|
|
"post": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Invites a user to the server. Will generate a setup link for continuing setup. If email is not setup, a link will be presented to user to continue setup.",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InviteUserDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InviteUserDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InviteUserDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/confirm-email": {
|
|
"post": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Last step in authentication flow, confirms the email token for email",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfirmEmailDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfirmEmailDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfirmEmailDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/confirm-email-update": {
|
|
"post": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Final step in email update change. Given a confirmation token and the email, this will finish the email change.",
|
|
"description": "This will force connected clients to re-authenticate",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfirmEmailUpdateDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfirmEmailUpdateDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfirmEmailUpdateDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/confirm-password-reset": {
|
|
"post": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfirmPasswordResetDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfirmPasswordResetDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfirmPasswordResetDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/forgot-password": {
|
|
"post": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Will send user a link to update their password to their email or prompt them if not accessible",
|
|
"parameters": [
|
|
{
|
|
"name": "email",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/email-confirmed": {
|
|
"get": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/confirm-migration-email": {
|
|
"post": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfirmMigrationEmailDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfirmMigrationEmailDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfirmMigrationEmailDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/resend-confirmation-email": {
|
|
"post": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Resend an invite to a user already invited",
|
|
"parameters": [
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InviteUserResponse"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InviteUserResponse"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InviteUserResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/opds-url": {
|
|
"get": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Returns the OPDS url for this user",
|
|
"parameters": [
|
|
{
|
|
"name": "authKeyName",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/is-email-valid": {
|
|
"get": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Is the user's current email valid or not",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/auth-keys": {
|
|
"get": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Returns all Auth Keys with the account",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AuthKeyDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AuthKeyDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AuthKeyDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/rotate-auth-key": {
|
|
"post": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Rotate the Auth Key",
|
|
"parameters": [
|
|
{
|
|
"name": "authKeyId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RotateAuthKeyRequestDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RotateAuthKeyRequestDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RotateAuthKeyRequestDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AuthKeyDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AuthKeyDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AuthKeyDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/create-auth-key": {
|
|
"post": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Creates a new Auth Key for a user.",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RotateAuthKeyRequestDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RotateAuthKeyRequestDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RotateAuthKeyRequestDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AuthKeyDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AuthKeyDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AuthKeyDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Account/auth-key": {
|
|
"delete": {
|
|
"tags": [
|
|
"Account"
|
|
],
|
|
"summary": "Delete the Auth Key",
|
|
"parameters": [
|
|
{
|
|
"name": "authKeyId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Activity/current": {
|
|
"get": {
|
|
"tags": [
|
|
"Activity"
|
|
],
|
|
"summary": "Returns active reading sessions on the Server",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadingSessionDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadingSessionDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadingSessionDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Admin/exists": {
|
|
"get": {
|
|
"tags": [
|
|
"Admin"
|
|
],
|
|
"summary": "Checks if an admin exists on the system. This is essentially a check to validate if the system has been set up.",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Annotation/all-filtered": {
|
|
"post": {
|
|
"tags": [
|
|
"Annotation"
|
|
],
|
|
"summary": "Returns a list of annotations for browsing",
|
|
"parameters": [
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BrowseAnnotationFilterDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BrowseAnnotationFilterDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BrowseAnnotationFilterDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Annotation/all": {
|
|
"get": {
|
|
"tags": [
|
|
"Annotation"
|
|
],
|
|
"summary": "Returns the annotations for the given chapter",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Annotation/all-for-series": {
|
|
"get": {
|
|
"tags": [
|
|
"Annotation"
|
|
],
|
|
"summary": "Returns all annotations by Series",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Annotation/{annotationId}": {
|
|
"get": {
|
|
"tags": [
|
|
"Annotation"
|
|
],
|
|
"summary": "Returns the Annotation by Id. User must have access to annotation.",
|
|
"parameters": [
|
|
{
|
|
"name": "annotationId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Annotation/create": {
|
|
"post": {
|
|
"tags": [
|
|
"Annotation"
|
|
],
|
|
"summary": "Create a new Annotation for the user against a Chapter",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Annotation/update": {
|
|
"post": {
|
|
"tags": [
|
|
"Annotation"
|
|
],
|
|
"summary": "Update the modifiable fields (Spoiler, highlight slot, and comment) for an annotation",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Annotation/like": {
|
|
"post": {
|
|
"tags": [
|
|
"Annotation"
|
|
],
|
|
"summary": "Adds a like for the currently authenticated user if not already from the annotations with given ids",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Annotation/unlike": {
|
|
"post": {
|
|
"tags": [
|
|
"Annotation"
|
|
],
|
|
"summary": "Removes likes for the currently authenticated user if present from the annotations with given ids",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Annotation": {
|
|
"delete": {
|
|
"tags": [
|
|
"Annotation"
|
|
],
|
|
"summary": "Delete the annotation for the user",
|
|
"parameters": [
|
|
{
|
|
"name": "annotationId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Annotation/bulk-delete": {
|
|
"post": {
|
|
"tags": [
|
|
"Annotation"
|
|
],
|
|
"summary": "Removes annotations in bulk. Requires every annotation to be owned by the authenticated user",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Annotation/export-filter": {
|
|
"post": {
|
|
"tags": [
|
|
"Annotation"
|
|
],
|
|
"summary": "Exports annotations for the given users",
|
|
"parameters": [
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BrowseAnnotationFilterDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BrowseAnnotationFilterDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BrowseAnnotationFilterDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Annotation/export": {
|
|
"post": {
|
|
"tags": [
|
|
"Annotation"
|
|
],
|
|
"summary": "Exports Annotations for the User",
|
|
"requestBody": {
|
|
"description": "Export annotations with the given ids",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Book/{chapterId}/book-info": {
|
|
"get": {
|
|
"tags": [
|
|
"Book"
|
|
],
|
|
"summary": "Retrieves information for the PDF and Epub reader. This will cache the file.",
|
|
"description": "This only applies to Epub or PDF files",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BookInfoDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BookInfoDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BookInfoDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Book/{chapterId}/book-resources": {
|
|
"get": {
|
|
"tags": [
|
|
"Book"
|
|
],
|
|
"summary": "This is an entry point to fetch resources from within an epub chapter/book.",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "file",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Book/{chapterId}/chapters": {
|
|
"get": {
|
|
"tags": [
|
|
"Book"
|
|
],
|
|
"summary": "This will return a list of mappings from ID -> page num. ID will be the xhtml key and page num will be the reading order\nthis is used to rewrite anchors in the book text so that we always load properly in our reader.",
|
|
"description": "This is essentially building the table of contents",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BookChapterItem"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BookChapterItem"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BookChapterItem"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Book/{chapterId}/book-page": {
|
|
"get": {
|
|
"tags": [
|
|
"Book"
|
|
],
|
|
"summary": "This returns a single page within the epub book. All html will be rewritten to be scoped within our reader,\nall css is scoped, etc.",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Cbl/file-import": {
|
|
"post": {
|
|
"tags": [
|
|
"Cbl"
|
|
],
|
|
"summary": "Saves an uploaded CBL file to disk without importing. Returns the saved file info.",
|
|
"requestBody": {
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"cblFile": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
}
|
|
}
|
|
},
|
|
"encoding": {
|
|
"cblFile": {
|
|
"style": "form"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblSavedFileDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblSavedFileDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblSavedFileDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Cbl/upload-cbl-file": {
|
|
"post": {
|
|
"tags": [
|
|
"Cbl"
|
|
],
|
|
"summary": "Downloads a CBL file from a URL and saves it to disk without importing.",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadUrlDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadUrlDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadUrlDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblSavedFileDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblSavedFileDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblSavedFileDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Cbl/repo-import": {
|
|
"post": {
|
|
"tags": [
|
|
"Cbl"
|
|
],
|
|
"summary": "Downloads selected CBL files from the GitHub repo and saves them to disk without importing.",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblRepoImportRequestDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblRepoImportRequestDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblRepoImportRequestDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/CblSavedFileDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/CblSavedFileDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/CblSavedFileDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Cbl/re-validate": {
|
|
"post": {
|
|
"tags": [
|
|
"Cbl"
|
|
],
|
|
"summary": "Validates an already-saved CBL file on disk. Called by the import modal after remap rule changes.",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblReValidateRequestDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblReValidateRequestDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblReValidateRequestDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblImportSummaryDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblImportSummaryDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblImportSummaryDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Cbl/finalize-import": {
|
|
"post": {
|
|
"tags": [
|
|
"Cbl"
|
|
],
|
|
"summary": "Finalizes the import of a saved CBL file with user decisions",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblFinalizeRequestDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblFinalizeRequestDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblFinalizeRequestDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblImportSummaryDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblImportSummaryDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblImportSummaryDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Cbl/remap-rules": {
|
|
"get": {
|
|
"tags": [
|
|
"Cbl"
|
|
],
|
|
"summary": "Returns all remap rules accessible to the current user (own rules + global/admin rules).",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/RemapRuleDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/RemapRuleDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/RemapRuleDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Cbl"
|
|
],
|
|
"summary": "Creates a new series-level remap rule.",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateRemapRuleDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateRemapRuleDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateRemapRuleDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RemapRuleDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RemapRuleDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RemapRuleDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Cbl/remap-rules/all": {
|
|
"get": {
|
|
"tags": [
|
|
"Cbl"
|
|
],
|
|
"summary": "Admin-only: returns all rules across all users.",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/RemapRuleDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/RemapRuleDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/RemapRuleDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Cbl/remap-rules/{id}/promote": {
|
|
"post": {
|
|
"tags": [
|
|
"Cbl"
|
|
],
|
|
"summary": "Promotes a remap rule to global scope. Admin-only.",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RemapRuleDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RemapRuleDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RemapRuleDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Cbl/remap-rules/{id}/demote": {
|
|
"post": {
|
|
"tags": [
|
|
"Cbl"
|
|
],
|
|
"summary": "Demotes a global remap rule back to user-scoped. Admin-only.",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RemapRuleDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RemapRuleDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RemapRuleDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Cbl/remap-rules/{id}": {
|
|
"put": {
|
|
"tags": [
|
|
"Cbl"
|
|
],
|
|
"summary": "Updates a remap rule with issue-level detail (volume/chapter).",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateRemapRuleDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateRemapRuleDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateRemapRuleDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RemapRuleDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RemapRuleDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RemapRuleDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Cbl"
|
|
],
|
|
"summary": "Deletes a remap rule. Users can only delete their own rules.",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Cbl/browse": {
|
|
"get": {
|
|
"tags": [
|
|
"Cbl"
|
|
],
|
|
"summary": "Provides the browse CBL Repo interface. Requires Download role.",
|
|
"parameters": [
|
|
{
|
|
"name": "path",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string",
|
|
"default": ""
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblRepoBrowseResultDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblRepoBrowseResultDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CblRepoBrowseResultDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Chapter": {
|
|
"get": {
|
|
"tags": [
|
|
"Chapter"
|
|
],
|
|
"summary": "Gets a single chapter",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChapterDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChapterDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChapterDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Chapter"
|
|
],
|
|
"summary": "Removes a Chapter",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Chapter/delete-multiple": {
|
|
"post": {
|
|
"tags": [
|
|
"Chapter"
|
|
],
|
|
"summary": "Deletes multiple chapters and any volumes with no leftover chapters",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "The ID of the series",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "The IDs of the chapters to be deleted",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeleteChaptersDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeleteChaptersDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeleteChaptersDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Chapter/update": {
|
|
"post": {
|
|
"tags": [
|
|
"Chapter"
|
|
],
|
|
"summary": "Update chapter metadata",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateChapterDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateChapterDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateChapterDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Chapter/chapter-detail-plus": {
|
|
"get": {
|
|
"tags": [
|
|
"Chapter"
|
|
],
|
|
"summary": "Returns Ratings and Reviews for an individual Chapter",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChapterDetailPlusDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChapterDetailPlusDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChapterDetailPlusDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Collection": {
|
|
"get": {
|
|
"tags": [
|
|
"Collection"
|
|
],
|
|
"summary": "Returns all Collection tags for a given User",
|
|
"parameters": [
|
|
{
|
|
"name": "ownedOnly",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AppUserCollectionDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AppUserCollectionDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AppUserCollectionDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Collection"
|
|
],
|
|
"summary": "Removes the collection tag from the user",
|
|
"parameters": [
|
|
{
|
|
"name": "tagId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Collection/single": {
|
|
"get": {
|
|
"tags": [
|
|
"Collection"
|
|
],
|
|
"summary": "Returns a single Collection tag by Id for a given user",
|
|
"parameters": [
|
|
{
|
|
"name": "collectionId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AppUserCollectionDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AppUserCollectionDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AppUserCollectionDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Collection/all-series": {
|
|
"get": {
|
|
"tags": [
|
|
"Collection"
|
|
],
|
|
"summary": "Returns all collections that contain the Series for the user with the option to allow for promoted collections (non-user owned)",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "ownedOnly",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AppUserCollectionDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AppUserCollectionDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AppUserCollectionDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Collection/name-exists": {
|
|
"get": {
|
|
"tags": [
|
|
"Collection"
|
|
],
|
|
"summary": "Checks if a collection exists with the name",
|
|
"parameters": [
|
|
{
|
|
"name": "name",
|
|
"in": "query",
|
|
"description": "If empty or null, will return true as that is invalid",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Collection/update": {
|
|
"post": {
|
|
"tags": [
|
|
"Collection"
|
|
],
|
|
"summary": "Updates an existing tag with a new title, promotion status, and summary.\n<remarks>UI does not contain controls to update title</remarks>",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AppUserCollectionDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AppUserCollectionDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AppUserCollectionDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AppUserCollectionDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AppUserCollectionDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AppUserCollectionDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Collection/promote-multiple": {
|
|
"post": {
|
|
"tags": [
|
|
"Collection"
|
|
],
|
|
"summary": "Promote/UnPromote multiple collections in one go. Will only update the authenticated user's collections and will only work if the user has promotion role",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PromoteCollectionsDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PromoteCollectionsDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PromoteCollectionsDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Collection/delete-multiple": {
|
|
"post": {
|
|
"tags": [
|
|
"Collection"
|
|
],
|
|
"summary": "Delete multiple collections in one go",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeleteCollectionsDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeleteCollectionsDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeleteCollectionsDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Collection/update-for-series": {
|
|
"post": {
|
|
"tags": [
|
|
"Collection"
|
|
],
|
|
"summary": "Adds multiple series to a collection. If tag id is 0, this will create a new tag.",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CollectionTagBulkAddDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CollectionTagBulkAddDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CollectionTagBulkAddDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Collection/update-series": {
|
|
"post": {
|
|
"tags": [
|
|
"Collection"
|
|
],
|
|
"summary": "For a given tag, update the summary if summary has changed and remove a set of series from the tag.",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateSeriesForTagDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateSeriesForTagDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateSeriesForTagDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Collection/mal-stacks": {
|
|
"get": {
|
|
"tags": [
|
|
"Collection"
|
|
],
|
|
"summary": "For the authenticated user, if they have an active Kavita+ subscription and a MAL username on record,\nfetch their Mal interest stacks (including restacks)",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MalStackDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MalStackDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MalStackDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Collection/import-stack": {
|
|
"post": {
|
|
"tags": [
|
|
"Collection"
|
|
],
|
|
"summary": "Imports a MAL Stack into Kavita",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MalStackDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MalStackDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MalStackDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ColorScape/series": {
|
|
"get": {
|
|
"tags": [
|
|
"ColorScape"
|
|
],
|
|
"summary": "Returns the color scape for a series",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ColorScapeDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ColorScapeDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ColorScapeDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ColorScape/volume": {
|
|
"get": {
|
|
"tags": [
|
|
"ColorScape"
|
|
],
|
|
"summary": "Returns the color scape for a volume",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ColorScapeDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ColorScapeDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ColorScapeDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ColorScape/chapter": {
|
|
"get": {
|
|
"tags": [
|
|
"ColorScape"
|
|
],
|
|
"summary": "Returns the color scape for a chapter",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ColorScapeDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ColorScapeDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ColorScapeDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/want-to-read": {
|
|
"post": {
|
|
"tags": [
|
|
"Deprecated"
|
|
],
|
|
"summary": "Return all Series that are in the current logged-in user's Want to Read list, filtered (deprecated, use v2)",
|
|
"description": "This will be removed in v0.9.0",
|
|
"parameters": [
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"deprecated": true
|
|
},
|
|
"get": {
|
|
"tags": [
|
|
"WantToRead"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/series/chapter-metadata": {
|
|
"get": {
|
|
"tags": [
|
|
"Deprecated"
|
|
],
|
|
"summary": "All chapter entities will load this data by default. Will not be maintained as of v0.8.1",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChapterMetadataDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChapterMetadataDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChapterMetadataDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"deprecated": true
|
|
}
|
|
},
|
|
"/api/series": {
|
|
"post": {
|
|
"tags": [
|
|
"Deprecated"
|
|
],
|
|
"summary": "Gets series with the applied Filter",
|
|
"description": "This is considered v1 and no longer used by Kavita, but will be supported for sometime. See series/v2",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"deprecated": true
|
|
}
|
|
},
|
|
"/api/series/recently-added": {
|
|
"post": {
|
|
"tags": [
|
|
"Deprecated"
|
|
],
|
|
"summary": "Gets all recently added series. Obsolete, use recently-added-v2",
|
|
"parameters": [
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 0
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"deprecated": true
|
|
}
|
|
},
|
|
"/api/series/all": {
|
|
"post": {
|
|
"tags": [
|
|
"Deprecated"
|
|
],
|
|
"summary": "Returns all series for the library. Obsolete, use all-v2",
|
|
"parameters": [
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 0
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"deprecated": true
|
|
}
|
|
},
|
|
"/api/upload/reset-chapter-lock": {
|
|
"post": {
|
|
"tags": [
|
|
"Deprecated"
|
|
],
|
|
"summary": "Replaces chapter cover image and locks it with a base64 encoded image. This will update the parent volume's cover image.",
|
|
"requestBody": {
|
|
"description": "Does not use Url property",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
},
|
|
"deprecated": true
|
|
}
|
|
},
|
|
"/api/stats/user/reading-history": {
|
|
"get": {
|
|
"tags": [
|
|
"Deprecated"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadHistoryEvent"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadHistoryEvent"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadHistoryEvent"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"deprecated": true
|
|
}
|
|
},
|
|
"/api/stats/server/top/years": {
|
|
"get": {
|
|
"tags": [
|
|
"Deprecated"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Int32StatCount"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Int32StatCount"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Int32StatCount"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"deprecated": true
|
|
}
|
|
},
|
|
"/api/stats/reading-count-by-day": {
|
|
"get": {
|
|
"tags": [
|
|
"Deprecated"
|
|
],
|
|
"summary": "Returns reading history events for a give or all users, broken up by day, and format",
|
|
"parameters": [
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"description": "If 0, defaults to all users, else just userId",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 0
|
|
}
|
|
},
|
|
{
|
|
"name": "days",
|
|
"in": "query",
|
|
"description": "If 0, defaults to all time, else just those days asked for",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 0
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DateTimeStatCountWithFormat"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DateTimeStatCountWithFormat"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DateTimeStatCountWithFormat"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"deprecated": true
|
|
}
|
|
},
|
|
"/api/server/count/year": {
|
|
"get": {
|
|
"tags": [
|
|
"Deprecated"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Int32StatCount"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Int32StatCount"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Int32StatCount"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"deprecated": true
|
|
}
|
|
},
|
|
"/api/stats/server/top/users": {
|
|
"get": {
|
|
"tags": [
|
|
"Deprecated"
|
|
],
|
|
"summary": "Returns users with the top reads in the server",
|
|
"parameters": [
|
|
{
|
|
"name": "days",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 0
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TopReadDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TopReadDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TopReadDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"deprecated": true
|
|
}
|
|
},
|
|
"/api/reader/all-chapter-progress": {
|
|
"get": {
|
|
"tags": [
|
|
"Deprecated"
|
|
],
|
|
"summary": "Get all progress events for a given chapter",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/FullProgressDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/FullProgressDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/FullProgressDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"deprecated": true
|
|
}
|
|
},
|
|
"/api/recommended/quick-reads": {
|
|
"get": {
|
|
"tags": [
|
|
"Deprecated"
|
|
],
|
|
"summary": "Quick Reads are series that should be readable in less than 10 in total and are not Ongoing in release.",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "Library to restrict series to",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"deprecated": true
|
|
}
|
|
},
|
|
"/api/recommended/quick-catchup-reads": {
|
|
"get": {
|
|
"tags": [
|
|
"Deprecated"
|
|
],
|
|
"summary": "Quick Catchup Reads are series that should be readable in less than 10 in total and are Ongoing in release.",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "Library to restrict series to",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"deprecated": true
|
|
}
|
|
},
|
|
"/api/recommended/highly-rated": {
|
|
"get": {
|
|
"tags": [
|
|
"Deprecated"
|
|
],
|
|
"summary": "Highly Rated based on other users ratings. Will pull series with ratings > 4.0, weighted by count of other users.",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "Library to restrict series to",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"deprecated": true
|
|
}
|
|
},
|
|
"/api/recommended/more-in": {
|
|
"get": {
|
|
"tags": [
|
|
"Deprecated"
|
|
],
|
|
"summary": "Chooses a random genre and shows series that are in that without reading progress",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "Library to restrict series to",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "genreId",
|
|
"in": "query",
|
|
"description": "Genre Id",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"deprecated": true
|
|
}
|
|
},
|
|
"/api/recommended/rediscover": {
|
|
"get": {
|
|
"tags": [
|
|
"Deprecated"
|
|
],
|
|
"summary": "Series that are fully read by the user in no particular order",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "Library to restrict series to",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"deprecated": true
|
|
}
|
|
},
|
|
"/api/users/myself": {
|
|
"get": {
|
|
"tags": [
|
|
"Deprecated"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MemberDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MemberDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MemberDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"deprecated": true
|
|
}
|
|
},
|
|
"/api/Device/create": {
|
|
"post": {
|
|
"tags": [
|
|
"Device"
|
|
],
|
|
"summary": "Creates a new Device",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateEmailDeviceDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateEmailDeviceDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateEmailDeviceDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EmailDeviceDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EmailDeviceDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EmailDeviceDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Device/update": {
|
|
"post": {
|
|
"tags": [
|
|
"Device"
|
|
],
|
|
"summary": "Updates an existing Device",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateEmailDeviceDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateEmailDeviceDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateEmailDeviceDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EmailDeviceDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EmailDeviceDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EmailDeviceDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Device": {
|
|
"delete": {
|
|
"tags": [
|
|
"Device"
|
|
],
|
|
"summary": "Deletes the device from the user",
|
|
"parameters": [
|
|
{
|
|
"name": "deviceId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
},
|
|
"get": {
|
|
"tags": [
|
|
"Device"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/EmailDeviceDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/EmailDeviceDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/EmailDeviceDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Device/send-to": {
|
|
"post": {
|
|
"tags": [
|
|
"Device"
|
|
],
|
|
"summary": "Sends a collection of chapters to the user's device",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SendToEmailDeviceDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SendToEmailDeviceDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SendToEmailDeviceDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Device/send-series-to": {
|
|
"post": {
|
|
"tags": [
|
|
"Device"
|
|
],
|
|
"summary": "Attempts to send a whole series to a device.",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SendSeriesToEmailDeviceDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SendSeriesToEmailDeviceDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SendSeriesToEmailDeviceDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Device/client/devices": {
|
|
"get": {
|
|
"tags": [
|
|
"Device"
|
|
],
|
|
"summary": "Get my client devices",
|
|
"parameters": [
|
|
{
|
|
"name": "includeInactive",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ClientDeviceDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ClientDeviceDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ClientDeviceDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Device/client/all-devices": {
|
|
"get": {
|
|
"tags": [
|
|
"Device"
|
|
],
|
|
"summary": "Get All user client devices",
|
|
"parameters": [
|
|
{
|
|
"name": "includeInactive",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ClientDeviceDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ClientDeviceDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ClientDeviceDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Device/client/device": {
|
|
"delete": {
|
|
"tags": [
|
|
"Device"
|
|
],
|
|
"summary": "Removes the client device from DB",
|
|
"parameters": [
|
|
{
|
|
"name": "clientDeviceId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Device/client/update-name": {
|
|
"post": {
|
|
"tags": [
|
|
"Device"
|
|
],
|
|
"summary": "Update the friendly name of the Device",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateClientDeviceNameDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateClientDeviceNameDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateClientDeviceNameDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Download/volume-size": {
|
|
"get": {
|
|
"tags": [
|
|
"Download"
|
|
],
|
|
"summary": "For a given volume, return the size in bytes",
|
|
"parameters": [
|
|
{
|
|
"name": "volumeId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Download/bulk-volume-size": {
|
|
"post": {
|
|
"tags": [
|
|
"Download"
|
|
],
|
|
"summary": "For a set of volumes, return the size in bytes",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkVolumeSizeRequest"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkVolumeSizeRequest"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkVolumeSizeRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Download/chapter-size": {
|
|
"get": {
|
|
"tags": [
|
|
"Download"
|
|
],
|
|
"summary": "For a given chapter, return the size in bytes",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Download/bulk-chapter-size": {
|
|
"post": {
|
|
"tags": [
|
|
"Download"
|
|
],
|
|
"summary": "For a set of chapters, return the size in bytes",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkChapterSizeRequest"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkChapterSizeRequest"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkChapterSizeRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Download/series-size": {
|
|
"get": {
|
|
"tags": [
|
|
"Download"
|
|
],
|
|
"summary": "For a series, return the size in bytes",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Download/readinglist-size": {
|
|
"get": {
|
|
"tags": [
|
|
"Download"
|
|
],
|
|
"summary": "Returns the filesize for all items of a reading list that the requesting user has access to",
|
|
"parameters": [
|
|
{
|
|
"name": "readingListId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Download/bulk-readinglist-size": {
|
|
"post": {
|
|
"tags": [
|
|
"Download"
|
|
],
|
|
"summary": "Returns the mapping of readinglist -> size",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkReadingListSizeRequest"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkReadingListSizeRequest"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkReadingListSizeRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Download/bulk-series-size": {
|
|
"post": {
|
|
"tags": [
|
|
"Download"
|
|
],
|
|
"summary": "For a set of series, return the size in bytes",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkSeriesSizeRequest"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkSeriesSizeRequest"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkSeriesSizeRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Download/volume": {
|
|
"get": {
|
|
"tags": [
|
|
"Download"
|
|
],
|
|
"summary": "Downloads all chapters within a volume. If the chapters are multiple zips, they will all be zipped up.",
|
|
"parameters": [
|
|
{
|
|
"name": "volumeId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "correlationId",
|
|
"in": "query",
|
|
"description": "Only for UI",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Download/chapter": {
|
|
"get": {
|
|
"tags": [
|
|
"Download"
|
|
],
|
|
"summary": "Returns the zip for a single chapter. If the chapter contains multiple files, they will be zipped.",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "correlationId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Download/series": {
|
|
"get": {
|
|
"tags": [
|
|
"Download"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "correlationId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Download/bookmarks": {
|
|
"post": {
|
|
"tags": [
|
|
"Download"
|
|
],
|
|
"summary": "Downloads all bookmarks in a zip for",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DownloadBookmarkDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DownloadBookmarkDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DownloadBookmarkDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Email/all": {
|
|
"get": {
|
|
"tags": [
|
|
"Email"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/EmailHistoryDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/EmailHistoryDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/EmailHistoryDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Filter/update": {
|
|
"post": {
|
|
"tags": [
|
|
"Filter"
|
|
],
|
|
"summary": "Creates or Updates the filter",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Filter": {
|
|
"get": {
|
|
"tags": [
|
|
"Filter"
|
|
],
|
|
"summary": "All Smart Filters for the authenticated user",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SmartFilterDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SmartFilterDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SmartFilterDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Filter"
|
|
],
|
|
"summary": "Delete the smart filter for the authenticated user",
|
|
"description": "User must not be in Kavita.Models.Constants.PolicyConstants.ReadOnlyRole",
|
|
"parameters": [
|
|
{
|
|
"name": "filterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Filter/encode": {
|
|
"post": {
|
|
"tags": [
|
|
"Filter"
|
|
],
|
|
"summary": "Encode the Filter",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Filter/decode": {
|
|
"post": {
|
|
"tags": [
|
|
"Filter"
|
|
],
|
|
"summary": "Decodes the Filter",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DecodeFilterDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DecodeFilterDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DecodeFilterDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Filter/rename": {
|
|
"post": {
|
|
"tags": [
|
|
"Filter"
|
|
],
|
|
"summary": "Rename a Smart Filter given the filterId and new name",
|
|
"parameters": [
|
|
{
|
|
"name": "filterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "name",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Font/all": {
|
|
"get": {
|
|
"tags": [
|
|
"Font"
|
|
],
|
|
"summary": "List out the fonts",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/EpubFontDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/EpubFontDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/EpubFontDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Font": {
|
|
"get": {
|
|
"tags": [
|
|
"Font"
|
|
],
|
|
"summary": "Returns a font file",
|
|
"parameters": [
|
|
{
|
|
"name": "fontId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Font"
|
|
],
|
|
"summary": "Removes a font from the system",
|
|
"parameters": [
|
|
{
|
|
"name": "fontId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "force",
|
|
"in": "query",
|
|
"description": "If the font is in use by other users and an admin wants it deleted, they must confirm to force delete it. This is prompted in the UI.",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Font/in-use": {
|
|
"get": {
|
|
"tags": [
|
|
"Font"
|
|
],
|
|
"summary": "Returns if the given font is in use by any other user. System provided fonts will always return true.",
|
|
"parameters": [
|
|
{
|
|
"name": "fontId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Font/upload": {
|
|
"post": {
|
|
"tags": [
|
|
"Font"
|
|
],
|
|
"summary": "Manual upload",
|
|
"requestBody": {
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"formFile": {
|
|
"type": "string",
|
|
"description": "",
|
|
"format": "binary"
|
|
}
|
|
}
|
|
},
|
|
"encoding": {
|
|
"formFile": {
|
|
"style": "form"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EpubFontDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EpubFontDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EpubFontDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Font/upload-by-url": {
|
|
"post": {
|
|
"tags": [
|
|
"Font"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "url",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Health": {
|
|
"get": {
|
|
"tags": [
|
|
"Health"
|
|
],
|
|
"summary": "No-op method that just returns Ok. Used for health checks in Docker containers.",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Image/chapter-cover": {
|
|
"get": {
|
|
"tags": [
|
|
"Image"
|
|
],
|
|
"summary": "Returns cover image for Chapter",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "apiKey",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Image/library-cover": {
|
|
"get": {
|
|
"tags": [
|
|
"Image"
|
|
],
|
|
"summary": "Returns cover image for Library",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "apiKey",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Image/volume-cover": {
|
|
"get": {
|
|
"tags": [
|
|
"Image"
|
|
],
|
|
"summary": "Returns cover image for Volume",
|
|
"parameters": [
|
|
{
|
|
"name": "volumeId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "apiKey",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Image/series-cover": {
|
|
"get": {
|
|
"tags": [
|
|
"Image"
|
|
],
|
|
"summary": "Returns cover image for Series",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "Id of Series",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "apiKey",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Image/collection-cover": {
|
|
"get": {
|
|
"tags": [
|
|
"Image"
|
|
],
|
|
"summary": "Returns cover image for Collection",
|
|
"parameters": [
|
|
{
|
|
"name": "collectionTagId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "apiKey",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Image/readinglist-cover": {
|
|
"get": {
|
|
"tags": [
|
|
"Image"
|
|
],
|
|
"summary": "Returns cover image for a Reading List",
|
|
"parameters": [
|
|
{
|
|
"name": "readingListId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "apiKey",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Image/bookmark": {
|
|
"get": {
|
|
"tags": [
|
|
"Image"
|
|
],
|
|
"summary": "Returns image for a given bookmark page",
|
|
"description": "This request is served unauthenticated, but user must be passed via api key to validate",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "pageNum",
|
|
"in": "query",
|
|
"description": "Starts at 0",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "apiKey",
|
|
"in": "query",
|
|
"description": "API Key for user. Needed to authenticate request",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "imageOffset",
|
|
"in": "query",
|
|
"description": "Only applicable for Epubs - handles multiple images on one page",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 0
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Image/web-link": {
|
|
"get": {
|
|
"tags": [
|
|
"Image"
|
|
],
|
|
"summary": "Returns the image associated with a web-link",
|
|
"parameters": [
|
|
{
|
|
"name": "url",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "apiKey",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Image/publisher": {
|
|
"get": {
|
|
"tags": [
|
|
"Image"
|
|
],
|
|
"summary": "Returns the image associated with a publisher",
|
|
"parameters": [
|
|
{
|
|
"name": "publisherName",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "apiKey",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Image/person-cover": {
|
|
"get": {
|
|
"tags": [
|
|
"Image"
|
|
],
|
|
"summary": "Returns cover image for Person",
|
|
"parameters": [
|
|
{
|
|
"name": "personId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "apiKey",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Image/user-cover": {
|
|
"get": {
|
|
"tags": [
|
|
"Image"
|
|
],
|
|
"summary": "Returns cover image for User",
|
|
"parameters": [
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "apiKey",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Image/cover-upload": {
|
|
"get": {
|
|
"tags": [
|
|
"Image"
|
|
],
|
|
"summary": "Returns a temp coverupload image",
|
|
"description": "Requires Admin Role to perform upload",
|
|
"parameters": [
|
|
{
|
|
"name": "filename",
|
|
"in": "query",
|
|
"description": "Filename of file. This is used with upload/upload-by-url",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "apiKey",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Koreader/{apiKey}/users/auth": {
|
|
"get": {
|
|
"tags": [
|
|
"Koreader"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Koreader/{apiKey}/syncs/progress": {
|
|
"put": {
|
|
"tags": [
|
|
"Koreader"
|
|
],
|
|
"summary": "Syncs book progress with Kavita. Will attempt to save the underlying reader position if possible.",
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/KoreaderBookDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/KoreaderBookDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/KoreaderBookDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/KoreaderProgressUpdateDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/KoreaderProgressUpdateDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/KoreaderProgressUpdateDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Koreader/{apiKey}/syncs/progress/{ebookHash}": {
|
|
"get": {
|
|
"tags": [
|
|
"Koreader"
|
|
],
|
|
"summary": "Gets book progress from Kavita, if not found will return a 400",
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "ebookHash",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Library/create": {
|
|
"post": {
|
|
"tags": [
|
|
"Library"
|
|
],
|
|
"summary": "Creates a new Library. Upon library creation, adds new library to all Admin accounts.",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateLibraryDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateLibraryDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateLibraryDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LibraryDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LibraryDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LibraryDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Library/list": {
|
|
"get": {
|
|
"tags": [
|
|
"Library"
|
|
],
|
|
"summary": "Returns a list of directories for a given path. If path is empty, returns root drives.",
|
|
"parameters": [
|
|
{
|
|
"name": "path",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DirectoryDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DirectoryDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DirectoryDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Library/has-files-at-root": {
|
|
"post": {
|
|
"tags": [
|
|
"Library"
|
|
],
|
|
"summary": "For each root, checks if there are any supported files at root to warn the user during library creation about an invalid setup",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CheckForFilesInFolderRootsDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CheckForFilesInFolderRootsDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CheckForFilesInFolderRootsDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Library": {
|
|
"get": {
|
|
"tags": [
|
|
"Library"
|
|
],
|
|
"summary": "Return a specific library",
|
|
"description": "If the user is not an admin, only id, type, and name will be returned (Kavita.Models.DTOs.LiteLibraryDto)",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LibraryDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LibraryDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LibraryDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Library/libraries": {
|
|
"get": {
|
|
"tags": [
|
|
"Library"
|
|
],
|
|
"summary": "Return all libraries in the Server",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LibraryDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LibraryDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LibraryDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Library/user-libraries": {
|
|
"get": {
|
|
"tags": [
|
|
"Library"
|
|
],
|
|
"summary": "Gets libraries for the given user that you also have access to",
|
|
"parameters": [
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LibraryDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LibraryDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LibraryDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Library/jump-bar": {
|
|
"get": {
|
|
"tags": [
|
|
"Library"
|
|
],
|
|
"summary": "For a given library, generate the jump bar information",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/JumpKeyDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/JumpKeyDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/JumpKeyDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Library/grant-access": {
|
|
"post": {
|
|
"tags": [
|
|
"Library"
|
|
],
|
|
"summary": "Grants a user account access to a Library",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateLibraryForUserDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateLibraryForUserDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateLibraryForUserDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemberDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemberDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemberDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Library/scan": {
|
|
"post": {
|
|
"tags": [
|
|
"Library"
|
|
],
|
|
"summary": "Scans a given library for file changes.",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "force",
|
|
"in": "query",
|
|
"description": "If true, will ignore any optimizations to avoid file I/O and will treat similar to a first scan",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Library/scan-multiple": {
|
|
"post": {
|
|
"tags": [
|
|
"Library"
|
|
],
|
|
"summary": "Enqueues a bunch of library scans",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkActionDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkActionDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkActionDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Library/scan-all": {
|
|
"post": {
|
|
"tags": [
|
|
"Library"
|
|
],
|
|
"summary": "Scans a given library for file changes. If another scan task is in progress, will reschedule the invocation for 3 hours in future.",
|
|
"parameters": [
|
|
{
|
|
"name": "force",
|
|
"in": "query",
|
|
"description": "If true, will ignore any optimizations to avoid file I/O and will treat similar to a first scan",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Library/refresh-metadata": {
|
|
"post": {
|
|
"tags": [
|
|
"Library"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "force",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
},
|
|
{
|
|
"name": "forceColorscape",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Library/refresh-metadata-multiple": {
|
|
"post": {
|
|
"tags": [
|
|
"Library"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "forceColorscape",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkActionDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkActionDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkActionDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Library/copy-settings-from": {
|
|
"post": {
|
|
"tags": [
|
|
"Library"
|
|
],
|
|
"summary": "Copy the library settings (adv tab + optional type) to a set of other libraries.",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CopySettingsFromLibraryDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CopySettingsFromLibraryDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CopySettingsFromLibraryDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Library/scan-folder": {
|
|
"post": {
|
|
"tags": [
|
|
"Library"
|
|
],
|
|
"summary": "Given a valid path, will invoke either a Scan Series or Scan Library. If the folder does not exist within Kavita, the request will be ignored",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ScanFolderDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ScanFolderDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ScanFolderDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Library/delete": {
|
|
"delete": {
|
|
"tags": [
|
|
"Library"
|
|
],
|
|
"summary": "Deletes the library and all series within it.",
|
|
"description": "This does not touch any files",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Library/delete-multiple": {
|
|
"delete": {
|
|
"tags": [
|
|
"Library"
|
|
],
|
|
"summary": "Deletes multiple libraries and all series within it.",
|
|
"description": "This does not touch any files",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Library/name-exists": {
|
|
"get": {
|
|
"tags": [
|
|
"Library"
|
|
],
|
|
"summary": "Checks if the library name exists or not",
|
|
"parameters": [
|
|
{
|
|
"name": "name",
|
|
"in": "query",
|
|
"description": "If empty or null, will return true as that is invalid",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Library/update": {
|
|
"post": {
|
|
"tags": [
|
|
"Library"
|
|
],
|
|
"summary": "Updates an existing Library with new name, folders, and/or type.",
|
|
"description": "Any folder or type change will invoke a scan.",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateLibraryDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateLibraryDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateLibraryDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Library/type": {
|
|
"get": {
|
|
"tags": [
|
|
"Library"
|
|
],
|
|
"summary": "Returns the type of the underlying library",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/License/valid-license": {
|
|
"get": {
|
|
"tags": [
|
|
"License"
|
|
],
|
|
"summary": "Checks if the user's license is valid or not",
|
|
"parameters": [
|
|
{
|
|
"name": "forceCheck",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/License/has-license": {
|
|
"get": {
|
|
"tags": [
|
|
"License"
|
|
],
|
|
"summary": "Has any license registered with the instance. Does not validate against Kavita+ API",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/License/info": {
|
|
"get": {
|
|
"tags": [
|
|
"License"
|
|
],
|
|
"summary": "Asks Kavita+ for the latest license info",
|
|
"parameters": [
|
|
{
|
|
"name": "forceCheck",
|
|
"in": "query",
|
|
"description": "Force checking the API and skip the 8-hour cache",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LicenseInfoDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LicenseInfoDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LicenseInfoDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/License": {
|
|
"delete": {
|
|
"tags": [
|
|
"License"
|
|
],
|
|
"summary": "Remove the Kavita+ License on the Server",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"License"
|
|
],
|
|
"summary": "Updates server license",
|
|
"description": "Caches the result",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateLicenseDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateLicenseDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateLicenseDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/License/reset": {
|
|
"post": {
|
|
"tags": [
|
|
"License"
|
|
],
|
|
"summary": "Break the registration between Kavita+ and this instance",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateLicenseDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateLicenseDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateLicenseDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/License/resend-license": {
|
|
"post": {
|
|
"tags": [
|
|
"License"
|
|
],
|
|
"summary": "Resend the welcome email to the user",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Locale": {
|
|
"get": {
|
|
"tags": [
|
|
"Locale"
|
|
],
|
|
"summary": "Returns all applicable locales on the server",
|
|
"description": "This can be cached as it will not change per version.",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/KavitaLocale"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/KavitaLocale"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/KavitaLocale"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Manage/series-metadata": {
|
|
"post": {
|
|
"tags": [
|
|
"Manage"
|
|
],
|
|
"summary": "Returns a list of all Series that is Kavita+ applicable to metadata match and the status of it",
|
|
"parameters": [
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ManageMatchFilterDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ManageMatchFilterDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ManageMatchFilterDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ManageMatchSeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ManageMatchSeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ManageMatchSeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Metadata/genres": {
|
|
"get": {
|
|
"tags": [
|
|
"Metadata"
|
|
],
|
|
"summary": "Fetches genres from the instance",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryIds",
|
|
"in": "query",
|
|
"description": "String separated libraryIds or null for all genres",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "context",
|
|
"in": "query",
|
|
"description": "Context from which this API was invoked",
|
|
"schema": {
|
|
"enum": [
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 1
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/GenreTagDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/GenreTagDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/GenreTagDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Metadata/genres-with-counts": {
|
|
"post": {
|
|
"tags": [
|
|
"Metadata"
|
|
],
|
|
"summary": "Returns a list of Genres with counts for counts when Genre is on Series/Chapter",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserParams"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserParams"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserParams"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BrowseGenreDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BrowseGenreDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BrowseGenreDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Metadata/people-by-role": {
|
|
"get": {
|
|
"tags": [
|
|
"Metadata"
|
|
],
|
|
"summary": "Fetches people from the instance by role",
|
|
"parameters": [
|
|
{
|
|
"name": "role",
|
|
"in": "query",
|
|
"description": "role",
|
|
"schema": {
|
|
"enum": [
|
|
1,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
15
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Metadata/people": {
|
|
"get": {
|
|
"tags": [
|
|
"Metadata"
|
|
],
|
|
"summary": "Fetches people from the instance",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryIds",
|
|
"in": "query",
|
|
"description": "String separated libraryIds or null for all people",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Metadata/tags": {
|
|
"get": {
|
|
"tags": [
|
|
"Metadata"
|
|
],
|
|
"summary": "Fetches all tags from the instance",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryIds",
|
|
"in": "query",
|
|
"description": "String separated libraryIds or null for all tags",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TagDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TagDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TagDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Metadata/tags-with-counts": {
|
|
"post": {
|
|
"tags": [
|
|
"Metadata"
|
|
],
|
|
"summary": "Returns a list of Tags with counts for counts when Tag is on Series/Chapter",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserParams"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserParams"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserParams"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BrowseTagDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BrowseTagDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BrowseTagDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Metadata/age-ratings": {
|
|
"get": {
|
|
"tags": [
|
|
"Metadata"
|
|
],
|
|
"summary": "Fetches all age ratings from the instance",
|
|
"description": "This API is cached for 1 hour, varying by libraryIds",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryIds",
|
|
"in": "query",
|
|
"description": "String separated libraryIds or null for all ratings",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AgeRatingDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AgeRatingDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AgeRatingDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Metadata/publication-status": {
|
|
"get": {
|
|
"tags": [
|
|
"Metadata"
|
|
],
|
|
"summary": "Fetches all publication status' from the instance",
|
|
"description": "This API is cached for 1 hour, varying by libraryIds",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryIds",
|
|
"in": "query",
|
|
"description": "String separated libraryIds or null for all publication status",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AgeRatingDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AgeRatingDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AgeRatingDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Metadata/languages": {
|
|
"get": {
|
|
"tags": [
|
|
"Metadata"
|
|
],
|
|
"summary": "Fetches all age languages from the libraries passed (or if none passed, all in the server)",
|
|
"description": "This does not perform RBS for the user if they have Library access due to the non-sensitive nature of languages",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryIds",
|
|
"in": "query",
|
|
"description": "String separated libraryIds or null for all ratings",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LanguageDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LanguageDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LanguageDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Metadata/all-languages": {
|
|
"get": {
|
|
"tags": [
|
|
"Metadata"
|
|
],
|
|
"summary": "Returns all languages Kavita can accept",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LanguageDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LanguageDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LanguageDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Metadata/language-title": {
|
|
"get": {
|
|
"tags": [
|
|
"Metadata"
|
|
],
|
|
"summary": "Given a language code returns the display name",
|
|
"parameters": [
|
|
{
|
|
"name": "code",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Metadata/series-detail-plus": {
|
|
"get": {
|
|
"tags": [
|
|
"Metadata"
|
|
],
|
|
"summary": "Fetches the details needed from Kavita+ for Series Detail page",
|
|
"description": "This will hit upstream K+ if the data in local db is 2 weeks old",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "Series Id",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "libraryType",
|
|
"in": "query",
|
|
"description": "Library Type",
|
|
"schema": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesDetailPlusDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesDetailPlusDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesDetailPlusDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/Oidc/login": {
|
|
"get": {
|
|
"tags": [
|
|
"Oidc"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "returnUrl",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"default": "/"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/Oidc/logout": {
|
|
"get": {
|
|
"tags": [
|
|
"Oidc"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Opds/{apiKey}": {
|
|
"post": {
|
|
"tags": [
|
|
"Opds"
|
|
],
|
|
"summary": "Returns the Catalogue for Kavita's OPDS Service",
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
},
|
|
"get": {
|
|
"tags": [
|
|
"Opds"
|
|
],
|
|
"summary": "Returns the Catalogue for Kavita's OPDS Service",
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Opds/{apiKey}/smart-filters/{filterId}": {
|
|
"get": {
|
|
"tags": [
|
|
"Opds"
|
|
],
|
|
"summary": "Get the User's Smart Filter series - Supports Pagination",
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "filterId",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "pageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 1
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Opds/{apiKey}/smart-filters": {
|
|
"get": {
|
|
"tags": [
|
|
"Opds"
|
|
],
|
|
"summary": "Get the User's Smart Filters (Dashboard Context) - Supports Pagination",
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "pageNumber",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 1
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Opds/{apiKey}/libraries": {
|
|
"get": {
|
|
"tags": [
|
|
"Opds"
|
|
],
|
|
"summary": "Get the User's Libraries - No Pagination Support",
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "pageNumber",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 1
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Opds/{apiKey}/want-to-read": {
|
|
"get": {
|
|
"tags": [
|
|
"Opds"
|
|
],
|
|
"summary": "Get the User's Want to Read list - Supports Pagination",
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "pageNumber",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 1
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Opds/{apiKey}/collections": {
|
|
"get": {
|
|
"tags": [
|
|
"Opds"
|
|
],
|
|
"summary": "Get all Collections - Supports Pagination",
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "pageNumber",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 1
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Opds/{apiKey}/collections/{collectionId}": {
|
|
"get": {
|
|
"tags": [
|
|
"Opds"
|
|
],
|
|
"summary": "Get Series for a given Collection - Supports Pagination",
|
|
"parameters": [
|
|
{
|
|
"name": "collectionId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "pageNumber",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 1
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Opds/{apiKey}/reading-list": {
|
|
"get": {
|
|
"tags": [
|
|
"Opds"
|
|
],
|
|
"summary": "Get a User's Reading Lists - Supports Pagination",
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "pageNumber",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 1
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Opds/{apiKey}/reading-list/{readingListId}": {
|
|
"get": {
|
|
"tags": [
|
|
"Opds"
|
|
],
|
|
"summary": "Returns individual items (chapters) from Reading List by ID - Supports Pagination",
|
|
"parameters": [
|
|
{
|
|
"name": "readingListId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "pageNumber",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 1
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Opds/{apiKey}/libraries/{libraryId}": {
|
|
"get": {
|
|
"tags": [
|
|
"Opds"
|
|
],
|
|
"summary": "Returns Series from the Library - Supports Pagination",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "pageNumber",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 1
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Opds/{apiKey}/recently-added": {
|
|
"get": {
|
|
"tags": [
|
|
"Opds"
|
|
],
|
|
"summary": "Returns Recently Added (Dashboard Feed) - Supports Pagination",
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "pageNumber",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 1
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Opds/{apiKey}/more-in-genre": {
|
|
"get": {
|
|
"tags": [
|
|
"Opds"
|
|
],
|
|
"summary": "Returns More In a Genre (Dashboard Feed) - Supports Pagination",
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "genreId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "pageNumber",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 1
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Opds/{apiKey}/recently-updated": {
|
|
"get": {
|
|
"tags": [
|
|
"Opds"
|
|
],
|
|
"summary": "Get the Recently Updated Series (Dashboard) - Pagination available, total pages will not be filled due to underlying implementation",
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "pageNumber",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 1
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Opds/{apiKey}/on-deck": {
|
|
"get": {
|
|
"tags": [
|
|
"Opds"
|
|
],
|
|
"summary": "Get the On Deck (Dashboard) - Supports Pagination",
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "pageNumber",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 1
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Opds/{apiKey}/series": {
|
|
"get": {
|
|
"tags": [
|
|
"Opds"
|
|
],
|
|
"summary": "OPDS Search endpoint",
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "query",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Opds/{apiKey}/search": {
|
|
"get": {
|
|
"tags": [
|
|
"Opds"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Opds/{apiKey}/series/{seriesId}": {
|
|
"get": {
|
|
"tags": [
|
|
"Opds"
|
|
],
|
|
"summary": "Returns the items within a Series (Series Detail)",
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "seriesId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Opds/{apiKey}/series/{seriesId}/volume/{volumeId}": {
|
|
"get": {
|
|
"tags": [
|
|
"Opds"
|
|
],
|
|
"summary": "Returns items for a given Volume",
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "seriesId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "volumeId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Opds/{apiKey}/series/{seriesId}/volume/{volumeId}/chapter/{chapterId}": {
|
|
"get": {
|
|
"tags": [
|
|
"Opds"
|
|
],
|
|
"summary": "Gets items for a given Chapter",
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "seriesId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "volumeId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "chapterId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Opds/{apiKey}/series/{seriesId}/volume/{volumeId}/chapter/{chapterId}/download/{filename}": {
|
|
"get": {
|
|
"tags": [
|
|
"Opds"
|
|
],
|
|
"summary": "Downloads a file (user must have download permission)",
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"description": "User's API Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "seriesId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "volumeId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "chapterId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "filename",
|
|
"in": "path",
|
|
"description": "Not used. Only for Chunky to allow download links",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Opds/{apiKey}/image": {
|
|
"get": {
|
|
"tags": [
|
|
"Opds"
|
|
],
|
|
"summary": "This returns a streamed image following OPDS-PS v1.2",
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "volumeId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "pageNumber",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "saveProgress",
|
|
"in": "query",
|
|
"description": "Optional parameter. Can pass false and progress saving will be suppressed",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Opds/{apiKey}/favicon": {
|
|
"get": {
|
|
"tags": [
|
|
"Opds"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Panels/save-progress": {
|
|
"post": {
|
|
"tags": [
|
|
"Panels"
|
|
],
|
|
"summary": "Saves the progress of a given chapter. This will generate a reading session with the estimated time from the\nlast progress till the current",
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProgressDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProgressDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProgressDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Panels/get-progress": {
|
|
"get": {
|
|
"tags": [
|
|
"Panels"
|
|
],
|
|
"summary": "Gets the Progress of a given chapter",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "apiKey",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProgressDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProgressDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProgressDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Person": {
|
|
"get": {
|
|
"tags": [
|
|
"Person"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "name",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Person/search": {
|
|
"get": {
|
|
"tags": [
|
|
"Person"
|
|
],
|
|
"summary": "Find a person by name or alias against a query string",
|
|
"parameters": [
|
|
{
|
|
"name": "queryString",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Person/roles": {
|
|
"get": {
|
|
"tags": [
|
|
"Person"
|
|
],
|
|
"summary": "Returns all roles for a Person",
|
|
"parameters": [
|
|
{
|
|
"name": "personId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"enum": [
|
|
1,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
15
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"enum": [
|
|
1,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
15
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"enum": [
|
|
1,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
15
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Person/all": {
|
|
"post": {
|
|
"tags": [
|
|
"Person"
|
|
],
|
|
"summary": "Returns a list of authors and artists for browsing",
|
|
"parameters": [
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BrowsePersonFilterDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BrowsePersonFilterDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BrowsePersonFilterDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BrowsePersonDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BrowsePersonDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BrowsePersonDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Person/update": {
|
|
"post": {
|
|
"tags": [
|
|
"Person"
|
|
],
|
|
"summary": "Updates the Person",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdatePersonDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdatePersonDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdatePersonDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Person/fetch-cover": {
|
|
"post": {
|
|
"tags": [
|
|
"Person"
|
|
],
|
|
"summary": "Attempts to download the cover from CoversDB (Note: Not yet release in Kavita)",
|
|
"parameters": [
|
|
{
|
|
"name": "personId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Person/series-known-for": {
|
|
"get": {
|
|
"tags": [
|
|
"Person"
|
|
],
|
|
"summary": "Returns the top 20 series that the \"person\" is known for. This will use Average Rating when applicable (Kavita+ field), else it's a random sort",
|
|
"parameters": [
|
|
{
|
|
"name": "personId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Person/chapters-by-role": {
|
|
"get": {
|
|
"tags": [
|
|
"Person"
|
|
],
|
|
"summary": "Returns all individual chapters by role. Limited to 20 results.",
|
|
"parameters": [
|
|
{
|
|
"name": "personId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "role",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"enum": [
|
|
1,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
15
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/StandaloneChapterDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/StandaloneChapterDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/StandaloneChapterDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Person/merge": {
|
|
"post": {
|
|
"tags": [
|
|
"Person"
|
|
],
|
|
"summary": "Merges Persons into one, this action is irreversible",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonMergeDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonMergeDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonMergeDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Person/valid-alias": {
|
|
"post": {
|
|
"tags": [
|
|
"Person"
|
|
],
|
|
"summary": "Ensure the alias is valid to be added. For example, the alias cannot be on another person or be the same as the current person name/alias.",
|
|
"requestBody": {
|
|
"description": "alias check request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonAliasCheckDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonAliasCheckDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonAliasCheckDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Plugin/authenticate": {
|
|
"post": {
|
|
"tags": [
|
|
"Plugin"
|
|
],
|
|
"summary": "Authenticate with the Server given an auth key. This will log you in by returning the user object and the JWT token.",
|
|
"description": "This API is not fully built out and may require more information in later releases",
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "query",
|
|
"description": "Auth key which will be used to authenticate and return a valid user token back",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "pluginName",
|
|
"in": "query",
|
|
"description": "Name of the Plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Plugin/version": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugin"
|
|
],
|
|
"summary": "Returns the version of the Kavita install",
|
|
"description": "This will log unauthorized requests to Security log",
|
|
"parameters": [
|
|
{
|
|
"name": "apiKey",
|
|
"in": "query",
|
|
"description": "Required for authenticating to get result",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Plugin/authkey-expires": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugin"
|
|
],
|
|
"summary": "Returns the expiration (UTC) of the authenticated Auth key (or null if none set)",
|
|
"description": "Will always return null if the Auth Key does not belong to this account",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AuthKeyExpiresAtDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AuthKeyExpiresAtDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AuthKeyExpiresAtDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Plugin/parse": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugin"
|
|
],
|
|
"summary": "Parse a string and return Parsed information from it. Does not support any directory fallback parsing",
|
|
"parameters": [
|
|
{
|
|
"name": "name",
|
|
"in": "query",
|
|
"description": "String to parse",
|
|
"schema": {
|
|
"maxLength": 1000,
|
|
"minLength": 0,
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "libraryType",
|
|
"in": "query",
|
|
"description": "Determines the set of pattern matching to use",
|
|
"schema": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ParseResultDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ParseResultDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ParseResultDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Plugin/parse-bulk": {
|
|
"post": {
|
|
"tags": [
|
|
"Plugin"
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ParseBulkRequestDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ParseBulkRequestDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ParseBulkRequestDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ParseBulkResponseDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ParseBulkResponseDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ParseBulkResponseDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Rating/series": {
|
|
"post": {
|
|
"tags": [
|
|
"Rating"
|
|
],
|
|
"summary": "Update the users' rating of the given series",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateRatingDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateRatingDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateRatingDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Rating/chapter": {
|
|
"post": {
|
|
"tags": [
|
|
"Rating"
|
|
],
|
|
"summary": "Update the users' rating of the given chapter",
|
|
"requestBody": {
|
|
"description": "chapterId must be set",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateRatingDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateRatingDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateRatingDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Rating/overall-series": {
|
|
"get": {
|
|
"tags": [
|
|
"Rating"
|
|
],
|
|
"summary": "Overall rating from all Kavita users for a given Series",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RatingDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RatingDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RatingDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Rating/overall-chapter": {
|
|
"get": {
|
|
"tags": [
|
|
"Rating"
|
|
],
|
|
"summary": "Overall rating from all Kavita users for a given Chapter",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RatingDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RatingDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RatingDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/pdf": {
|
|
"get": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Returns the PDF for the chapterId.",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "apiKey",
|
|
"in": "query",
|
|
"description": "Auth Key for authentication",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "extractPdf",
|
|
"in": "query",
|
|
"description": "Converts PDF into images per-page - Used for Mihon mainly",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/image": {
|
|
"get": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Returns an image for a given chapter. Will perform bounding checks",
|
|
"description": "This will cache the chapter images for reading",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "Chapter Id",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"description": "Page in question",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "apiKey",
|
|
"in": "query",
|
|
"description": "User's API Key for authentication",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "extractPdf",
|
|
"in": "query",
|
|
"description": "Should Kavita extract pdf into images. Defaults to false.",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/thumbnail": {
|
|
"get": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Returns a thumbnail for the given page number",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "pageNum",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "apiKey",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/bookmark-image": {
|
|
"get": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Returns an image for a given bookmark series. Side effect: This will cache the bookmark images for reading.",
|
|
"description": "We must use api key as bookmarks could be leaked to other users via the API",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "apiKey",
|
|
"in": "query",
|
|
"description": "Api key for the user the bookmarks are on",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/file-dimensions": {
|
|
"get": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Returns the file dimensions for all pages in a chapter. If the underlying chapter is PDF, use extractPDF to unpack as images.",
|
|
"description": "This has a side effect of caching the images.\n This will only be populated on archive filetypes and not in bookmark mode",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "extractPdf",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/FileDimensionDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/FileDimensionDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/FileDimensionDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/chapter-info": {
|
|
"get": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Returns various information about a Chapter. Side effect: This will cache the chapter images for reading.",
|
|
"description": "This is generally the first call when attempting to read to allow pre-generation of assets needed for reading",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "extractPdf",
|
|
"in": "query",
|
|
"description": "Should Kavita extract pdf into images. Defaults to false.",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
},
|
|
{
|
|
"name": "includeDimensions",
|
|
"in": "query",
|
|
"description": "Include file dimensions. Only useful for image-based reading",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChapterInfoDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChapterInfoDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChapterInfoDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/bookmark-info": {
|
|
"get": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Returns various information about all bookmark files for a Series. Side effect: This will cache the bookmark images for reading.",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "Series Id for all bookmarks",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "includeDimensions",
|
|
"in": "query",
|
|
"description": "Include file dimensions (extra I/O). Defaults to true.",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BookmarkInfoDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BookmarkInfoDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BookmarkInfoDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/mark-chapter-read": {
|
|
"post": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Mark a single chapter as read",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkChapterReadDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkChapterReadDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkChapterReadDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/mark-read": {
|
|
"post": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Marks a Series as read. All volumes and chapters will be marked as read during this process.",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkReadDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkReadDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkReadDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/mark-unread": {
|
|
"post": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Marks a Series as Unread. All volumes and chapters will be marked as unread during this process.",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkReadDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkReadDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkReadDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/mark-volume-unread": {
|
|
"post": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Marks all chapters within a volume as unread",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkVolumeReadDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkVolumeReadDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkVolumeReadDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/mark-volume-read": {
|
|
"post": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Marks all chapters within a volume as Read",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkVolumeReadDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkVolumeReadDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkVolumeReadDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/mark-multiple-read": {
|
|
"post": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Marks all chapters within a list of volumes as Read. All volumes must belong to the same Series.",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkVolumesReadDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkVolumesReadDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkVolumesReadDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/mark-multiple-unread": {
|
|
"post": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Marks all chapters within a list of volumes as Unread. All volumes must belong to the same Series.",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkVolumesReadDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkVolumesReadDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkVolumesReadDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/mark-multiple-series-read": {
|
|
"post": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Marks all chapters within a list of series as Read.",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkMultipleSeriesAsReadDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkMultipleSeriesAsReadDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkMultipleSeriesAsReadDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/mark-multiple-series-unread": {
|
|
"post": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Marks all chapters within a list of series as Unread.",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkMultipleSeriesAsReadDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkMultipleSeriesAsReadDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MarkMultipleSeriesAsReadDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/get-progress": {
|
|
"get": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Returns Progress (page number) for a chapter for the logged in user",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProgressDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProgressDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProgressDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/progress": {
|
|
"post": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Save page against Chapter for authenticated user",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProgressDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProgressDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProgressDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/continue-point": {
|
|
"get": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Continue point is the chapter which you should start reading again from. If there is no progress on a series, then the first chapter will be returned (non-special unless only specials).\nOtherwise, loop through the chapters and volumes in order to find the next chapter which has progress.",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChapterDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChapterDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChapterDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/has-progress": {
|
|
"get": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Returns if the user has reading progress on the Series",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/chapter-bookmarks": {
|
|
"get": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Returns a list of bookmarked pages for a given Chapter",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BookmarkDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BookmarkDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BookmarkDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/all-bookmarks": {
|
|
"post": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Returns a list of all bookmarked pages for a User",
|
|
"requestBody": {
|
|
"description": "Only supports SeriesNameQuery",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BookmarkDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BookmarkDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BookmarkDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/remove-bookmarks": {
|
|
"post": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Removes all bookmarks for all chapters linked to a Series",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RemoveBookmarkForSeriesDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RemoveBookmarkForSeriesDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RemoveBookmarkForSeriesDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/bulk-remove-bookmarks": {
|
|
"post": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Removes all bookmarks for all chapters linked to a Series",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkRemoveBookmarkForSeriesDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkRemoveBookmarkForSeriesDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkRemoveBookmarkForSeriesDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/volume-bookmarks": {
|
|
"get": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Returns all bookmarked pages for a given volume",
|
|
"parameters": [
|
|
{
|
|
"name": "volumeId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BookmarkDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BookmarkDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BookmarkDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/series-bookmarks": {
|
|
"get": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Returns all bookmarked pages for a given series",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BookmarkDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BookmarkDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BookmarkDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/bookmark": {
|
|
"post": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Bookmarks a page against a Chapter",
|
|
"description": "This has a side effect of caching the chapter files to disk",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BookmarkDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BookmarkDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BookmarkDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/unbookmark": {
|
|
"post": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Removes a bookmarked page for a Chapter",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BookmarkDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BookmarkDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BookmarkDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/next-chapter": {
|
|
"get": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Returns the next logical chapter from the series.",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "volumeId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "currentChapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/prev-chapter": {
|
|
"get": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Returns the previous logical chapter from the series.",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "volumeId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "currentChapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/time-left": {
|
|
"get": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "For the current user, returns an estimate on how long it would take to finish reading the series.",
|
|
"description": "For Epubs, this does not check words inside a chapter due to overhead so may not work in all cases.",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HourEstimateRangeDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HourEstimateRangeDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HourEstimateRangeDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/time-left-for-chapter": {
|
|
"get": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "For the current user, returns an estimate on how long it would take to finish reading the chapter.",
|
|
"description": "For Epubs, this does not check words inside a chapter due to overhead so may not work in all cases.",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HourEstimateRangeDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HourEstimateRangeDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HourEstimateRangeDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/ptoc": {
|
|
"get": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Returns the user's personal table of contents for the given chapter",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonalToCDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonalToCDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonalToCDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Deletes the user's personal table of content for the given chapter",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "pageNum",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "title",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/create-ptoc": {
|
|
"post": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Create a new personal table of content entry for a given chapter",
|
|
"description": "The title and page number must be unique to that book",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreatePersonalToCDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreatePersonalToCDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreatePersonalToCDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/prompt-reread/series": {
|
|
"get": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Check if we should prompt the user for rereads for the given series",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RereadDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RereadDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RereadDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/prompt-reread/volume": {
|
|
"get": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Check if we should prompt the user for rereads for the given volume",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "volumeId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RereadDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RereadDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RereadDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/prompt-reread/chapter": {
|
|
"get": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"summary": "Check if we should prompt the user for rereads for the given chapter",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RereadDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RereadDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RereadDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Reader/first-progress-date": {
|
|
"get": {
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList": {
|
|
"get": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"summary": "Fetches a single Reading List",
|
|
"parameters": [
|
|
{
|
|
"name": "readingListId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReadingListDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReadingListDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReadingListDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"summary": "Deletes a reading list",
|
|
"parameters": [
|
|
{
|
|
"name": "readingListId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList/lists": {
|
|
"post": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"summary": "Returns reading lists (paginated) for a given user.",
|
|
"parameters": [
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "includePromoted",
|
|
"in": "query",
|
|
"description": "Include Promoted Reading Lists along with user's Reading Lists. Defaults to true",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
},
|
|
{
|
|
"name": "sortByLastModified",
|
|
"in": "query",
|
|
"description": "Sort by last modified (most recent first) or by title (alphabetical)",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadingListDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadingListDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadingListDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList/lists-for-series": {
|
|
"get": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"summary": "Returns all Reading Lists the user has access to that the given series within it.",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadingListDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadingListDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadingListDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList/lists-for-chapter": {
|
|
"get": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"summary": "Returns all Reading Lists the user has access to that has the given chapter within it.",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadingListDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadingListDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadingListDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList/items": {
|
|
"get": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"summary": "Fetches all reading list items for a given list including rich metadata around series, volume, chapters, and progress",
|
|
"description": "This call is expensive",
|
|
"parameters": [
|
|
{
|
|
"name": "readingListId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadingListItemDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadingListItemDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadingListItemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList/update-position": {
|
|
"post": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"summary": "Updates an items position",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListPosition"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListPosition"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListPosition"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList/delete-item": {
|
|
"post": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"summary": "Deletes a list item from the list. Item orders will update as a result.",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListPosition"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListPosition"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListPosition"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList/remove-read": {
|
|
"post": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"summary": "Removes all entries that are fully read from the reading list",
|
|
"parameters": [
|
|
{
|
|
"name": "readingListId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList/create": {
|
|
"post": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"summary": "Creates a new List with a unique title. Returns the new ReadingList back",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateReadingListDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateReadingListDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateReadingListDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReadingListDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReadingListDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReadingListDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList/update": {
|
|
"post": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"summary": "Update the properties (title, summary) of a reading list",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList/update-by-series": {
|
|
"post": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"summary": "Adds all chapters from a Series to a reading list",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListBySeriesDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListBySeriesDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListBySeriesDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList/update-by-multiple": {
|
|
"post": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"summary": "Adds all chapters from a list of volumes and chapters to a reading list",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListByMultipleDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListByMultipleDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListByMultipleDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList/update-by-multiple-series": {
|
|
"post": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"summary": "Adds all chapters from a list of series to a reading list",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListByMultipleSeriesDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListByMultipleSeriesDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListByMultipleSeriesDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList/update-by-volume": {
|
|
"post": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListByVolumeDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListByVolumeDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListByVolumeDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList/update-by-chapter": {
|
|
"post": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListByChapterDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListByChapterDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateReadingListByChapterDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList/people": {
|
|
"get": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"summary": "Returns a list of a given role associated with the reading list",
|
|
"parameters": [
|
|
{
|
|
"name": "readingListId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "role",
|
|
"in": "query",
|
|
"description": "PersonRole",
|
|
"schema": {
|
|
"enum": [
|
|
1,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
15
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList/all-people": {
|
|
"get": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"summary": "Returns all people in given roles for a reading list",
|
|
"parameters": [
|
|
{
|
|
"name": "readingListId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList/next-chapter": {
|
|
"get": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"summary": "Returns the next chapter within the reading list",
|
|
"parameters": [
|
|
{
|
|
"name": "currentChapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "readingListId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList/prev-chapter": {
|
|
"get": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"summary": "Returns the prev chapter within the reading list",
|
|
"parameters": [
|
|
{
|
|
"name": "currentChapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "readingListId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList/name-exists": {
|
|
"get": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"summary": "Checks if a reading list exists with the name",
|
|
"parameters": [
|
|
{
|
|
"name": "name",
|
|
"in": "query",
|
|
"description": "If empty or null, will return true as that is invalid",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList/promote-multiple": {
|
|
"post": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"summary": "Promote/UnPromote multiple reading lists in one go. Will only update the authenticated user's reading lists and will only work if the user has promotion role",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PromoteReadingListsDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PromoteReadingListsDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PromoteReadingListsDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList/delete-multiple": {
|
|
"post": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"summary": "Delete multiple reading lists in one go",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeleteReadingListsDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeleteReadingListsDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeleteReadingListsDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList/info": {
|
|
"get": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"summary": "Returns random information about a Reading List",
|
|
"parameters": [
|
|
{
|
|
"name": "readingListId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReadingListInfoDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReadingListInfoDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReadingListInfoDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ReadingList/export-as-cbl": {
|
|
"post": {
|
|
"tags": [
|
|
"ReadingList"
|
|
],
|
|
"summary": "Export a Reading List to CBL format",
|
|
"parameters": [
|
|
{
|
|
"name": "readingListId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "asV2",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/reading-profile/all": {
|
|
"get": {
|
|
"tags": [
|
|
"ReadingProfile"
|
|
],
|
|
"summary": "Gets all non-implicit reading profiles for a user",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/reading-profile/{libraryId}/{seriesId}": {
|
|
"get": {
|
|
"tags": [
|
|
"ReadingProfile"
|
|
],
|
|
"summary": "Returns the ReadingProfile that should be applied to the given series, walks up the tree.\nSeries -> Library -> Default",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "seriesId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "skipImplicit",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "deviceId",
|
|
"in": "query",
|
|
"description": "Defaults to currently active device",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/reading-profile/series": {
|
|
"get": {
|
|
"tags": [
|
|
"ReadingProfile"
|
|
],
|
|
"summary": "Returns all Reading Profiles bound to a series",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"ReadingProfile"
|
|
],
|
|
"summary": "Update the implicit reading profile for a series, creates one if none exists",
|
|
"description": "Any modification to the reader settings during reading will create an implicit profile. Use \"update-parent\" to save to the bound series profile.",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "deviceId",
|
|
"in": "query",
|
|
"description": "Defaults to the currently active device",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/reading-profile/library": {
|
|
"get": {
|
|
"tags": [
|
|
"ReadingProfile"
|
|
],
|
|
"summary": "Returns all the Reading rofiles bound to the library",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/reading-profile/create": {
|
|
"post": {
|
|
"tags": [
|
|
"ReadingProfile"
|
|
],
|
|
"summary": "Creates a new reading profile for the current user",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/reading-profile/promote": {
|
|
"post": {
|
|
"tags": [
|
|
"ReadingProfile"
|
|
],
|
|
"summary": "Promotes the implicit profile to a user profile. Removes the series from other profiles",
|
|
"parameters": [
|
|
{
|
|
"name": "profileId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "deviceId",
|
|
"in": "query",
|
|
"description": "Defaults to the currently active device",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/reading-profile/update-parent": {
|
|
"post": {
|
|
"tags": [
|
|
"ReadingProfile"
|
|
],
|
|
"summary": "Updates the non-implicit reading profile for the given series, and removes implicit profiles",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "deviceId",
|
|
"in": "query",
|
|
"description": "Defaults to currently active device",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/reading-profile": {
|
|
"post": {
|
|
"tags": [
|
|
"ReadingProfile"
|
|
],
|
|
"summary": "Updates the given reading profile, must belong to the current user",
|
|
"description": "This does not update connected series and libraries.",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadingProfileDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"ReadingProfile"
|
|
],
|
|
"summary": "Deletes the given profile, requires the profile to belong to the logged-in user",
|
|
"parameters": [
|
|
{
|
|
"name": "profileId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/reading-profile/series/{seriesId}": {
|
|
"post": {
|
|
"tags": [
|
|
"ReadingProfile"
|
|
],
|
|
"summary": "Sets the reading profile for a given series, removes the old one",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"ReadingProfile"
|
|
],
|
|
"summary": "Clears the reading profile for the given series for the currently logged-in user",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/reading-profile/library/{libraryId}": {
|
|
"post": {
|
|
"tags": [
|
|
"ReadingProfile"
|
|
],
|
|
"summary": "Sets the reading profile for a given library, removes the old one",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"ReadingProfile"
|
|
],
|
|
"summary": "Clears the reading profile for the given library for the currently logged-in user",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/reading-profile/bulk": {
|
|
"post": {
|
|
"tags": [
|
|
"ReadingProfile"
|
|
],
|
|
"summary": "Assigns the reading profile to all passes series, and deletes their implicit profiles",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkSetSeriesProfiles"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkSetSeriesProfiles"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkSetSeriesProfiles"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/reading-profile/set-devices": {
|
|
"post": {
|
|
"tags": [
|
|
"ReadingProfile"
|
|
],
|
|
"summary": "Set the assigned devices for a reading profile",
|
|
"parameters": [
|
|
{
|
|
"name": "profileId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Review/series": {
|
|
"post": {
|
|
"tags": [
|
|
"Review"
|
|
],
|
|
"summary": "Updates the user's review for a given series",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateUserReviewDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateUserReviewDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateUserReviewDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReviewDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReviewDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReviewDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Review"
|
|
],
|
|
"summary": "Deletes the user's review for the given series",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Review/chapter": {
|
|
"post": {
|
|
"tags": [
|
|
"Review"
|
|
],
|
|
"summary": "Update the user's review for a given chapter",
|
|
"requestBody": {
|
|
"description": "chapterId must be set",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateUserReviewDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateUserReviewDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateUserReviewDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReviewDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReviewDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReviewDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Review"
|
|
],
|
|
"summary": "Deletes the user's review for the given chapter",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Review/all": {
|
|
"get": {
|
|
"tags": [
|
|
"Review"
|
|
],
|
|
"summary": "Returns all reviews for the user. If you are authenticated as the user, will always return data, regardless of ShareReviews setting",
|
|
"parameters": [
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"description": "User to load, if your own, will bypass RBS and ShareReviews restrictions",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "rating",
|
|
"in": "query",
|
|
"description": "Null to ignore filtering. >= rating",
|
|
"schema": {
|
|
"type": "number",
|
|
"format": "float"
|
|
}
|
|
},
|
|
{
|
|
"name": "filterQuery",
|
|
"in": "query",
|
|
"description": "Null to ignore filtering on Series name",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserReviewExtendedDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserReviewExtendedDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserReviewExtendedDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Scrobbling/anilist-token": {
|
|
"get": {
|
|
"tags": [
|
|
"Scrobbling"
|
|
],
|
|
"summary": "Get the current user's AniList token",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Scrobbling/mal-token": {
|
|
"get": {
|
|
"tags": [
|
|
"Scrobbling"
|
|
],
|
|
"summary": "Get the current user's MAL token and username",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MalUserInfoDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MalUserInfoDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MalUserInfoDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Scrobbling/update-anilist-token": {
|
|
"post": {
|
|
"tags": [
|
|
"Scrobbling"
|
|
],
|
|
"summary": "Update the current user's AniList token",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AniListUpdateDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AniListUpdateDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AniListUpdateDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Scrobbling/update-mal-token": {
|
|
"post": {
|
|
"tags": [
|
|
"Scrobbling"
|
|
],
|
|
"summary": "Update the current user's MAL token (Client ID) and Username",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MalUserInfoDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MalUserInfoDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MalUserInfoDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Scrobbling/generate-scrobble-events": {
|
|
"post": {
|
|
"tags": [
|
|
"Scrobbling"
|
|
],
|
|
"summary": "When a user request to generate scrobble events from history. Should only be ran once per user.",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Scrobbling/token-expired": {
|
|
"get": {
|
|
"tags": [
|
|
"Scrobbling"
|
|
],
|
|
"summary": "Checks if the current Scrobbling token for the given Provider has expired for the current user",
|
|
"parameters": [
|
|
{
|
|
"name": "provider",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Scrobbling/scrobble-errors": {
|
|
"get": {
|
|
"tags": [
|
|
"Scrobbling"
|
|
],
|
|
"summary": "Returns all scrobbling errors for the instance",
|
|
"description": "Requires admin",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ScrobbleErrorDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ScrobbleErrorDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ScrobbleErrorDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Scrobbling/clear-errors": {
|
|
"post": {
|
|
"tags": [
|
|
"Scrobbling"
|
|
],
|
|
"summary": "Clears the scrobbling errors table",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Scrobbling/scrobble-events": {
|
|
"post": {
|
|
"tags": [
|
|
"Scrobbling"
|
|
],
|
|
"summary": "Returns the scrobbling history for the user",
|
|
"description": "User must have a valid license",
|
|
"parameters": [
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ScrobbleEventFilter"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ScrobbleEventFilter"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ScrobbleEventFilter"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ScrobbleEventDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ScrobbleEventDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ScrobbleEventDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Scrobbling/holds": {
|
|
"get": {
|
|
"tags": [
|
|
"Scrobbling"
|
|
],
|
|
"summary": "Returns all scrobble holds for the current user",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ScrobbleHoldDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ScrobbleHoldDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ScrobbleHoldDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Scrobbling/has-hold": {
|
|
"get": {
|
|
"tags": [
|
|
"Scrobbling"
|
|
],
|
|
"summary": "If there is an active hold on the series",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Scrobbling/library-allows-scrobbling": {
|
|
"get": {
|
|
"tags": [
|
|
"Scrobbling"
|
|
],
|
|
"summary": "Does the library the series is in allow scrobbling?",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Scrobbling/add-hold": {
|
|
"post": {
|
|
"tags": [
|
|
"Scrobbling"
|
|
],
|
|
"summary": "Adds a hold against the Series for user's scrobbling",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Scrobbling/remove-hold": {
|
|
"delete": {
|
|
"tags": [
|
|
"Scrobbling"
|
|
],
|
|
"summary": "Remove a hold against the Series for user's scrobbling",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Scrobbling/has-ran-scrobble-gen": {
|
|
"get": {
|
|
"tags": [
|
|
"Scrobbling"
|
|
],
|
|
"summary": "Has the logged in user ran scrobble generation",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Scrobbling/bulk-remove-events": {
|
|
"post": {
|
|
"tags": [
|
|
"Scrobbling"
|
|
],
|
|
"summary": "Delete the given scrobble events if they belong to that user",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Search/series-for-mangafile": {
|
|
"get": {
|
|
"tags": [
|
|
"Search"
|
|
],
|
|
"summary": "Returns the series for the MangaFile id. If the user does not have access (shouldn't happen by the UI),\nthen null is returned",
|
|
"parameters": [
|
|
{
|
|
"name": "mangaFileId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Search/series-for-chapter": {
|
|
"get": {
|
|
"tags": [
|
|
"Search"
|
|
],
|
|
"summary": "Returns the series for the Chapter id. If the user does not have access (shouldn't happen by the UI),\nthen null is returned",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Search/search": {
|
|
"get": {
|
|
"tags": [
|
|
"Search"
|
|
],
|
|
"summary": "Searches against different entities in the system against a query string",
|
|
"parameters": [
|
|
{
|
|
"name": "queryString",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "includeChapterAndFiles",
|
|
"in": "query",
|
|
"description": "Include Chapter and Filenames in the entities. This can slow down the search on larger systems",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SearchResultGroupDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SearchResultGroupDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SearchResultGroupDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Search/chapters-by-series": {
|
|
"get": {
|
|
"tags": [
|
|
"Search"
|
|
],
|
|
"summary": "Returns all chapters for a given series with localized titles. Used for CBL chapter-level matching.",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChapterDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChapterDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChapterDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/v2": {
|
|
"post": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Gets series with the applied Filter",
|
|
"parameters": [
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/{seriesId}": {
|
|
"get": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Fetches a Series for a given Id",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "path",
|
|
"description": "Series Id to fetch details for",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Deletes a series from Kavita",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/delete-multiple": {
|
|
"post": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Deletes multiple series from Kavita at once",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeleteSeriesDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeleteSeriesDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeleteSeriesDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/volumes": {
|
|
"get": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Returns All volumes for a series with progress information and Chapters",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/VolumeDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/VolumeDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/VolumeDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/volume": {
|
|
"get": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Returns a single Volume with progress information and Chapters",
|
|
"parameters": [
|
|
{
|
|
"name": "volumeId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/VolumeDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/VolumeDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/VolumeDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/chapter": {
|
|
"get": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Returns a single Chapter with progress information",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChapterDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChapterDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChapterDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/update": {
|
|
"post": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Updates the Series",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateSeriesDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateSeriesDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateSeriesDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/recently-added-v2": {
|
|
"post": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Gets all recently added series",
|
|
"parameters": [
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/recently-updated-series": {
|
|
"post": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Returns series that were recently updated, like adding or removing a chapter",
|
|
"parameters": [
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/GroupedSeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/GroupedSeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/GroupedSeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/all-v2": {
|
|
"post": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Returns all series for the library",
|
|
"parameters": [
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"description": "Optional user id to request the OnDeck for someone else. They must have profile sharing enabled when doing so",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "This is not in use",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 0
|
|
}
|
|
},
|
|
{
|
|
"name": "context",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"enum": [
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 1
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/on-deck": {
|
|
"post": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Fetches series that are on deck aka have progress on them.",
|
|
"parameters": [
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "Default of 0 meaning all libraries",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 0
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/remove-from-on-deck": {
|
|
"post": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Removes a series from displaying on deck until the next read event on that series",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/currently-reading": {
|
|
"get": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Get series a user is currently reading, requires the user to share their profile",
|
|
"parameters": [
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/refresh-metadata": {
|
|
"post": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Runs a Cover Image Generation task",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RefreshSeriesDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RefreshSeriesDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RefreshSeriesDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/scan": {
|
|
"post": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Scan a series and force each file to be updated. This should be invoked via the User, hence why we force.",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RefreshSeriesDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RefreshSeriesDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RefreshSeriesDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/analyze": {
|
|
"post": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Run a file analysis on the series.",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RefreshSeriesDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RefreshSeriesDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RefreshSeriesDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/metadata": {
|
|
"get": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Returns metadata for a given series",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesMetadataDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesMetadataDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesMetadataDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Update series metadata",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateSeriesMetadataDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateSeriesMetadataDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateSeriesMetadataDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/series-by-collection": {
|
|
"get": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Returns all Series grouped by the passed Collection Id with Pagination.",
|
|
"parameters": [
|
|
{
|
|
"name": "collectionId",
|
|
"in": "query",
|
|
"description": "Collection Id to pull series from",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/series-by-ids": {
|
|
"post": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Fetches Series for a set of Ids. This will check User for permission access and filter out any Ids that don't exist or\nthe user does not have access to.",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesByIdsDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesByIdsDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesByIdsDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/age-rating": {
|
|
"get": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Get the age rating for the Kavita.Models.Entities.Enums.AgeRating enum value",
|
|
"parameters": [
|
|
{
|
|
"name": "ageRating",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/series-detail": {
|
|
"get": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Get a special DTO for Series Detail page.",
|
|
"description": "Do not rely on this API externally. May change without hesitation.",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesDetailDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesDetailDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesDetailDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/related": {
|
|
"get": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Fetches the related series for a given series",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "relation",
|
|
"in": "query",
|
|
"description": "Type of Relationship to pull back",
|
|
"schema": {
|
|
"enum": [
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/all-related": {
|
|
"get": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Returns all related series against the passed series Id",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RelatedSeriesDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RelatedSeriesDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RelatedSeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/update-related": {
|
|
"post": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Update the relations attached to the Series. Does not generate associated Sequel/Prequel pairs on target series.",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateRelatedSeriesDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateRelatedSeriesDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateRelatedSeriesDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/external-series-detail": {
|
|
"get": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "aniListId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "malId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ExternalSeriesDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ExternalSeriesDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ExternalSeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/next-expected": {
|
|
"get": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Based on the delta times between when chapters are added, for series that are not Completed/Cancelled/Hiatus, forecast the next\ndate when it will be available.",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NextExpectedChapterDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NextExpectedChapterDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NextExpectedChapterDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/match": {
|
|
"post": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Sends a request to Kavita+ API for all potential matches, sorted by relevance",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MatchSeriesDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MatchSeriesDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MatchSeriesDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ExternalSeriesMatchDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ExternalSeriesMatchDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ExternalSeriesMatchDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/update-match": {
|
|
"post": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "This will perform the fix match",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "aniListId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "malId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
{
|
|
"name": "cbrId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/dont-match": {
|
|
"post": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "When true, will not perform a match and will prevent Kavita from attempting to match/scrobble against this series",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "dontMatch",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Series/series-with-annotations": {
|
|
"get": {
|
|
"tags": [
|
|
"Series"
|
|
],
|
|
"summary": "Returns all Series that a user has access to",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Server/clear-cache": {
|
|
"post": {
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"summary": "Performs an ad-hoc cleanup of Cache",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Server/cleanup-want-to-read": {
|
|
"post": {
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"summary": "Performs an ad-hoc cleanup of Want To Read, by removing want to read series for users, where the series are fully read and in Completed publication status.",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Server/cleanup": {
|
|
"post": {
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"summary": "Performs the nightly maintenance work on the Server. Can be heavy.",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Server/backup-db": {
|
|
"post": {
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"summary": "Performs an ad-hoc backup of the Database",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Server/analyze-files": {
|
|
"post": {
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"summary": "This is a one time task that needs to be ran for v0.7 statistics to work",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Server/server-info-slim": {
|
|
"get": {
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"summary": "Returns non-sensitive information about the current system",
|
|
"description": "This is just for the UI and is extremely lightweight",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerInfoSlimDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerInfoSlimDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerInfoSlimDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Server/convert-media": {
|
|
"post": {
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"summary": "Triggers the scheduling of the convert media job. This will convert all media to the target encoding (except for PNG). Only one job will run at a time.",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Server/logs": {
|
|
"get": {
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"summary": "Downloads all the log files via a zip",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Server/check-for-updates": {
|
|
"get": {
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"summary": "Checks for updates and pushes an event to the UI",
|
|
"description": "Some users have websocket issues so this is not always reliable to alert the user",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Server/check-update": {
|
|
"get": {
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"summary": "Checks for updates, if no updates that are > current version installed, returns null",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateNotificationDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateNotificationDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateNotificationDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Server/check-out-of-date": {
|
|
"get": {
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"summary": "Returns how many versions out of date this install is",
|
|
"parameters": [
|
|
{
|
|
"name": "stableOnly",
|
|
"in": "query",
|
|
"description": "Only count Stable releases",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Server/changelog": {
|
|
"get": {
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"summary": "Pull the Changelog for Kavita from Github and display",
|
|
"parameters": [
|
|
{
|
|
"name": "count",
|
|
"in": "query",
|
|
"description": "How many releases from the latest to return",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 0
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UpdateNotificationDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UpdateNotificationDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UpdateNotificationDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Server/jobs": {
|
|
"get": {
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"summary": "Returns a list of reoccurring jobs. Scheduled ad-hoc jobs will not be returned.",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/JobDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/JobDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/JobDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Server/media-errors": {
|
|
"get": {
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"summary": "Returns a list of issues found during scanning or reading in which files may have corruption or bad metadata (structural metadata)",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MediaErrorDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MediaErrorDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MediaErrorDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Server/clear-media-alerts": {
|
|
"post": {
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"summary": "Deletes all media errors",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Server/bust-kavitaplus-cache": {
|
|
"post": {
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"summary": "Bust Kavita+ Cache",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Server/sync-themes": {
|
|
"post": {
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"summary": "Runs the Sync Themes task",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Settings/base-url": {
|
|
"get": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Returns the base url for this instance (if set)",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Settings": {
|
|
"get": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Returns the server settings",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerSettingDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerSettingDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerSettingDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Update Server settings",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerSettingDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerSettingDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerSettingDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerSettingDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerSettingDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerSettingDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Settings/reset": {
|
|
"post": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerSettingDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerSettingDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerSettingDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Settings/reset-ip-addresses": {
|
|
"post": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Resets the IP Addresses",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerSettingDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerSettingDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerSettingDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Settings/reset-base-url": {
|
|
"post": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Resets the Base url",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerSettingDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerSettingDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerSettingDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Settings/is-email-setup": {
|
|
"get": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Is the minimum information setup for Email to work",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Settings/task-frequencies": {
|
|
"get": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "All values allowed for Task Scheduling APIs. A custom cron job is not included. Disabled is not applicable for Cleanup.",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Settings/library-types": {
|
|
"get": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Settings/log-levels": {
|
|
"get": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Settings/opds-enabled": {
|
|
"get": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Settings/is-valid-cron": {
|
|
"get": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Is the cron expression valid for Kavita's scheduler",
|
|
"parameters": [
|
|
{
|
|
"name": "cronExpression",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Settings/test-email-url": {
|
|
"post": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Sends a test email to see if email settings are hooked up correctly",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EmailTestResultDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EmailTestResultDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EmailTestResultDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Settings/metadata-settings": {
|
|
"get": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Get the metadata settings for Kavita+ users.",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MetadataSettingsDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MetadataSettingsDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MetadataSettingsDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Update the metadata settings for Kavita+ Metadata feature",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MetadataSettingsDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MetadataSettingsDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MetadataSettingsDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MetadataSettingsDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MetadataSettingsDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MetadataSettingsDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Settings/import-field-mappings": {
|
|
"post": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Import field mappings",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ImportFieldMappingsDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ImportFieldMappingsDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ImportFieldMappingsDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FieldMappingsImportResultDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FieldMappingsImportResultDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FieldMappingsImportResultDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Settings/oidc": {
|
|
"get": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Retrieve publicly required configuration regarding Oidc",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OidcPublicConfigDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OidcPublicConfigDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OidcPublicConfigDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Settings/reset-external-ids": {
|
|
"post": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Settings/is-valid-authority": {
|
|
"post": {
|
|
"tags": [
|
|
"Settings"
|
|
],
|
|
"summary": "Validate if the given authority is reachable from the server",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AuthorityValidationDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AuthorityValidationDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AuthorityValidationDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/server/stats": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerStatisticsDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerStatisticsDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerStatisticsDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/server/count/publication-status": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PublicationStatusStatCount"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PublicationStatusStatCount"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PublicationStatusStatCount"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/server/count/manga-format": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MangaFormatStatCount"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MangaFormatStatCount"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MangaFormatStatCount"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/popular-decades": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/StatBucketDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/StatBucketDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/StatBucketDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/popular-libraries": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LibraryDtoStatCount"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LibraryDtoStatCount"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LibraryDtoStatCount"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/popular-series": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDtoStatCount"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDtoStatCount"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDtoStatCount"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/popular-reading-list": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "Gets the top 5 most popular reading lists. Counts a reading list as active if a user has read at least some",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDtoStatCount"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDtoStatCount"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDtoStatCount"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/popular-genres": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/GenreTagDtoStatCount"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/GenreTagDtoStatCount"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/GenreTagDtoStatCount"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/popular-tags": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TagDtoStatCount"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TagDtoStatCount"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TagDtoStatCount"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/popular-people": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "role",
|
|
"in": "query",
|
|
"schema": {
|
|
"enum": [
|
|
1,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
15
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDtoStatCount"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDtoStatCount"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDtoStatCount"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/most-active-users": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "Top 5 most active readers for the given timeframe",
|
|
"parameters": [
|
|
{
|
|
"name": "StartDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "TimeZoneId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "EndDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "Libraries",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TopReadDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TopReadDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TopReadDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/server/file-breakdown": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "A breakdown of different files, their size, and format",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/FileExtensionBreakdownDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/FileExtensionBreakdownDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/FileExtensionBreakdownDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/server/file-extension": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "Generates a csv of all file paths for a given extension",
|
|
"parameters": [
|
|
{
|
|
"name": "fileExtension",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/reading-counts": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "Returns reading history events for a give or all users, broken up by day, and format",
|
|
"parameters": [
|
|
{
|
|
"name": "StartDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "TimeZoneId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "EndDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "Libraries",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"description": "If 0, defaults to all users, else just userId",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DateTimeStatCountWithFormat"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DateTimeStatCountWithFormat"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DateTimeStatCountWithFormat"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/day-breakdown": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"default": 0
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DayOfWeekStatCount"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DayOfWeekStatCount"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DayOfWeekStatCount"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/pages-per-year": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "Returns a count of pages read per year for a given userId.",
|
|
"parameters": [
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Int32StatCount"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Int32StatCount"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Int32StatCount"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/words-per-year": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "Returns a count of words read per year for a given userId.",
|
|
"parameters": [
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Int32StatCount"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Int32StatCount"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Int32StatCount"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/files-added-over-time": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DateTimeStatCountWithFormat"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DateTimeStatCountWithFormat"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DateTimeStatCountWithFormat"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/device/client-type": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "Returns client type breakdown for the current month",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeviceClientBreakdownDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeviceClientBreakdownDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeviceClientBreakdownDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/device/device-type": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "Desktop vs Mobile spread over this month",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/StringStatCount"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/StringStatCount"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/StringStatCount"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/reading-activity": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "StartDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "TimeZoneId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "EndDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "Libraries",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "year",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/ReadingActivityGraphEntryDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/ReadingActivityGraphEntryDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/ReadingActivityGraphEntryDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/reading-pace": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "",
|
|
"parameters": [
|
|
{
|
|
"name": "StartDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "TimeZoneId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "EndDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "Libraries",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "year",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "booksOnly",
|
|
"in": "query",
|
|
"description": "This API only returns for Books (epub/pdf) and Comics (Image/Archive) regardless of Library type",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReadingPaceDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReadingPaceDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReadingPaceDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/genre-breakdown": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "Returns the top 10 genres that the user likes reading",
|
|
"parameters": [
|
|
{
|
|
"name": "StartDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "TimeZoneId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "EndDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "Libraries",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/StringBreakDownDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/StringBreakDownDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/StringBreakDownDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/tag-breakdown": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "Returns top 10 tags that user likes reading",
|
|
"parameters": [
|
|
{
|
|
"name": "StartDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "TimeZoneId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "EndDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "Libraries",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/StringBreakDownDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/StringBreakDownDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/StringBreakDownDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/page-spread": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "StartDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "TimeZoneId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "EndDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "Libraries",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SpreadStatsDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SpreadStatsDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SpreadStatsDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/word-spread": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "StartDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "TimeZoneId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "EndDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "Libraries",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SpreadStatsDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SpreadStatsDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SpreadStatsDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/favorite-authors": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "StartDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "TimeZoneId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "EndDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "Libraries",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MostReadAuthorsDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MostReadAuthorsDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MostReadAuthorsDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/avg-time-by-hour": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "Returns the avg time read by hour in the given filter",
|
|
"parameters": [
|
|
{
|
|
"name": "StartDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "TimeZoneId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "EndDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "Libraries",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReadTimeByHourDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReadTimeByHourDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReadTimeByHourDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/reads-by-month": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "StartDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "TimeZoneId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "EndDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "Libraries",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/YearMonthGroupingDtoStatCount"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/YearMonthGroupingDtoStatCount"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/YearMonthGroupingDtoStatCount"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/total-reads": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "Returns the total amount reads in the given filter",
|
|
"parameters": [
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/user-stats": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "StartDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "TimeZoneId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "EndDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "Libraries",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProfileStatBarDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProfileStatBarDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProfileStatBarDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/user-read": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadStatistics"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadStatistics"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserReadStatistics"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stats/reading-history": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "Return a user's reading session history",
|
|
"parameters": [
|
|
{
|
|
"name": "StartDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "TimeZoneId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "EndDate",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "Libraries",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadingHistoryItemDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadingHistoryItemDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadingHistoryItemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stream/dashboard": {
|
|
"get": {
|
|
"tags": [
|
|
"Stream"
|
|
],
|
|
"summary": "Returns the layout of the user's dashboard",
|
|
"parameters": [
|
|
{
|
|
"name": "visibleOnly",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DashboardStreamDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DashboardStreamDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DashboardStreamDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stream/sidenav": {
|
|
"get": {
|
|
"tags": [
|
|
"Stream"
|
|
],
|
|
"summary": "Return's the user's side nav",
|
|
"parameters": [
|
|
{
|
|
"name": "visibleOnly",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SideNavStreamDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SideNavStreamDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SideNavStreamDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stream/external-sources": {
|
|
"get": {
|
|
"tags": [
|
|
"Stream"
|
|
],
|
|
"summary": "Return's the user's external sources",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ExternalSourceDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ExternalSourceDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ExternalSourceDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stream/create-external-source": {
|
|
"post": {
|
|
"tags": [
|
|
"Stream"
|
|
],
|
|
"summary": "Create an external Source",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ExternalSourceDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ExternalSourceDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ExternalSourceDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ExternalSourceDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ExternalSourceDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ExternalSourceDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stream/update-external-source": {
|
|
"post": {
|
|
"tags": [
|
|
"Stream"
|
|
],
|
|
"summary": "Updates an existing external source",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ExternalSourceDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ExternalSourceDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ExternalSourceDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ExternalSourceDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ExternalSourceDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ExternalSourceDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stream/external-source-exists": {
|
|
"post": {
|
|
"tags": [
|
|
"Stream"
|
|
],
|
|
"summary": "Validates the external source by host is unique (for this user)",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ExternalSourceDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ExternalSourceDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ExternalSourceDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stream/delete-external-source": {
|
|
"delete": {
|
|
"tags": [
|
|
"Stream"
|
|
],
|
|
"summary": "Delete's the external source",
|
|
"parameters": [
|
|
{
|
|
"name": "externalSourceId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stream/add-dashboard-stream": {
|
|
"post": {
|
|
"tags": [
|
|
"Stream"
|
|
],
|
|
"summary": "Creates a Dashboard Stream from a SmartFilter and adds it to the user's dashboard as visible",
|
|
"parameters": [
|
|
{
|
|
"name": "smartFilterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DashboardStreamDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DashboardStreamDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DashboardStreamDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stream/update-dashboard-stream": {
|
|
"post": {
|
|
"tags": [
|
|
"Stream"
|
|
],
|
|
"summary": "Updates the visibility of a dashboard stream",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DashboardStreamDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DashboardStreamDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DashboardStreamDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stream/update-dashboard-position": {
|
|
"post": {
|
|
"tags": [
|
|
"Stream"
|
|
],
|
|
"summary": "Updates the position of a dashboard stream",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateStreamPositionDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateStreamPositionDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateStreamPositionDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stream/add-sidenav-stream": {
|
|
"post": {
|
|
"tags": [
|
|
"Stream"
|
|
],
|
|
"summary": "Creates a SideNav Stream from a SmartFilter and adds it to the user's sidenav as visible",
|
|
"parameters": [
|
|
{
|
|
"name": "smartFilterId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SideNavStreamDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SideNavStreamDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SideNavStreamDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stream/add-sidenav-stream-from-external-source": {
|
|
"post": {
|
|
"tags": [
|
|
"Stream"
|
|
],
|
|
"summary": "Creates a SideNav Stream from a SmartFilter and adds it to the user's sidenav as visible",
|
|
"parameters": [
|
|
{
|
|
"name": "externalSourceId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SideNavStreamDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SideNavStreamDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SideNavStreamDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stream/update-sidenav-stream": {
|
|
"post": {
|
|
"tags": [
|
|
"Stream"
|
|
],
|
|
"summary": "Updates the visibility of a dashboard stream",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SideNavStreamDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SideNavStreamDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SideNavStreamDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stream/update-sidenav-position": {
|
|
"post": {
|
|
"tags": [
|
|
"Stream"
|
|
],
|
|
"summary": "Updates the position of a dashboard stream",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateStreamPositionDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateStreamPositionDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateStreamPositionDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stream/bulk-sidenav-stream-visibility": {
|
|
"post": {
|
|
"tags": [
|
|
"Stream"
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkUpdateSideNavStreamVisibilityDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkUpdateSideNavStreamVisibilityDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkUpdateSideNavStreamVisibilityDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stream/smart-filter-side-nav-stream": {
|
|
"delete": {
|
|
"tags": [
|
|
"Stream"
|
|
],
|
|
"summary": "Removes a Smart Filter from a user's SideNav Streams",
|
|
"parameters": [
|
|
{
|
|
"name": "sideNavStreamId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Stream/smart-filter-dashboard-stream": {
|
|
"delete": {
|
|
"tags": [
|
|
"Stream"
|
|
],
|
|
"summary": "Removes a Smart Filter from a user's Dashboard Streams",
|
|
"parameters": [
|
|
{
|
|
"name": "dashboardStreamId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Tachiyomi/latest-chapter": {
|
|
"get": {
|
|
"tags": [
|
|
"Tachiyomi"
|
|
],
|
|
"summary": "Given the series Id, this should return the latest chapter that has been fully read.",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChapterDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChapterDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChapterDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Tachiyomi/mark-chapter-until-as-read": {
|
|
"post": {
|
|
"tags": [
|
|
"Tachiyomi"
|
|
],
|
|
"summary": "Marks every chapter that is sorted below the passed number as Read. This will not mark any specials as read.",
|
|
"description": "This is built for Tachiyomi and is not expected to be called by any other place",
|
|
"parameters": [
|
|
{
|
|
"name": "seriesId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "chapterNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "number",
|
|
"format": "float"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Theme": {
|
|
"get": {
|
|
"tags": [
|
|
"Theme"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SiteThemeDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SiteThemeDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SiteThemeDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Theme"
|
|
],
|
|
"summary": "Attempts to delete a theme. If already in use by users, will not allow",
|
|
"parameters": [
|
|
{
|
|
"name": "themeId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DownloadableSiteThemeDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DownloadableSiteThemeDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DownloadableSiteThemeDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Theme/update-default": {
|
|
"post": {
|
|
"tags": [
|
|
"Theme"
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateDefaultThemeDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateDefaultThemeDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateDefaultThemeDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Theme/download-content": {
|
|
"get": {
|
|
"tags": [
|
|
"Theme"
|
|
],
|
|
"summary": "Returns css content to the UI. UI is expected to escape the content",
|
|
"parameters": [
|
|
{
|
|
"name": "themeId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Theme/browse": {
|
|
"get": {
|
|
"tags": [
|
|
"Theme"
|
|
],
|
|
"summary": "Browse themes that can be used on this server",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DownloadableSiteThemeDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DownloadableSiteThemeDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DownloadableSiteThemeDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Theme/download-theme": {
|
|
"post": {
|
|
"tags": [
|
|
"Theme"
|
|
],
|
|
"summary": "Downloads a SiteTheme from upstream",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DownloadableSiteThemeDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DownloadableSiteThemeDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DownloadableSiteThemeDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SiteThemeDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SiteThemeDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SiteThemeDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Theme/upload-theme": {
|
|
"post": {
|
|
"tags": [
|
|
"Theme"
|
|
],
|
|
"summary": "Uploads a new theme file",
|
|
"requestBody": {
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"formFile": {
|
|
"type": "string",
|
|
"description": "",
|
|
"format": "binary"
|
|
}
|
|
}
|
|
},
|
|
"encoding": {
|
|
"formFile": {
|
|
"style": "form"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SiteThemeDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SiteThemeDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SiteThemeDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Upload/upload-by-url": {
|
|
"post": {
|
|
"tags": [
|
|
"Upload"
|
|
],
|
|
"summary": "This stores a file (image) in temp directory for use in a cover image replacement flow.\nThis is automatically cleaned up.",
|
|
"requestBody": {
|
|
"description": "Escaped url to download from",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadUrlDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadUrlDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadUrlDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Upload/series": {
|
|
"post": {
|
|
"tags": [
|
|
"Upload"
|
|
],
|
|
"summary": "Replaces series cover image and locks it with a base64 encoded image",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Upload/collection": {
|
|
"post": {
|
|
"tags": [
|
|
"Upload"
|
|
],
|
|
"summary": "Replaces collection tag cover image and locks it with a base64 encoded image",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Upload/reading-list": {
|
|
"post": {
|
|
"tags": [
|
|
"Upload"
|
|
],
|
|
"summary": "Replaces reading list cover image and locks it with a base64 encoded image",
|
|
"description": "This is the only API that can be called by non-admins, but the authenticated user must have a readinglist permission",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Upload/chapter": {
|
|
"post": {
|
|
"tags": [
|
|
"Upload"
|
|
],
|
|
"summary": "Replaces chapter cover image and locks it with a base64 encoded image. This will update the parent volume's cover image.",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Upload/volume": {
|
|
"post": {
|
|
"tags": [
|
|
"Upload"
|
|
],
|
|
"summary": "Replaces volume cover image and locks it with a base64 encoded image.",
|
|
"description": "This will not update the underlying chapter",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Upload/library": {
|
|
"post": {
|
|
"tags": [
|
|
"Upload"
|
|
],
|
|
"summary": "Replaces library cover image with a base64 encoded image. If empty string passed, will reset to null.",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Upload/person": {
|
|
"post": {
|
|
"tags": [
|
|
"Upload"
|
|
],
|
|
"summary": "Replaces person tag cover image and locks it with a base64 encoded image",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Upload/user": {
|
|
"post": {
|
|
"tags": [
|
|
"Upload"
|
|
],
|
|
"summary": "Replaces user cover image and locks it with a base64 encoded image",
|
|
"description": "You MUST be the user in question",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadCoverFileDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Users/delete-user": {
|
|
"delete": {
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "username",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Users": {
|
|
"get": {
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"summary": "Returns all users of this server",
|
|
"parameters": [
|
|
{
|
|
"name": "includePending",
|
|
"in": "query",
|
|
"description": "This will include pending members",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MemberDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MemberDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MemberDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Users/profile-info": {
|
|
"get": {
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"summary": "Get Information about a given user",
|
|
"parameters": [
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemberInfoDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemberInfoDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemberInfoDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Users/has-profile-shared": {
|
|
"get": {
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"summary": "Does the requested user have their profile sharing on",
|
|
"parameters": [
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Users/has-reading-progress": {
|
|
"get": {
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"summary": "Is there any reading progress on this library",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Users/has-library-access": {
|
|
"get": {
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"summary": "Does the user have access to this library",
|
|
"parameters": [
|
|
{
|
|
"name": "libraryId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Users/update-preferences": {
|
|
"post": {
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"summary": "Update the user preferences",
|
|
"description": "If the user has ReadOnly role, they will not be able to perform this action",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserPreferencesDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserPreferencesDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserPreferencesDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserPreferencesDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserPreferencesDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserPreferencesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Users/get-preferences": {
|
|
"get": {
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"summary": "Returns the preferences of the user",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserPreferencesDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserPreferencesDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserPreferencesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Users/names": {
|
|
"get": {
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"summary": "Returns a list of the user names within the system",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Users/tokens": {
|
|
"get": {
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"summary": "Returns all users with tokens registered and their token information. Does not send the tokens.",
|
|
"description": "Kavita+ only",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserTokenInfo"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserTokenInfo"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserTokenInfo"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Volume": {
|
|
"get": {
|
|
"tags": [
|
|
"Volume"
|
|
],
|
|
"summary": "Returns the appropriate Volume",
|
|
"parameters": [
|
|
{
|
|
"name": "volumeId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/VolumeDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/VolumeDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/VolumeDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Volume"
|
|
],
|
|
"summary": "Delete the Volume from the DB",
|
|
"parameters": [
|
|
{
|
|
"name": "volumeId",
|
|
"in": "query",
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Volume/update": {
|
|
"post": {
|
|
"tags": [
|
|
"Volume"
|
|
],
|
|
"summary": "Updates the information on the Volume",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateVolumeDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateVolumeDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateVolumeDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/VolumeDto"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/VolumeDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/VolumeDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/Volume/multiple": {
|
|
"post": {
|
|
"tags": [
|
|
"Volume"
|
|
],
|
|
"summary": "Delete multiple Volumes from the DB",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/want-to-read/v2": {
|
|
"post": {
|
|
"tags": [
|
|
"WantToRead"
|
|
],
|
|
"summary": "Return all Series that are in the current logged in user's Want to Read list, filtered",
|
|
"parameters": [
|
|
{
|
|
"name": "PageNumber",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "PageSize",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "userId",
|
|
"in": "query",
|
|
"description": "Optional user id to request the OnDeck for someone else. They must have profile sharing enabled when doing so",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FilterV2Dto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/want-to-read/add-series": {
|
|
"post": {
|
|
"tags": [
|
|
"WantToRead"
|
|
],
|
|
"summary": "Given a list of Series Ids, add them to the current logged in user's Want To Read list",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateWantToReadDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateWantToReadDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateWantToReadDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/want-to-read/remove-series": {
|
|
"post": {
|
|
"tags": [
|
|
"WantToRead"
|
|
],
|
|
"summary": "Given a list of Series Ids, remove them from the current logged in user's Want To Read list",
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateWantToReadDto"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateWantToReadDto"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateWantToReadDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"components": {
|
|
"schemas": {
|
|
"ALMediaTitle": {
|
|
"type": "object",
|
|
"properties": {
|
|
"englishTitle": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"romajiTitle": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"nativeTitle": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"preferredTitle": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"AgeRatingDto": {
|
|
"required": [
|
|
"title"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
-1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"AgeRestrictionDto": {
|
|
"required": [
|
|
"ageRating",
|
|
"includeUnknowns"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"ageRating": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
-1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"includeUnknowns": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"AniListUpdateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"token": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"AnnotationDto": {
|
|
"required": [
|
|
"chapterId",
|
|
"libraryId",
|
|
"ownerUserId",
|
|
"seriesId",
|
|
"volumeId",
|
|
"xPath"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"xPath": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"endingXPath": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"selectedText": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"comment": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"commentHtml": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"commentPlainText": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"chapterTitle": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"context": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"highlightCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"containsSpoiler": {
|
|
"type": "boolean"
|
|
},
|
|
"pageNumber": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"selectedSlotIndex": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"likes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"seriesName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"libraryName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"volumeId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"ownerUserId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"ownerUsername": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"ageRating": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
-1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"createdUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"lastModifiedUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"AnnotationFilterStatementDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"comparison": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
15,
|
|
16
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"field": {
|
|
"enum": [
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"value": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"AnnotationSortOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"sortField": {
|
|
"enum": [
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"isAscending": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"AppUserCollectionDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"summary": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"promoted": {
|
|
"type": "boolean"
|
|
},
|
|
"ageRating": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
-1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"coverImage": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"primaryColor": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"secondaryColor": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"coverImageLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"itemCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"owner": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"lastSyncUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"source": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"sourceUrl": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"totalSourceCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"missingSeriesFromSource": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"AppUserOpdsPreferences": {
|
|
"type": "object",
|
|
"properties": {
|
|
"embedProgressIndicator": {
|
|
"type": "boolean"
|
|
},
|
|
"includeContinueFrom": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"AppUserSocialPreferences": {
|
|
"type": "object",
|
|
"properties": {
|
|
"shareReviews": {
|
|
"type": "boolean"
|
|
},
|
|
"shareAnnotations": {
|
|
"type": "boolean"
|
|
},
|
|
"viewOtherAnnotations": {
|
|
"type": "boolean"
|
|
},
|
|
"socialLibraries": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"socialMaxAgeRating": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
-1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"socialIncludeUnknowns": {
|
|
"type": "boolean"
|
|
},
|
|
"shareProfile": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"AuthKeyDto": {
|
|
"required": [
|
|
"key",
|
|
"name"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"createdAtUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"expiresAtUtc": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"nullable": true
|
|
},
|
|
"lastAccessedAtUtc": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"nullable": true
|
|
},
|
|
"provider": {
|
|
"enum": [
|
|
0,
|
|
1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"AuthKeyExpiresAtDto": {
|
|
"required": [
|
|
"expiresAt"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"expiresAt": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"AuthorChapterDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"AuthorityValidationDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"authority": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BookChapterItem": {
|
|
"type": "object",
|
|
"properties": {
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"part": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"children": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BookChapterItem"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BookInfoDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"bookTitle": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"volumeId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesFormat": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"chapterNumber": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"volumeNumber": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"pages": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"isSpecial": {
|
|
"type": "boolean"
|
|
},
|
|
"chapterTitle": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BookmarkDto": {
|
|
"required": [
|
|
"chapterId",
|
|
"page",
|
|
"seriesId",
|
|
"volumeId"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"volumeId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"imageOffset": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"xPath": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"series": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
},
|
|
"chapterTitle": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BookmarkInfoDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"seriesFormat": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryType": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"pages": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"pageDimensions": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/FileDimensionDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"doublePairs": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BookmarkSearchResultDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"volumeId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"localizedSeriesName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BrowseAnnotationFilterDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"statements": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AnnotationFilterStatementDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"combination": {
|
|
"enum": [
|
|
0,
|
|
1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"sortOptions": {
|
|
"$ref": "#/components/schemas/AnnotationSortOptions"
|
|
},
|
|
"limitTo": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BrowseGenreDto": {
|
|
"required": [
|
|
"title"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"seriesCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BrowsePersonDto": {
|
|
"required": [
|
|
"name"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"coverImageLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"primaryColor": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"secondaryColor": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"coverImage": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"aliases": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"asin": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"aniListId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"malId": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"hardcoverId": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"webLinks": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"roles": {
|
|
"type": "array",
|
|
"items": {
|
|
"enum": [
|
|
1,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
15
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"seriesCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BrowsePersonFilterDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"statements": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonFilterStatementDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"combination": {
|
|
"enum": [
|
|
0,
|
|
1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"sortOptions": {
|
|
"$ref": "#/components/schemas/PersonSortOptions"
|
|
},
|
|
"limitTo": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BrowseTagDto": {
|
|
"required": [
|
|
"title"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"seriesCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BulkActionDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"ids": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"force": {
|
|
"type": "boolean",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BulkChapterSizeRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"chapterIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BulkReadingListSizeRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"readingListIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BulkRemoveBookmarkForSeriesDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BulkSeriesSizeRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BulkSetSeriesProfiles": {
|
|
"type": "object",
|
|
"properties": {
|
|
"profileIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"seriesIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BulkUpdateSideNavStreamVisibilityDto": {
|
|
"required": [
|
|
"ids",
|
|
"visibility"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"ids": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"visibility": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BulkVolumeSizeRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"volumeIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CblBookResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"order": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"series": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"volume": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"number": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"readingListName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"reason": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"matchTier": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
-1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterTitle": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"matchedSeriesName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"libraryType": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterNumber": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"candidates": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/CblSeriesCandidate"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CblFinalizeRequestDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"fileName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"decisions": {
|
|
"$ref": "#/components/schemas/CblImportDecisions"
|
|
},
|
|
"provider": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"repoPath": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"downloadUrl": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"sha": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CblImportDecisions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"itemResolutions": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/CblItemDecision"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"saveAsRemapRules": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CblImportSummaryDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"cblName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"fileName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"results": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/CblBookResult"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"success": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"successfulInserts": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/CblBookResult"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"isUpdate": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CblItemDecision": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"volumeId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CblReValidateRequestDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"fileName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CblRepoBrowseResultDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/CblRepoItemDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"rateLimitDto": {
|
|
"$ref": "#/components/schemas/GithubRateLimitDto"
|
|
},
|
|
"fromCache": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CblRepoImportRequestDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/CblRepoItemDto"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CblRepoItemDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"path": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"isDirectory": {
|
|
"type": "boolean"
|
|
},
|
|
"sha": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"size": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"downloadUrl": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"existingReadingListId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"alreadySynced": {
|
|
"type": "boolean",
|
|
"readOnly": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CblSavedFileDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"fileName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"provider": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"repoPath": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"downloadUrl": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"sha": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CblSeriesCandidate": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ChapterDetailPlusDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"rating": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"hasBeenRated": {
|
|
"type": "boolean"
|
|
},
|
|
"reviews": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserReviewDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"ratings": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/RatingDto"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ChapterDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"range": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"number": {
|
|
"type": "string",
|
|
"nullable": true,
|
|
"deprecated": true
|
|
},
|
|
"minNumber": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"maxNumber": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"sortOrder": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"pages": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"isSpecial": {
|
|
"type": "boolean"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"files": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MangaFileDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"pagesRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"totalReads": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"lastReadingProgressUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"lastReadingProgress": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"coverImageLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"volumeId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"createdUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"lastModifiedUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"created": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"releaseDate": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"titleName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"summary": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"ageRating": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
-1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"wordCount": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"volumeTitle": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"minHoursToRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"maxHoursToRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"avgHoursToRead": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"webLinks": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"isbn": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"writers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"coverArtists": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"publishers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"characters": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"pencillers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"inkers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"imprints": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"colorists": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"letterers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"editors": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"translators": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"teams": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"locations": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"genres": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/GenreTagDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TagDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"publicationStatus": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"language": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"count": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"totalCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"languageLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"summaryLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"ageRatingLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"publicationStatusLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"genresLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"tagsLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"writerLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"characterLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"coloristLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"editorLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"inkerLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"imprintLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"lettererLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"pencillerLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"publisherLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"translatorLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"teamLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"locationLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"coverArtistLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"releaseDateLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"titleNameLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"sortOrderLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"coverImage": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"primaryColor": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"secondaryColor": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"format": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true,
|
|
"readOnly": true
|
|
},
|
|
"aniListId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"malId": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"hardcoverId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"metronId": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"comicVineId": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"mangaBakaId": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ChapterInfoDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"chapterNumber": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"volumeNumber": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"volumeId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"seriesFormat": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryType": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterTitle": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"pages": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"fileName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"isSpecial": {
|
|
"type": "boolean"
|
|
},
|
|
"subtitle": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"seriesTotalPages": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesTotalPagesRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"pageDimensions": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/FileDimensionDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"doublePairs": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ChapterMetadataDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"writers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"coverArtists": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"publishers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"characters": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"pencillers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"inkers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"imprints": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"colorists": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"letterers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"editors": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"translators": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"teams": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"locations": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"genres": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/GenreTagDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TagDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"ageRating": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
-1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"releaseDate": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"publicationStatus": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"summary": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"language": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"count": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"totalCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"wordCount": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CheckForFilesInFolderRootsDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"roots": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ClientDeviceDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"friendlyName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"uiFingerprint": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"currentClientInfo": {
|
|
"$ref": "#/components/schemas/ClientInfoDto"
|
|
},
|
|
"firstSeenUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"lastSeenUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"ownerUsername": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"ownerUserId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ClientDeviceTypeStatCount": {
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"count": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ClientInfoDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"userAgent": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"ipAddress": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"authType": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"clientType": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"appVersion": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"browser": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"browserVersion": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"platform": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"deviceType": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"screenWidth": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"screenHeight": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"orientation": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CollectionTagBulkAddDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"collectionTagId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"collectionTagTitle": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"seriesIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ColorScapeDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"primary": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"secondary": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ConfirmEmailDto": {
|
|
"required": [
|
|
"email",
|
|
"password",
|
|
"token",
|
|
"username"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"email": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"token": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"maxLength": 256,
|
|
"minLength": 6,
|
|
"type": "string"
|
|
},
|
|
"username": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ConfirmEmailUpdateDto": {
|
|
"required": [
|
|
"email",
|
|
"token"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"email": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"token": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ConfirmMigrationEmailDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"email": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"token": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ConfirmPasswordResetDto": {
|
|
"required": [
|
|
"email",
|
|
"password",
|
|
"token"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"email": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"token": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"maxLength": 256,
|
|
"minLength": 6,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CopySettingsFromLibraryDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"sourceLibraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"targetLibraryIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"includeType": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CreateEmailDeviceDto": {
|
|
"required": [
|
|
"emailAddress",
|
|
"name",
|
|
"platform"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"platform": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"emailAddress": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CreatePersonalToCDto": {
|
|
"required": [
|
|
"chapterId",
|
|
"libraryId",
|
|
"pageNumber",
|
|
"seriesId",
|
|
"title",
|
|
"volumeId"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"volumeId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"pageNumber": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"bookScrollId": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"selectedText": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CreateReadingListDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CreateRemapRuleDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"cblSeriesName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"cblVolume": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"cblNumber": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"volumeId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"DashboardStreamDto": {
|
|
"required": [
|
|
"name"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"isProvided": {
|
|
"type": "boolean"
|
|
},
|
|
"order": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"smartFilterEncoded": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"smartFilterId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"streamType": {
|
|
"enum": [
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"visible": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"DateTimeStatCountWithFormat": {
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"count": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"format": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"DayOfWeekStatCount": {
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"count": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"DecodeFilterDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"encodedFilter": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"DeleteChaptersDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"chapterIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"DeleteCollectionsDto": {
|
|
"required": [
|
|
"collectionIds"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"collectionIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"DeleteReadingListsDto": {
|
|
"required": [
|
|
"readingListIds"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"readingListIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"DeleteSeriesDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"DeviceClientBreakdownDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"records": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ClientDeviceTypeStatCount"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"totalCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"DirectoryDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"fullPath": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"DownloadBookmarkDto": {
|
|
"required": [
|
|
"bookmarks"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"bookmarks": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BookmarkDto"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"DownloadableSiteThemeDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"cssUrl": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"cssFile": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"previewUrls": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"alreadyDownloaded": {
|
|
"type": "boolean"
|
|
},
|
|
"sha": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"path": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"author": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"lastCompatibleVersion": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"isCompatible": {
|
|
"type": "boolean"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"EmailDeviceDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"emailAddress": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"platform": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"EmailHistoryDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"sent": {
|
|
"type": "boolean"
|
|
},
|
|
"sendDate": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"emailTemplate": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"errorMessage": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"toUserName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"EmailTestResultDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"successful": {
|
|
"type": "boolean"
|
|
},
|
|
"errorMessage": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"emailAddress": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"EpubFontDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"provider": {
|
|
"enum": [
|
|
1,
|
|
2
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"fileName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ExternalChapterDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"issueNumber": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"criticRating": {
|
|
"type": "number",
|
|
"format": "double",
|
|
"nullable": true
|
|
},
|
|
"userRating": {
|
|
"type": "number",
|
|
"format": "double",
|
|
"nullable": true
|
|
},
|
|
"summary": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"writers": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"artists": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"releaseDate": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"nullable": true
|
|
},
|
|
"publisher": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"coverImageUrl": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"issueUrl": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"criticReviews": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserReviewDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"userReviews": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserReviewDto"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ExternalSeriesDetailDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"aniListId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"malId": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"nullable": true
|
|
},
|
|
"cbrId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"synonyms": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"plusMediaFormat": {
|
|
"enum": [
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"siteUrl": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"coverUrl": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"genres": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"staff": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesStaffDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MetadataTagDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"summary": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"provider": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"startDate": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"nullable": true
|
|
},
|
|
"endDate": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"nullable": true
|
|
},
|
|
"averageScore": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapters": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"volumes": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"relations": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesRelationship"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"characters": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesCharacter"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"publisher": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"chapterDtos": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ExternalChapterDto"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ExternalSeriesDto": {
|
|
"required": [
|
|
"coverUrl",
|
|
"name",
|
|
"url"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"coverUrl": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"summary": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"aniListId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"malId": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"nullable": true
|
|
},
|
|
"provider": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ExternalSeriesMatchDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"series": {
|
|
"$ref": "#/components/schemas/ExternalSeriesDetailDto"
|
|
},
|
|
"matchRating": {
|
|
"type": "number",
|
|
"format": "float"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ExternalSourceDto": {
|
|
"required": [
|
|
"apiKey",
|
|
"host",
|
|
"id",
|
|
"name"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"host": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"apiKey": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"FieldMappingsDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"blacklist": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"whitelist": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"ageRatingMappings": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
-1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"fieldMappings": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MetadataFieldMappingDto"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"FieldMappingsImportResultDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"success": {
|
|
"type": "boolean"
|
|
},
|
|
"resultingMetadataSettings": {
|
|
"$ref": "#/components/schemas/MetadataSettingsDto"
|
|
},
|
|
"ageRatingConflicts": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"FileDimensionDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"width": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"height": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"pageNumber": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"fileName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"isWide": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"FileExtensionBreakdownDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"totalFileSize": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"fileBreakdown": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/FileExtensionDto"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"FileExtensionDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"extension": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"format": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"totalSize": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"totalFiles": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"FilterDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"formats": {
|
|
"type": "array",
|
|
"items": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"readStatus": {
|
|
"$ref": "#/components/schemas/ReadStatus"
|
|
},
|
|
"libraries": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"genres": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"writers": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"penciller": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"inker": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"colorist": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"letterer": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"coverArtist": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"editor": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"publisher": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"character": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"translators": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"collectionTags": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"rating": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"sortOptions": {
|
|
"$ref": "#/components/schemas/SortOptions"
|
|
},
|
|
"ageRating": {
|
|
"type": "array",
|
|
"items": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
-1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"languages": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"publicationStatus": {
|
|
"type": "array",
|
|
"items": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"seriesNameQuery": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"releaseYearRange": {
|
|
"$ref": "#/components/schemas/Int32Range"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"FilterStatementDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"comparison": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
15,
|
|
16
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"field": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
15,
|
|
16,
|
|
17,
|
|
18,
|
|
19,
|
|
20,
|
|
21,
|
|
22,
|
|
23,
|
|
24,
|
|
25,
|
|
26,
|
|
27,
|
|
28,
|
|
29,
|
|
30,
|
|
31,
|
|
32,
|
|
33
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"value": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"FilterV2Dto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"statements": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/FilterStatementDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"combination": {
|
|
"enum": [
|
|
0,
|
|
1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"sortOptions": {
|
|
"$ref": "#/components/schemas/SortOptions"
|
|
},
|
|
"limitTo": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"FullProgressDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"pagesRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"lastModified": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"lastModifiedUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"created": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"createdUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"appUserId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"userName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"GenreTagDto": {
|
|
"required": [
|
|
"title"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"GenreTagDtoStatCount": {
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"$ref": "#/components/schemas/GenreTagDto"
|
|
},
|
|
"count": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"GithubRateLimitDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"remaining": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"limit": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"resetsAtUtc": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"nullable": true
|
|
},
|
|
"isLow": {
|
|
"type": "boolean",
|
|
"readOnly": true
|
|
},
|
|
"isExhausted": {
|
|
"type": "boolean",
|
|
"readOnly": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"GroupedSeriesDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryType": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"created": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"volumeId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"format": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"count": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"HighlightSlot": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"slotNumber": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"color": {
|
|
"$ref": "#/components/schemas/RgbaColor"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"HourEstimateRangeDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"minHours": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"maxHours": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"avgHours": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"wordCount": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"pageCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ImportFieldMappingsDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"settings": {
|
|
"$ref": "#/components/schemas/ImportSettingsDto"
|
|
},
|
|
"data": {
|
|
"$ref": "#/components/schemas/FieldMappingsDto"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ImportSettingsDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"importMode": {
|
|
"enum": [
|
|
0,
|
|
1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"resolution": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"whitelist": {
|
|
"type": "boolean"
|
|
},
|
|
"blacklist": {
|
|
"type": "boolean"
|
|
},
|
|
"ageRatings": {
|
|
"type": "boolean"
|
|
},
|
|
"fieldMappings": {
|
|
"type": "boolean"
|
|
},
|
|
"ageRatingConflictResolutions": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"Int32Range": {
|
|
"type": "object",
|
|
"properties": {
|
|
"min": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"max": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"Int32StatCount": {
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"count": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"InviteUserDto": {
|
|
"required": [
|
|
"email"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"email": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"roles": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"libraries": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"ageRestriction": {
|
|
"$ref": "#/components/schemas/AgeRestrictionDto"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"InviteUserResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"emailLink": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"emailSent": {
|
|
"type": "boolean"
|
|
},
|
|
"invalidEmail": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"JobDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"createdAtUtc": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"nullable": true
|
|
},
|
|
"lastExecutionUtc": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"nullable": true
|
|
},
|
|
"cron": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"JumpKeyDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"size": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"KavitaLocale": {
|
|
"type": "object",
|
|
"properties": {
|
|
"fileName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"renderName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"translationCompletion": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"isRtL": {
|
|
"type": "boolean"
|
|
},
|
|
"hash": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"KeyBind": {
|
|
"type": "object",
|
|
"properties": {
|
|
"key": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"control": {
|
|
"type": "boolean"
|
|
},
|
|
"shift": {
|
|
"type": "boolean"
|
|
},
|
|
"meta": {
|
|
"type": "boolean"
|
|
},
|
|
"alt": {
|
|
"type": "boolean"
|
|
},
|
|
"controllerSequence": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"KoreaderBookDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"document": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"device_id": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"device": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"percentage": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"progress": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"timestamp": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"KoreaderProgressUpdateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"document": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"timestamp": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"LanguageDto": {
|
|
"required": [
|
|
"isoCode",
|
|
"title"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"isoCode": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"LibraryDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"type": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"lastScanned": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"coverImage": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"folderWatching": {
|
|
"type": "boolean"
|
|
},
|
|
"includeInDashboard": {
|
|
"type": "boolean"
|
|
},
|
|
"includeInRecommended": {
|
|
"type": "boolean"
|
|
},
|
|
"manageCollections": {
|
|
"type": "boolean"
|
|
},
|
|
"manageReadingLists": {
|
|
"type": "boolean"
|
|
},
|
|
"includeInSearch": {
|
|
"type": "boolean"
|
|
},
|
|
"allowScrobbling": {
|
|
"type": "boolean"
|
|
},
|
|
"folders": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"collapseSeriesRelationships": {
|
|
"type": "boolean"
|
|
},
|
|
"libraryFileTypes": {
|
|
"type": "array",
|
|
"items": {
|
|
"enum": [
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"excludePatterns": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"allowMetadataMatching": {
|
|
"type": "boolean"
|
|
},
|
|
"enableMetadata": {
|
|
"type": "boolean"
|
|
},
|
|
"removePrefixForSortName": {
|
|
"type": "boolean"
|
|
},
|
|
"inheritWebLinksFromFirstChapter": {
|
|
"type": "boolean"
|
|
},
|
|
"defaultLanguage": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"LibraryDtoStatCount": {
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"$ref": "#/components/schemas/LibraryDto"
|
|
},
|
|
"count": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"LicenseInfoDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"expirationDate": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"isActive": {
|
|
"type": "boolean"
|
|
},
|
|
"isCancelled": {
|
|
"type": "boolean"
|
|
},
|
|
"isValidVersion": {
|
|
"type": "boolean"
|
|
},
|
|
"registeredEmail": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"totalMonthsSubbed": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"hasLicense": {
|
|
"type": "boolean"
|
|
},
|
|
"installId": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"LoginDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"username": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"password": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"apiKey": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"MalStackDto": {
|
|
"required": [
|
|
"author",
|
|
"restackCount",
|
|
"seriesCount",
|
|
"stackId",
|
|
"title",
|
|
"url"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"stackId": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"author": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"seriesCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"restackCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"existingId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"MalUserInfoDto": {
|
|
"required": [
|
|
"accessToken",
|
|
"username"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"username": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"accessToken": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ManageMatchFilterDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"matchStateOption": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryType": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"searchTerm": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ManageMatchSeriesDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"series": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
},
|
|
"isMatched": {
|
|
"type": "boolean"
|
|
},
|
|
"validUntilUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"MangaFileDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"filePath": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"pages": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"bytes": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"format": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"created": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"extension": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"koreaderHash": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"MangaFormatStatCount": {
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"count": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"MarkChapterReadDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"generateReadingSession": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"MarkMultipleSeriesAsReadDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"generateReadingSession": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"MarkReadDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"generateReadingSession": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"MarkVolumeReadDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"volumeId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"generateReadingSession": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"MarkVolumesReadDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"volumeIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"chapterIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"generateReadingSession": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"MatchSeriesDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"dontMatch": {
|
|
"type": "boolean"
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"query": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"MediaErrorDto": {
|
|
"required": [
|
|
"extension",
|
|
"filePath"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"extension": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"filePath": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"comment": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"details": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"createdUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"MemberDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"username": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"email": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"isPending": {
|
|
"type": "boolean"
|
|
},
|
|
"ageRestriction": {
|
|
"$ref": "#/components/schemas/AgeRestrictionDto"
|
|
},
|
|
"created": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"createdUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"lastActive": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"lastActiveUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"libraries": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LibraryDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"roles": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"identityProvider": {
|
|
"enum": [
|
|
0,
|
|
1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"MemberInfoDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"username": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"created": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"createdUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"coverImage": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"MetadataFieldMappingDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"sourceType": {
|
|
"enum": [
|
|
0,
|
|
1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"destinationType": {
|
|
"enum": [
|
|
0,
|
|
1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"sourceValue": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"destinationValue": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"excludeFromSource": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"MetadataSettingsDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"blacklist": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"whitelist": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"ageRatingMappings": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
-1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"fieldMappings": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MetadataFieldMappingDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"enableExtendedMetadataProcessing": {
|
|
"type": "boolean"
|
|
},
|
|
"enableSummary": {
|
|
"type": "boolean"
|
|
},
|
|
"enablePublicationStatus": {
|
|
"type": "boolean"
|
|
},
|
|
"enableRelationships": {
|
|
"type": "boolean"
|
|
},
|
|
"enablePeople": {
|
|
"type": "boolean"
|
|
},
|
|
"enableStartDate": {
|
|
"type": "boolean"
|
|
},
|
|
"enableLocalizedName": {
|
|
"type": "boolean"
|
|
},
|
|
"enableCoverImage": {
|
|
"type": "boolean"
|
|
},
|
|
"enableChapterSummary": {
|
|
"type": "boolean"
|
|
},
|
|
"enableChapterReleaseDate": {
|
|
"type": "boolean"
|
|
},
|
|
"enableChapterTitle": {
|
|
"type": "boolean"
|
|
},
|
|
"enableChapterPublisher": {
|
|
"type": "boolean"
|
|
},
|
|
"enableChapterCoverImage": {
|
|
"type": "boolean"
|
|
},
|
|
"enableGenres": {
|
|
"type": "boolean"
|
|
},
|
|
"enableTags": {
|
|
"type": "boolean"
|
|
},
|
|
"firstLastPeopleNaming": {
|
|
"type": "boolean"
|
|
},
|
|
"overrides": {
|
|
"type": "array",
|
|
"items": {
|
|
"enum": [
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"personRoles": {
|
|
"type": "array",
|
|
"items": {
|
|
"enum": [
|
|
1,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
15
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"MetadataTagDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"nullable": true,
|
|
"readOnly": true
|
|
},
|
|
"rank": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true,
|
|
"readOnly": true
|
|
},
|
|
"isGeneralSpoiler": {
|
|
"type": "boolean",
|
|
"readOnly": true
|
|
},
|
|
"isMediaSpoiler": {
|
|
"type": "boolean",
|
|
"readOnly": true
|
|
},
|
|
"isAdult": {
|
|
"type": "boolean",
|
|
"readOnly": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"MostReadAuthorsDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"authorId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"authorName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"totalChaptersRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapters": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AuthorChapterDto"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"NextExpectedChapterDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"chapterNumber": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"volumeNumber": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"expectedDate": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"nullable": true
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OidcConfigDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"autoLogin": {
|
|
"type": "boolean"
|
|
},
|
|
"disablePasswordAuthentication": {
|
|
"type": "boolean"
|
|
},
|
|
"providerName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"authority": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"clientId": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"secret": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"provisionAccounts": {
|
|
"type": "boolean"
|
|
},
|
|
"requireVerifiedEmail": {
|
|
"type": "boolean"
|
|
},
|
|
"syncUserSettings": {
|
|
"type": "boolean"
|
|
},
|
|
"rolesPrefix": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"rolesClaim": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"customScopes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"defaultRoles": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"defaultLibraries": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"defaultAgeRestriction": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
-1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"defaultIncludeUnknowns": {
|
|
"type": "boolean"
|
|
},
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"readOnly": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OidcPublicConfigDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"autoLogin": {
|
|
"type": "boolean"
|
|
},
|
|
"disablePasswordAuthentication": {
|
|
"type": "boolean"
|
|
},
|
|
"providerName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"enabled": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ParseBulkRequestDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"names": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"libraryType": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ParseBulkResponseDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"results": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/ParseResultDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"errors": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"nullable": true
|
|
},
|
|
"errorCounts": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"readOnly": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ParseResultDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"seriesYear": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"minChapterNumber": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"maxChapterNumber": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"minVolumeNumber": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"maxVolumeNumber": {
|
|
"type": "number",
|
|
"format": "float"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"PersonAliasCheckDto": {
|
|
"required": [
|
|
"alias",
|
|
"name",
|
|
"personId"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"personId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"name": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"alias": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"PersonDto": {
|
|
"required": [
|
|
"name"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"coverImageLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"primaryColor": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"secondaryColor": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"coverImage": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"aliases": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"asin": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"aniListId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"malId": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"hardcoverId": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"webLinks": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"roles": {
|
|
"type": "array",
|
|
"items": {
|
|
"enum": [
|
|
1,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
15
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"PersonDtoStatCount": {
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"count": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"PersonFilterStatementDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"comparison": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
15,
|
|
16
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"field": {
|
|
"enum": [
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"value": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"PersonMergeDto": {
|
|
"required": [
|
|
"destId",
|
|
"srcId"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"destId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"srcId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"PersonSortOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"sortField": {
|
|
"enum": [
|
|
1,
|
|
2,
|
|
3
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"isAscending": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"PersonalToCDto": {
|
|
"required": [
|
|
"chapterId",
|
|
"id",
|
|
"pageNumber",
|
|
"title"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"pageNumber": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"bookScrollId": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"selectedText": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"chapterTitle": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ProfileStatBarDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"booksRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"comicsRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"pagesRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"wordsRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"authorsRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"reviews": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"ratings": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ProgressDto": {
|
|
"required": [
|
|
"chapterId",
|
|
"libraryId",
|
|
"pageNum",
|
|
"seriesId",
|
|
"volumeId"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"volumeId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"pageNum": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"bookScrollId": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"lastModifiedUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"PromoteCollectionsDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"collectionIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"promoted": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"PromoteReadingListsDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"readingListIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"promoted": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"PublicationStatusStatCount": {
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"count": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"RatingDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"averageScore": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"favoriteCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"provider": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"authority": {
|
|
"enum": [
|
|
0,
|
|
1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"providerUrl": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ReadHistoryEvent": {
|
|
"required": [
|
|
"chapterNumber",
|
|
"seriesName",
|
|
"userName"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"userId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"userName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"readDate": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"readDateUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterNumber": {
|
|
"type": "number",
|
|
"format": "float"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ReadStatus": {
|
|
"type": "object",
|
|
"properties": {
|
|
"notRead": {
|
|
"type": "boolean"
|
|
},
|
|
"inProgress": {
|
|
"type": "boolean"
|
|
},
|
|
"read": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ReadTimeByHourDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"dataSince": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"stats": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Int32StatCount"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ReadingActivityDataDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"volumeId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"startPage": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"endPage": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"startTimeUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"endTimeUtc": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"nullable": true
|
|
},
|
|
"pagesRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"wordsRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"totalPages": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"totalWords": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"seriesName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"chapterTitle": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"clientInfo": {
|
|
"$ref": "#/components/schemas/ClientInfoDto"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ReadingActivityGraphEntryDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"date": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"totalTimeReadingSeconds": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"totalPages": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"totalWords": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"totalChaptersFullyRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ReadingHistoryChapterItemDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"startTimeUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"endTimeUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"pagesRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"wordsRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"durationSeconds": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"startPage": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"endPage": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"totalPages": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"completed": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ReadingHistoryItemDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"sessionDataIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"sessionId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"isGeneratedSession": {
|
|
"type": "boolean"
|
|
},
|
|
"startTimeUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"endTimeUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"localDate": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"seriesFormat": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapters": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadingHistoryChapterItemDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"pagesRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"wordsRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"durationSeconds": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"totalPages": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ReadingListDto": {
|
|
"required": [
|
|
"ageRating"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"summary": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"promoted": {
|
|
"type": "boolean"
|
|
},
|
|
"coverImageLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"coverImage": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"primaryColor": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"secondaryColor": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"itemCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"startingYear": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"startingMonth": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"endingYear": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"endingMonth": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"ageRating": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
-1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"ownerUserName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"sourcePath": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"downloadUrl": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"shaHash": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"provider": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"lastSyncCheckUtc": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"nullable": true
|
|
},
|
|
"lastSyncedUtc": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"nullable": true
|
|
},
|
|
"canSync": {
|
|
"type": "boolean",
|
|
"readOnly": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ReadingListInfoDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"pages": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"wordCount": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"isAllEpub": {
|
|
"type": "boolean"
|
|
},
|
|
"minHoursToRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"maxHoursToRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"avgHoursToRead": {
|
|
"type": "number",
|
|
"format": "float"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ReadingListItemDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"order": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"seriesSortName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"seriesFormat": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"pagesRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"pagesTotal": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterNumber": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"volumeNumber": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"chapterTitleName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"volumeId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"libraryType": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"releaseDate": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"nullable": true
|
|
},
|
|
"readingListId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"lastReadingProgressUtc": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"nullable": true
|
|
},
|
|
"fileSize": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"summary": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"isSpecial": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ReadingPaceDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"hoursRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"pagesRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"wordsRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"booksRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"comicsRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"daysInRange": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ReadingSessionDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"startTimeUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"endTimeUtc": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"nullable": true
|
|
},
|
|
"isActive": {
|
|
"type": "boolean"
|
|
},
|
|
"activityData": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadingActivityDataDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"userId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"username": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"RecommendationDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"ownedSeries": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"externalSeries": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ExternalSeriesDto"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"RefreshSeriesDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"forceUpdate": {
|
|
"type": "boolean"
|
|
},
|
|
"forceColorscape": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"RegisterDto": {
|
|
"required": [
|
|
"password",
|
|
"username"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"username": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"email": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"password": {
|
|
"maxLength": 256,
|
|
"minLength": 6,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"RelatedSeriesDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"sourceSeriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"sequels": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"prequels": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"spinOffs": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"adaptations": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"sideStories": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"characters": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"contains": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"others": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"alternativeSettings": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"alternativeVersions": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"doujinshis": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"parent": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"editions": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"annuals": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"RemapRuleDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"normalizedCblSeriesName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"cblSeriesName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"cblVolume": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"cblNumber": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"volumeId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"chapterRange": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"chapterTitleName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"chapterIsSpecial": {
|
|
"type": "boolean"
|
|
},
|
|
"libraryType": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesNameAtMapping": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"appUserId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"isGlobal": {
|
|
"type": "boolean"
|
|
},
|
|
"createdByUserName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"createdUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"RemoveBookmarkForSeriesDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"RereadChapterDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"volumeId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"format": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"RereadDto": {
|
|
"required": [
|
|
"shouldPrompt"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"shouldPrompt": {
|
|
"type": "boolean"
|
|
},
|
|
"timePrompt": {
|
|
"type": "boolean"
|
|
},
|
|
"fullReread": {
|
|
"type": "boolean"
|
|
},
|
|
"daysSinceLastRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterOnContinue": {
|
|
"$ref": "#/components/schemas/RereadChapterDto"
|
|
},
|
|
"chapterOnReread": {
|
|
"$ref": "#/components/schemas/RereadChapterDto"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ResetPasswordDto": {
|
|
"required": [
|
|
"password",
|
|
"userName"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"userName": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"maxLength": 256,
|
|
"minLength": 6,
|
|
"type": "string"
|
|
},
|
|
"oldPassword": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"RgbaColor": {
|
|
"type": "object",
|
|
"properties": {
|
|
"r": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"g": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"b": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"a": {
|
|
"type": "number",
|
|
"format": "float"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"RotateAuthKeyRequestDto": {
|
|
"required": [
|
|
"keyLength",
|
|
"name"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"keyLength": {
|
|
"maximum": 32,
|
|
"minimum": 8,
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"name": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"expiresUtc": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ScanFolderDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"apiKey": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"folderPath": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"abortOnNoSeriesMatch": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ScrobbleErrorDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"comment": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"details": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"created": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ScrobbleEventDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"seriesName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"isProcessed": {
|
|
"type": "boolean"
|
|
},
|
|
"volumeNumber": {
|
|
"type": "number",
|
|
"format": "float",
|
|
"nullable": true
|
|
},
|
|
"chapterNumber": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"lastModifiedUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"createdUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"rating": {
|
|
"type": "number",
|
|
"format": "float",
|
|
"nullable": true
|
|
},
|
|
"scrobbleEventType": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"isErrored": {
|
|
"type": "boolean"
|
|
},
|
|
"errorDetails": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ScrobbleEventFilter": {
|
|
"type": "object",
|
|
"properties": {
|
|
"field": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"isDescending": {
|
|
"type": "boolean"
|
|
},
|
|
"query": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"includeReviews": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ScrobbleHoldDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"created": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"createdUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"SearchResultDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"originalName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"sortName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"localizedName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"format": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"releaseYear": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"volumeCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"SearchResultGroupDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"libraries": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LibraryDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"series": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SearchResultDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"collections": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AppUserCollectionDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"readingLists": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadingListDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"persons": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"genres": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/GenreTagDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TagDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"files": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MangaFileDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"chapters": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChapterDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"bookmarks": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BookmarkSearchResultDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"annotations": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AnnotationDto"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"SendSeriesToEmailDeviceDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"deviceId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"SendToEmailDeviceDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"deviceId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"SeriesByIdsDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"SeriesCharacter": {
|
|
"required": [
|
|
"description",
|
|
"url"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"imageUrl": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"role": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"SeriesDetailDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"specials": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChapterDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"chapters": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChapterDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"volumes": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/VolumeDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"storylineChapters": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChapterDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"unreadCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"totalCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"SeriesDetailPlusDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"recommendations": {
|
|
"$ref": "#/components/schemas/RecommendationDto"
|
|
},
|
|
"reviews": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserReviewDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"ratings": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/RatingDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"series": {
|
|
"$ref": "#/components/schemas/ExternalSeriesDetailDto"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"SeriesDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"originalName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"localizedName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"sortName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"pages": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"coverImageLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"lastChapterAdded": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"lastChapterAddedUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"userRating": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"hasUserRated": {
|
|
"type": "boolean"
|
|
},
|
|
"totalReads": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"pagesRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"latestReadDate": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"format": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"created": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"sortNameLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"localizedNameLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"wordCount": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"minHoursToRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"maxHoursToRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"avgHoursToRead": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"folderPath": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"lowestFolderPath": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"lastFolderScanned": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"dontMatch": {
|
|
"type": "boolean"
|
|
},
|
|
"isBlacklisted": {
|
|
"type": "boolean"
|
|
},
|
|
"coverImage": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"primaryColor": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"secondaryColor": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"aniListId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"malId": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"hardcoverId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"metronId": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"comicVineId": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"mangaBakaId": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"SeriesDtoStatCount": {
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
},
|
|
"count": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"SeriesMetadataDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"summary": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"genres": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/GenreTagDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TagDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"writers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"coverArtists": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"publishers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"characters": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"pencillers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"inkers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"imprints": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"colorists": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"letterers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"editors": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"translators": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"teams": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"locations": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"ageRating": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
-1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"releaseYear": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"language": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"maxCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"totalCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"publicationStatus": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"webLinks": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"languageLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"summaryLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"ageRatingLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"publicationStatusLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"genresLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"tagsLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"writerLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"characterLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"coloristLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"editorLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"inkerLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"imprintLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"lettererLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"pencillerLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"publisherLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"translatorLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"teamLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"locationLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"coverArtistLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"releaseYearLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"SeriesRelationship": {
|
|
"type": "object",
|
|
"properties": {
|
|
"aniListId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"malId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"seriesName": {
|
|
"$ref": "#/components/schemas/ALMediaTitle"
|
|
},
|
|
"relation": {
|
|
"enum": [
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"provider": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"plusMediaFormat": {
|
|
"enum": [
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"SeriesStaffDto": {
|
|
"required": [
|
|
"name",
|
|
"role",
|
|
"url"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"firstName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"lastName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"role": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"imageUrl": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"gender": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ServerInfoSlimDto": {
|
|
"required": [
|
|
"installId",
|
|
"kavitaVersion"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"installId": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"isDocker": {
|
|
"type": "boolean"
|
|
},
|
|
"kavitaVersion": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"firstInstallDate": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"nullable": true
|
|
},
|
|
"firstInstallVersion": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ServerSettingDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"cacheDirectory": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"taskScan": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"taskBackup": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"taskCleanup": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"loggingLevel": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"port": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"ipAddresses": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"allowStatCollection": {
|
|
"type": "boolean"
|
|
},
|
|
"enableOpds": {
|
|
"type": "boolean"
|
|
},
|
|
"baseUrl": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"bookmarksDirectory": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"installVersion": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"installId": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"encodeMediaAs": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"totalBackups": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"enableFolderWatching": {
|
|
"type": "boolean"
|
|
},
|
|
"totalLogs": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"hostName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"cacheSize": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"onDeckProgressDays": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"onDeckUpdateDays": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"coverImageSize": {
|
|
"enum": [
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"pdfRenderResolution": {
|
|
"enum": [
|
|
1,
|
|
2,
|
|
3
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"smtpConfig": {
|
|
"$ref": "#/components/schemas/SmtpConfigDto"
|
|
},
|
|
"oidcConfig": {
|
|
"$ref": "#/components/schemas/OidcConfigDto"
|
|
},
|
|
"firstInstallDate": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"nullable": true
|
|
},
|
|
"firstInstallVersion": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"statsApiHits": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ServerStatisticsDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"chapterCount": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"volumeCount": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"seriesCount": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"totalFiles": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"totalSize": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"totalGenres": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"totalTags": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"totalPeople": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"totalReadingTime": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"SideNavStreamDto": {
|
|
"required": [
|
|
"name"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"isProvided": {
|
|
"type": "boolean"
|
|
},
|
|
"order": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"smartFilterEncoded": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"smartFilterId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"externalSourceId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"externalSource": {
|
|
"$ref": "#/components/schemas/ExternalSourceDto"
|
|
},
|
|
"streamType": {
|
|
"enum": [
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"visible": {
|
|
"type": "boolean"
|
|
},
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"library": {
|
|
"$ref": "#/components/schemas/LibraryDto"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"SiteThemeDto": {
|
|
"required": [
|
|
"fileName",
|
|
"name",
|
|
"normalizedName"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"normalizedName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"fileName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"isDefault": {
|
|
"type": "boolean"
|
|
},
|
|
"provider": {
|
|
"enum": [
|
|
1,
|
|
2
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"previewUrls": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"author": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"compatibleVersion": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"selector": {
|
|
"type": "string",
|
|
"nullable": true,
|
|
"readOnly": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"SmartFilterDto": {
|
|
"required": [
|
|
"filter",
|
|
"name"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"filter": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"SmtpConfigDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"senderAddress": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"senderDisplayName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"userName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"password": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"host": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"port": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"enableSsl": {
|
|
"type": "boolean"
|
|
},
|
|
"sizeLimit": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"customizedTemplates": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"SortOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"sortField": {
|
|
"enum": [
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"isAscending": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"SpreadStatsDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"buckets": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/StatBucketDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"totalCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"StandaloneChapterDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"range": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"number": {
|
|
"type": "string",
|
|
"nullable": true,
|
|
"deprecated": true
|
|
},
|
|
"minNumber": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"maxNumber": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"sortOrder": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"pages": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"isSpecial": {
|
|
"type": "boolean"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"files": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MangaFileDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"pagesRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"totalReads": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"lastReadingProgressUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"lastReadingProgress": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"coverImageLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"volumeId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"createdUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"lastModifiedUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"created": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"releaseDate": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"titleName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"summary": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"ageRating": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
-1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"wordCount": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"minHoursToRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"maxHoursToRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"avgHoursToRead": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"webLinks": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"isbn": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"writers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"coverArtists": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"publishers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"characters": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"pencillers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"inkers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"imprints": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"colorists": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"letterers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"editors": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"translators": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"teams": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"locations": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"genres": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/GenreTagDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TagDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"publicationStatus": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"language": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"count": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"totalCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"languageLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"summaryLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"ageRatingLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"publicationStatusLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"genresLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"tagsLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"writerLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"characterLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"coloristLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"editorLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"inkerLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"imprintLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"lettererLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"pencillerLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"publisherLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"translatorLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"teamLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"locationLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"coverArtistLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"releaseDateLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"titleNameLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"sortOrderLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"coverImage": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"primaryColor": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"secondaryColor": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"format": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true,
|
|
"readOnly": true
|
|
},
|
|
"aniListId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"malId": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"hardcoverId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"metronId": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"comicVineId": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"mangaBakaId": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"libraryType": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"volumeTitle": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"StatBucketDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"rangeStart": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"rangeEnd": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"count": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"percentage": {
|
|
"type": "number",
|
|
"format": "double"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"StringBreakDownDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/StringStatCount"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"totalOptions": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"missing": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"StringStatCount": {
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"count": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"TagDto": {
|
|
"required": [
|
|
"title"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"TagDtoStatCount": {
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"$ref": "#/components/schemas/TagDto"
|
|
},
|
|
"count": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"TokenRequestDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"token": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"refreshToken": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"TopReadDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"userId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"username": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"comicsTime": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"booksTime": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"mangaTime": {
|
|
"type": "number",
|
|
"format": "float"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateAgeRestrictionDto": {
|
|
"required": [
|
|
"ageRating",
|
|
"includeUnknowns"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"ageRating": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
-1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"includeUnknowns": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateChapterDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"summary": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"genres": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/GenreTagDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TagDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"writers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"coverArtists": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"publishers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"characters": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"pencillers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"inkers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"imprints": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"colorists": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"letterers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"editors": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"translators": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"teams": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"locations": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"ageRating": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
-1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"language": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"ageRatingLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"titleNameLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"genresLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"tagsLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"writerLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"characterLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"coloristLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"editorLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"inkerLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"imprintLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"lettererLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"pencillerLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"publisherLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"translatorLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"teamLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"locationLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"coverArtistLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"languageLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"summaryLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"isbnLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"releaseDateLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"sortOrder": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"sortOrderLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"webLinks": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"isbn": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"releaseDate": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"titleName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"aniListId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"malId": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"nullable": true
|
|
},
|
|
"hardcoverId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"metronId": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"nullable": true
|
|
},
|
|
"comicVineId": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"mangaBakaId": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateClientDeviceNameDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"deviceId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateDefaultThemeDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"themeId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateEmailDeviceDto": {
|
|
"required": [
|
|
"emailAddress",
|
|
"id",
|
|
"name",
|
|
"platform"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"name": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"platform": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"emailAddress": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateEmailDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"email": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"password": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateLibraryDto": {
|
|
"required": [
|
|
"allowMetadataMatching",
|
|
"allowScrobbling",
|
|
"enableMetadata",
|
|
"excludePatterns",
|
|
"fileGroupTypes",
|
|
"folders",
|
|
"folderWatching",
|
|
"id",
|
|
"includeInDashboard",
|
|
"includeInSearch",
|
|
"inheritWebLinksFromFirstChapter",
|
|
"manageCollections",
|
|
"manageReadingLists",
|
|
"name",
|
|
"removePrefixForSortName",
|
|
"type"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"name": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"folders": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"folderWatching": {
|
|
"type": "boolean"
|
|
},
|
|
"includeInDashboard": {
|
|
"type": "boolean"
|
|
},
|
|
"includeInSearch": {
|
|
"type": "boolean"
|
|
},
|
|
"manageCollections": {
|
|
"type": "boolean"
|
|
},
|
|
"manageReadingLists": {
|
|
"type": "boolean"
|
|
},
|
|
"allowScrobbling": {
|
|
"type": "boolean"
|
|
},
|
|
"allowMetadataMatching": {
|
|
"type": "boolean"
|
|
},
|
|
"enableMetadata": {
|
|
"type": "boolean"
|
|
},
|
|
"removePrefixForSortName": {
|
|
"type": "boolean"
|
|
},
|
|
"inheritWebLinksFromFirstChapter": {
|
|
"type": "boolean"
|
|
},
|
|
"defaultLanguage": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"fileGroupTypes": {
|
|
"type": "array",
|
|
"items": {
|
|
"enum": [
|
|
1,
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"excludePatterns": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateLibraryForUserDto": {
|
|
"required": [
|
|
"selectedLibraries",
|
|
"username"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"username": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"selectedLibraries": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LibraryDto"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateLicenseDto": {
|
|
"required": [
|
|
"email",
|
|
"license"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"license": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"email": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"discordId": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateNotificationDto": {
|
|
"required": [
|
|
"currentVersion",
|
|
"publishDate",
|
|
"updateBody",
|
|
"updateTitle",
|
|
"updateUrl",
|
|
"updateVersion"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"currentVersion": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"updateVersion": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"updateBody": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"updateTitle": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"updateUrl": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"isDocker": {
|
|
"type": "boolean"
|
|
},
|
|
"isPrerelease": {
|
|
"type": "boolean"
|
|
},
|
|
"publishDate": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"isOnNightlyInRelease": {
|
|
"type": "boolean"
|
|
},
|
|
"isReleaseNewer": {
|
|
"type": "boolean"
|
|
},
|
|
"isReleaseEqual": {
|
|
"type": "boolean"
|
|
},
|
|
"added": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"removed": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"changed": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"fixed": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"theme": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"developer": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"api": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"featureRequests": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"knownIssues": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"blogPart": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdatePersonDto": {
|
|
"required": [
|
|
"coverImageLocked",
|
|
"id",
|
|
"name"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"coverImageLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"name": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"aliases": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"aniListId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"malId": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"nullable": true
|
|
},
|
|
"hardcoverId": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"asin": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateRatingDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"userRating": {
|
|
"type": "number",
|
|
"format": "float"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateReadingListByChapterDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"readingListId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateReadingListByMultipleDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"readingListId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"volumeIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"chapterIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateReadingListByMultipleSeriesDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"readingListId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateReadingListBySeriesDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"readingListId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateReadingListByVolumeDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"volumeId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"readingListId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateReadingListDto": {
|
|
"required": [
|
|
"readingListId"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"readingListId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"summary": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"promoted": {
|
|
"type": "boolean"
|
|
},
|
|
"coverImageLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"startingMonth": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"startingYear": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"endingMonth": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"endingYear": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateReadingListPosition": {
|
|
"required": [
|
|
"readingListId",
|
|
"readingListItemId",
|
|
"toPosition"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"readingListId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"readingListItemId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"fromPosition": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"toPosition": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateRelatedSeriesDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"adaptations": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"characters": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"contains": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"others": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"prequels": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"sequels": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"sideStories": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"spinOffs": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"alternativeSettings": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"alternativeVersions": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"doujinshis": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"editions": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"annuals": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateRemapRuleDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"volumeId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"cblVolume": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"cblNumber": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateSeriesDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"localizedName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"sortName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"coverImageLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"sortNameLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"localizedNameLocked": {
|
|
"type": "boolean"
|
|
},
|
|
"aniListId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"malId": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"nullable": true
|
|
},
|
|
"hardcoverId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"metronId": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"nullable": true
|
|
},
|
|
"comicVineId": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"mangaBakaId": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateSeriesForTagDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"tag": {
|
|
"$ref": "#/components/schemas/AppUserCollectionDto"
|
|
},
|
|
"seriesIdsToRemove": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateSeriesMetadataDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesMetadata": {
|
|
"$ref": "#/components/schemas/SeriesMetadataDto"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateStreamPositionDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"streamName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"fromPosition": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"toPosition": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"positionIncludesInvisible": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateUserDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"userId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"username": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"roles": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"libraries": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"ageRestriction": {
|
|
"$ref": "#/components/schemas/AgeRestrictionDto"
|
|
},
|
|
"email": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"identityProvider": {
|
|
"enum": [
|
|
0,
|
|
1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateUserReviewDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"body": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateVolumeDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"aniListId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"malId": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"nullable": true
|
|
},
|
|
"hardcoverId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"metronId": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"nullable": true
|
|
},
|
|
"comicVineId": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"mangaBakaId": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateWantToReadDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UploadCoverFileDto": {
|
|
"required": [
|
|
"id",
|
|
"url"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"lockCover": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UploadUrlDto": {
|
|
"required": [
|
|
"url"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"url": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UserDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"oidcId": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"username": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"email": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"roles": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"token": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"refreshToken": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"apiKey": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"preferences": {
|
|
"$ref": "#/components/schemas/UserPreferencesDto"
|
|
},
|
|
"ageRestriction": {
|
|
"$ref": "#/components/schemas/AgeRestrictionDto"
|
|
},
|
|
"kavitaVersion": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"identityProvider": {
|
|
"enum": [
|
|
0,
|
|
1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"created": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"createdUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"authKeys": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AuthKeyDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"coverImage": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"primaryColor": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"secondaryColor": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UserParams": {
|
|
"type": "object",
|
|
"properties": {
|
|
"pageNumber": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"pageSize": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UserPreferencesDto": {
|
|
"required": [
|
|
"blurUnreadSummaries",
|
|
"bookReaderHighlightSlots",
|
|
"collapseSeriesRelationships",
|
|
"colorScapeEnabled",
|
|
"customKeyBinds",
|
|
"dataSaver",
|
|
"locale",
|
|
"noTransitions",
|
|
"opdsPreferences",
|
|
"promptForDownloadSize",
|
|
"promptForRereadsAfter",
|
|
"socialPreferences",
|
|
"theme"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"theme": {
|
|
"$ref": "#/components/schemas/SiteThemeDto"
|
|
},
|
|
"globalPageLayoutMode": {
|
|
"enum": [
|
|
0,
|
|
1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"blurUnreadSummaries": {
|
|
"type": "boolean"
|
|
},
|
|
"promptForDownloadSize": {
|
|
"type": "boolean"
|
|
},
|
|
"noTransitions": {
|
|
"type": "boolean"
|
|
},
|
|
"collapseSeriesRelationships": {
|
|
"type": "boolean"
|
|
},
|
|
"locale": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"colorScapeEnabled": {
|
|
"type": "boolean"
|
|
},
|
|
"dataSaver": {
|
|
"type": "boolean"
|
|
},
|
|
"promptForRereadsAfter": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"customKeyBinds": {
|
|
"type": "object",
|
|
"properties": {
|
|
"NavigateToSettings": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/KeyBind"
|
|
}
|
|
},
|
|
"OpenSearch": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/KeyBind"
|
|
}
|
|
},
|
|
"NavigateToScrobbling": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/KeyBind"
|
|
}
|
|
},
|
|
"ToggleFullScreen": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/KeyBind"
|
|
}
|
|
},
|
|
"BookmarkPage": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/KeyBind"
|
|
}
|
|
},
|
|
"OpenHelp": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/KeyBind"
|
|
}
|
|
},
|
|
"GoTo": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/KeyBind"
|
|
}
|
|
},
|
|
"ToggleMenu": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/KeyBind"
|
|
}
|
|
},
|
|
"PageLeft": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/KeyBind"
|
|
}
|
|
},
|
|
"PageRight": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/KeyBind"
|
|
}
|
|
},
|
|
"Escape": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/KeyBind"
|
|
}
|
|
},
|
|
"PageUp": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/KeyBind"
|
|
}
|
|
},
|
|
"PageDown": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/KeyBind"
|
|
}
|
|
},
|
|
"OffsetDoublePage": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/KeyBind"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"aniListScrobblingEnabled": {
|
|
"type": "boolean"
|
|
},
|
|
"wantToReadSync": {
|
|
"type": "boolean"
|
|
},
|
|
"bookReaderHighlightSlots": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/HighlightSlot"
|
|
}
|
|
},
|
|
"socialPreferences": {
|
|
"$ref": "#/components/schemas/AppUserSocialPreferences"
|
|
},
|
|
"opdsPreferences": {
|
|
"$ref": "#/components/schemas/AppUserOpdsPreferences"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UserReadStatistics": {
|
|
"type": "object",
|
|
"properties": {
|
|
"totalPagesRead": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"totalWordsRead": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"timeSpentReading": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"lastActiveUtc": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"nullable": true
|
|
},
|
|
"avgHoursPerWeekSpentReading": {
|
|
"type": "number",
|
|
"format": "double"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UserReadingProfileDto": {
|
|
"required": [
|
|
"allowAutomaticWebtoonReaderDetection",
|
|
"autoCloseMenu",
|
|
"backgroundColor",
|
|
"bookReaderFontFamily",
|
|
"bookReaderFontSize",
|
|
"bookReaderImmersiveMode",
|
|
"bookReaderLayoutMode",
|
|
"bookReaderLineSpacing",
|
|
"bookReaderMargin",
|
|
"bookReaderReadingDirection",
|
|
"bookReaderTapToPaginate",
|
|
"bookReaderThemeName",
|
|
"bookReaderWritingStyle",
|
|
"emulateBook",
|
|
"layoutMode",
|
|
"pageSplitOption",
|
|
"pdfScrollMode",
|
|
"pdfSpreadMode",
|
|
"pdfTheme",
|
|
"readerMode",
|
|
"readingDirection",
|
|
"scalingOption",
|
|
"showScreenHints",
|
|
"swipeToPaginate"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"userId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"kind": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"deviceIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"seriesIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"libraryIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"readingDirection": {
|
|
"enum": [
|
|
0,
|
|
1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"scalingOption": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"pageSplitOption": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"readerMode": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"autoCloseMenu": {
|
|
"type": "boolean"
|
|
},
|
|
"showScreenHints": {
|
|
"type": "boolean"
|
|
},
|
|
"emulateBook": {
|
|
"type": "boolean"
|
|
},
|
|
"layoutMode": {
|
|
"enum": [
|
|
1,
|
|
2,
|
|
3
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"backgroundColor": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"swipeToPaginate": {
|
|
"type": "boolean"
|
|
},
|
|
"allowAutomaticWebtoonReaderDetection": {
|
|
"type": "boolean"
|
|
},
|
|
"widthOverride": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"disableWidthOverride": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"bookReaderMargin": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"bookReaderLineSpacing": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"bookReaderFontSize": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"bookReaderFontFamily": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"bookReaderTapToPaginate": {
|
|
"type": "boolean"
|
|
},
|
|
"bookReaderReadingDirection": {
|
|
"enum": [
|
|
0,
|
|
1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"bookReaderWritingStyle": {
|
|
"enum": [
|
|
0,
|
|
1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"bookReaderThemeName": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"bookReaderLayoutMode": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"bookReaderImmersiveMode": {
|
|
"type": "boolean"
|
|
},
|
|
"pdfTheme": {
|
|
"enum": [
|
|
0,
|
|
1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"pdfScrollMode": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
3
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"pdfSpreadMode": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UserReviewDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"tagline": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"body": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"bodyJustText": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"username": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"userId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"totalVotes": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"rating": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"rawBody": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"score": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"siteUrl": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"isExternal": {
|
|
"type": "boolean"
|
|
},
|
|
"provider": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"authority": {
|
|
"enum": [
|
|
0,
|
|
1
|
|
],
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UserReviewExtendedDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"body": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapterId": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"nullable": true
|
|
},
|
|
"libraryId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"username": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"rating": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"series": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
},
|
|
"chapter": {
|
|
"$ref": "#/components/schemas/ChapterDto"
|
|
},
|
|
"createdUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"writers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonDto"
|
|
},
|
|
"nullable": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UserTokenInfo": {
|
|
"type": "object",
|
|
"properties": {
|
|
"userId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"username": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"isAniListTokenSet": {
|
|
"type": "boolean"
|
|
},
|
|
"isAniListTokenValid": {
|
|
"type": "boolean"
|
|
},
|
|
"aniListValidUntilUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"isMalTokenSet": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"VolumeDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"minNumber": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"maxNumber": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"number": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"deprecated": true
|
|
},
|
|
"pages": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"pagesRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"lastModifiedUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"createdUtc": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"created": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"lastModified": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"seriesId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"chapters": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChapterDto"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"minHoursToRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"maxHoursToRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"avgHoursToRead": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"wordCount": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"coverImage": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"primaryColor": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"secondaryColor": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"aniListId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"malId": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"hardcoverId": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"metronId": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"comicVineId": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"mangaBakaId": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"YearMonthGroupingDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"year": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"month": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"YearMonthGroupingDtoStatCount": {
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"$ref": "#/components/schemas/YearMonthGroupingDto"
|
|
},
|
|
"count": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"securitySchemes": {
|
|
"AuthKey": {
|
|
"type": "apiKey",
|
|
"description": "Auth Key authentication. Enter your Auth key from your user settings",
|
|
"name": "x-api-key",
|
|
"in": "header"
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{ }
|
|
],
|
|
"tags": [
|
|
{
|
|
"name": "Account",
|
|
"description": "All Account matters"
|
|
},
|
|
{
|
|
"name": "Activity"
|
|
},
|
|
{
|
|
"name": "Admin"
|
|
},
|
|
{
|
|
"name": "Annotation"
|
|
},
|
|
{
|
|
"name": "Book"
|
|
},
|
|
{
|
|
"name": "Cbl",
|
|
"description": "Responsible for the CBL import flow"
|
|
},
|
|
{
|
|
"name": "Chapter"
|
|
},
|
|
{
|
|
"name": "Collection",
|
|
"description": "APIs for Collections"
|
|
},
|
|
{
|
|
"name": "ColorScape"
|
|
},
|
|
{
|
|
"name": "Deprecated",
|
|
"description": "All APIs here are subject to be removed and are no longer maintained. Will be removed v0.9.0"
|
|
},
|
|
{
|
|
"name": "WantToRead",
|
|
"description": "Responsible for all things Want To Read"
|
|
},
|
|
{
|
|
"name": "Device",
|
|
"description": "Responsible for interacting and creating Devices"
|
|
},
|
|
{
|
|
"name": "Download",
|
|
"description": "All APIs related to downloading entities from the system. Requires Download Role or Admin Role."
|
|
},
|
|
{
|
|
"name": "Email"
|
|
},
|
|
{
|
|
"name": "Filter"
|
|
},
|
|
{
|
|
"name": "Font"
|
|
},
|
|
{
|
|
"name": "Health"
|
|
},
|
|
{
|
|
"name": "Image",
|
|
"description": "Responsible for servicing up images stored in Kavita for entities"
|
|
},
|
|
{
|
|
"name": "Koreader",
|
|
"description": "The endpoint to interface with Koreader's Progress Sync plugin."
|
|
},
|
|
{
|
|
"name": "Library"
|
|
},
|
|
{
|
|
"name": "License"
|
|
},
|
|
{
|
|
"name": "Locale"
|
|
},
|
|
{
|
|
"name": "Manage",
|
|
"description": "All things centered around Managing the Kavita instance, that isn't aligned with an entity"
|
|
},
|
|
{
|
|
"name": "Metadata"
|
|
},
|
|
{
|
|
"name": "Oidc"
|
|
},
|
|
{
|
|
"name": "Opds"
|
|
},
|
|
{
|
|
"name": "Panels",
|
|
"description": "For the Panels app explicitly"
|
|
},
|
|
{
|
|
"name": "Person"
|
|
},
|
|
{
|
|
"name": "Plugin"
|
|
},
|
|
{
|
|
"name": "Rating",
|
|
"description": "Responsible for providing external ratings for Series"
|
|
},
|
|
{
|
|
"name": "Reader",
|
|
"description": "For all things regarding reading, mainly focusing on non-Book related entities"
|
|
},
|
|
{
|
|
"name": "ReadingList"
|
|
},
|
|
{
|
|
"name": "ReadingProfile"
|
|
},
|
|
{
|
|
"name": "Review"
|
|
},
|
|
{
|
|
"name": "Scrobbling"
|
|
},
|
|
{
|
|
"name": "Search",
|
|
"description": "Responsible for the Search interface from the UI"
|
|
},
|
|
{
|
|
"name": "Series"
|
|
},
|
|
{
|
|
"name": "Server"
|
|
},
|
|
{
|
|
"name": "Settings"
|
|
},
|
|
{
|
|
"name": "Stats"
|
|
},
|
|
{
|
|
"name": "Stream",
|
|
"description": "Responsible for anything that deals with Streams (SmartFilters, ExternalSource, DashboardStream, SideNavStream)"
|
|
},
|
|
{
|
|
"name": "Tachiyomi",
|
|
"description": "All APIs are for Tachiyomi extension and app. They have hacks for our implementation and should not be used for any\nother purposes."
|
|
},
|
|
{
|
|
"name": "Theme"
|
|
},
|
|
{
|
|
"name": "Upload"
|
|
},
|
|
{
|
|
"name": "Users"
|
|
},
|
|
{
|
|
"name": "Volume"
|
|
}
|
|
]
|
|
} |