9626 lines
292 KiB
JSON
9626 lines
292 KiB
JSON
[
|
|
{
|
|
"name": "HandleGetAnimeCollection",
|
|
"trimmedName": "GetAnimeCollection",
|
|
"comments": [
|
|
"HandleGetAnimeCollection",
|
|
"",
|
|
"\t@summary returns the user's AniList anime collection.",
|
|
"\t@desc Calling GET will return the cached anime collection.",
|
|
"\t@desc The manga collection is also refreshed in the background, and upon completion, a WebSocket event is sent.",
|
|
"\t@desc Calling POST will refetch both the anime and manga collections.",
|
|
"\t@returns anilist.AnimeCollection",
|
|
"\t@route /api/v1/anilist/collection [GET,POST]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anilist.go",
|
|
"filename": "anilist.go",
|
|
"api": {
|
|
"summary": "returns the user's AniList anime collection.",
|
|
"descriptions": [
|
|
"Calling GET will return the cached anime collection.",
|
|
"The manga collection is also refreshed in the background, and upon completion, a WebSocket event is sent.",
|
|
"Calling POST will refetch both the anime and manga collections."
|
|
],
|
|
"endpoint": "/api/v1/anilist/collection",
|
|
"methods": [
|
|
"GET",
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "anilist.AnimeCollection",
|
|
"returnGoType": "anilist.AnimeCollection",
|
|
"returnTypescriptType": "AL_AnimeCollection"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetRawAnimeCollection",
|
|
"trimmedName": "GetRawAnimeCollection",
|
|
"comments": [
|
|
"HandleGetRawAnimeCollection",
|
|
"",
|
|
"\t@summary returns the user's AniList anime collection without filtering out custom lists.",
|
|
"\t@desc Calling GET will return the cached anime collection.",
|
|
"\t@returns anilist.AnimeCollection",
|
|
"\t@route /api/v1/anilist/collection/raw [GET,POST]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anilist.go",
|
|
"filename": "anilist.go",
|
|
"api": {
|
|
"summary": "returns the user's AniList anime collection without filtering out custom lists.",
|
|
"descriptions": [
|
|
"Calling GET will return the cached anime collection."
|
|
],
|
|
"endpoint": "/api/v1/anilist/collection/raw",
|
|
"methods": [
|
|
"GET",
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "anilist.AnimeCollection",
|
|
"returnGoType": "anilist.AnimeCollection",
|
|
"returnTypescriptType": "AL_AnimeCollection"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleEditAnilistListEntry",
|
|
"trimmedName": "EditAnilistListEntry",
|
|
"comments": [
|
|
"HandleEditAnilistListEntry",
|
|
"",
|
|
"\t@summary updates the user's list entry on Anilist.",
|
|
"\t@desc This is used to edit an entry on AniList.",
|
|
"\t@desc The \"type\" field is used to determine if the entry is an anime or manga and refreshes the collection accordingly.",
|
|
"\t@desc The client should refetch collection-dependent queries after this mutation.",
|
|
"\t@returns true",
|
|
"\t@route /api/v1/anilist/list-entry [POST]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anilist.go",
|
|
"filename": "anilist.go",
|
|
"api": {
|
|
"summary": "updates the user's list entry on Anilist.",
|
|
"descriptions": [
|
|
"This is used to edit an entry on AniList.",
|
|
"The \"type\" field is used to determine if the entry is an anime or manga and refreshes the collection accordingly.",
|
|
"The client should refetch collection-dependent queries after this mutation."
|
|
],
|
|
"endpoint": "/api/v1/anilist/list-entry",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Status",
|
|
"jsonName": "status",
|
|
"goType": "anilist.MediaListStatus",
|
|
"usedStructType": "anilist.MediaListStatus",
|
|
"typescriptType": "AL_MediaListStatus",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Score",
|
|
"jsonName": "score",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Progress",
|
|
"jsonName": "progress",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "StartDate",
|
|
"jsonName": "startedAt",
|
|
"goType": "anilist.FuzzyDateInput",
|
|
"usedStructType": "anilist.FuzzyDateInput",
|
|
"typescriptType": "AL_FuzzyDateInput",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "EndDate",
|
|
"jsonName": "completedAt",
|
|
"goType": "anilist.FuzzyDateInput",
|
|
"usedStructType": "anilist.FuzzyDateInput",
|
|
"typescriptType": "AL_FuzzyDateInput",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Type",
|
|
"jsonName": "type",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "true",
|
|
"returnGoType": "true",
|
|
"returnTypescriptType": "true"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetAnilistAnimeDetails",
|
|
"trimmedName": "GetAnilistAnimeDetails",
|
|
"comments": [
|
|
"HandleGetAnilistAnimeDetails",
|
|
"",
|
|
"\t@summary returns more details about an AniList anime entry.",
|
|
"\t@desc This fetches more fields omitted from the base queries.",
|
|
"\t@param id - int - true - \"The AniList anime ID\"",
|
|
"\t@returns anilist.AnimeDetailsById_Media",
|
|
"\t@route /api/v1/anilist/media-details/{id} [GET]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anilist.go",
|
|
"filename": "anilist.go",
|
|
"api": {
|
|
"summary": "returns more details about an AniList anime entry.",
|
|
"descriptions": [
|
|
"This fetches more fields omitted from the base queries."
|
|
],
|
|
"endpoint": "/api/v1/anilist/media-details/{id}",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [
|
|
{
|
|
"name": "id",
|
|
"jsonName": "id",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": [
|
|
"The AniList anime ID"
|
|
]
|
|
}
|
|
],
|
|
"bodyFields": [],
|
|
"returns": "anilist.AnimeDetailsById_Media",
|
|
"returnGoType": "anilist.AnimeDetailsById_Media",
|
|
"returnTypescriptType": "AL_AnimeDetailsById_Media"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetAnilistStudioDetails",
|
|
"trimmedName": "GetAnilistStudioDetails",
|
|
"comments": [
|
|
"HandleGetAnilistStudioDetails",
|
|
"",
|
|
"\t@summary returns details about a studio.",
|
|
"\t@desc This fetches media produced by the studio.",
|
|
"\t@param id - int - true - \"The AniList studio ID\"",
|
|
"\t@returns anilist.StudioDetails",
|
|
"\t@route /api/v1/anilist/studio-details/{id} [GET]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anilist.go",
|
|
"filename": "anilist.go",
|
|
"api": {
|
|
"summary": "returns details about a studio.",
|
|
"descriptions": [
|
|
"This fetches media produced by the studio."
|
|
],
|
|
"endpoint": "/api/v1/anilist/studio-details/{id}",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [
|
|
{
|
|
"name": "id",
|
|
"jsonName": "id",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": [
|
|
"The AniList studio ID"
|
|
]
|
|
}
|
|
],
|
|
"bodyFields": [],
|
|
"returns": "anilist.StudioDetails",
|
|
"returnGoType": "anilist.StudioDetails",
|
|
"returnTypescriptType": "AL_StudioDetails"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleDeleteAnilistListEntry",
|
|
"trimmedName": "DeleteAnilistListEntry",
|
|
"comments": [
|
|
"HandleDeleteAnilistListEntry",
|
|
"",
|
|
"\t@summary deletes an entry from the user's AniList list.",
|
|
"\t@desc This is used to delete an entry on AniList.",
|
|
"\t@desc The \"type\" field is used to determine if the entry is an anime or manga and refreshes the collection accordingly.",
|
|
"\t@desc The client should refetch collection-dependent queries after this mutation.",
|
|
"\t@route /api/v1/anilist/list-entry [DELETE]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anilist.go",
|
|
"filename": "anilist.go",
|
|
"api": {
|
|
"summary": "deletes an entry from the user's AniList list.",
|
|
"descriptions": [
|
|
"This is used to delete an entry on AniList.",
|
|
"The \"type\" field is used to determine if the entry is an anime or manga and refreshes the collection accordingly.",
|
|
"The client should refetch collection-dependent queries after this mutation."
|
|
],
|
|
"endpoint": "/api/v1/anilist/list-entry",
|
|
"methods": [
|
|
"DELETE"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Type",
|
|
"jsonName": "type",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": false,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleAnilistListAnime",
|
|
"trimmedName": "AnilistListAnime",
|
|
"comments": [
|
|
"HandleAnilistListAnime",
|
|
"",
|
|
"\t@summary returns a list of anime based on the search parameters.",
|
|
"\t@desc This is used by the \"Discover\" and \"Advanced Search\".",
|
|
"\t@route /api/v1/anilist/list-anime [POST]",
|
|
"\t@returns anilist.ListAnime",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anilist.go",
|
|
"filename": "anilist.go",
|
|
"api": {
|
|
"summary": "returns a list of anime based on the search parameters.",
|
|
"descriptions": [
|
|
"This is used by the \"Discover\" and \"Advanced Search\"."
|
|
],
|
|
"endpoint": "/api/v1/anilist/list-anime",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Page",
|
|
"jsonName": "page",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Search",
|
|
"jsonName": "search",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "PerPage",
|
|
"jsonName": "perPage",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Sort",
|
|
"jsonName": "sort",
|
|
"goType": "[]anilist.MediaSort",
|
|
"usedStructType": "anilist.MediaSort",
|
|
"typescriptType": "Array\u003cAL_MediaSort\u003e",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Status",
|
|
"jsonName": "status",
|
|
"goType": "[]anilist.MediaStatus",
|
|
"usedStructType": "anilist.MediaStatus",
|
|
"typescriptType": "Array\u003cAL_MediaStatus\u003e",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Genres",
|
|
"jsonName": "genres",
|
|
"goType": "[]string",
|
|
"usedStructType": "",
|
|
"typescriptType": "Array\u003cstring\u003e",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "AverageScoreGreater",
|
|
"jsonName": "averageScore_greater",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Season",
|
|
"jsonName": "season",
|
|
"goType": "anilist.MediaSeason",
|
|
"usedStructType": "anilist.MediaSeason",
|
|
"typescriptType": "AL_MediaSeason",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "SeasonYear",
|
|
"jsonName": "seasonYear",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Format",
|
|
"jsonName": "format",
|
|
"goType": "anilist.MediaFormat",
|
|
"usedStructType": "anilist.MediaFormat",
|
|
"typescriptType": "AL_MediaFormat",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "IsAdult",
|
|
"jsonName": "isAdult",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": false,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "anilist.ListAnime",
|
|
"returnGoType": "anilist.ListAnime",
|
|
"returnTypescriptType": "AL_ListAnime"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleAnilistListRecentAiringAnime",
|
|
"trimmedName": "AnilistListRecentAiringAnime",
|
|
"comments": [
|
|
"HandleAnilistListRecentAiringAnime",
|
|
"",
|
|
"\t@summary returns a list of recently aired anime.",
|
|
"\t@desc This is used by the \"Schedule\" page to display recently aired anime.",
|
|
"\t@route /api/v1/anilist/list-recent-anime [POST]",
|
|
"\t@returns anilist.ListRecentAnime",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anilist.go",
|
|
"filename": "anilist.go",
|
|
"api": {
|
|
"summary": "returns a list of recently aired anime.",
|
|
"descriptions": [
|
|
"This is used by the \"Schedule\" page to display recently aired anime."
|
|
],
|
|
"endpoint": "/api/v1/anilist/list-recent-anime",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Page",
|
|
"jsonName": "page",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Search",
|
|
"jsonName": "search",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "PerPage",
|
|
"jsonName": "perPage",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "AiringAtGreater",
|
|
"jsonName": "airingAt_greater",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "AiringAtLesser",
|
|
"jsonName": "airingAt_lesser",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "NotYetAired",
|
|
"jsonName": "notYetAired",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Sort",
|
|
"jsonName": "sort",
|
|
"goType": "[]anilist.AiringSort",
|
|
"usedStructType": "anilist.AiringSort",
|
|
"typescriptType": "Array\u003cAL_AiringSort\u003e",
|
|
"required": false,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "anilist.ListRecentAnime",
|
|
"returnGoType": "anilist.ListRecentAnime",
|
|
"returnTypescriptType": "AL_ListRecentAnime"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleAnilistListMissedSequels",
|
|
"trimmedName": "AnilistListMissedSequels",
|
|
"comments": [
|
|
"HandleAnilistListMissedSequels",
|
|
"",
|
|
"\t@summary returns a list of sequels not in the user's list.",
|
|
"\t@desc This is used by the \"Discover\" page to display sequels the user may have missed.",
|
|
"\t@route /api/v1/anilist/list-missed-sequels [GET]",
|
|
"\t@returns []anilist.BaseAnime",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anilist.go",
|
|
"filename": "anilist.go",
|
|
"api": {
|
|
"summary": "returns a list of sequels not in the user's list.",
|
|
"descriptions": [
|
|
"This is used by the \"Discover\" page to display sequels the user may have missed."
|
|
],
|
|
"endpoint": "/api/v1/anilist/list-missed-sequels",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "[]anilist.BaseAnime",
|
|
"returnGoType": "anilist.BaseAnime",
|
|
"returnTypescriptType": "Array\u003cAL_BaseAnime\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetAniListStats",
|
|
"trimmedName": "GetAniListStats",
|
|
"comments": [
|
|
"HandleGetAniListStats",
|
|
"",
|
|
"\t@summary returns the anilist stats.",
|
|
"\t@desc This returns the AniList stats for the user.",
|
|
"\t@route /api/v1/anilist/stats [GET]",
|
|
"\t@returns anilist.Stats",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anilist.go",
|
|
"filename": "anilist.go",
|
|
"api": {
|
|
"summary": "returns the anilist stats.",
|
|
"descriptions": [
|
|
"This returns the AniList stats for the user."
|
|
],
|
|
"endpoint": "/api/v1/anilist/stats",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "anilist.Stats",
|
|
"returnGoType": "anilist.Stats",
|
|
"returnTypescriptType": "AL_Stats"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetAnimeEpisodeCollection",
|
|
"trimmedName": "GetAnimeEpisodeCollection",
|
|
"comments": [
|
|
"HandleGetAnimeEpisodeCollection",
|
|
"",
|
|
"\t@summary gets list of main episodes",
|
|
"\t@desc This returns a list of main episodes for the given AniList anime media id.",
|
|
"\t@desc It also loads the episode list into the different modules.",
|
|
"\t@returns anime.EpisodeCollection",
|
|
"\t@param id - int - true - \"AniList anime media ID\"",
|
|
"\t@route /api/v1/anime/episode-collection/{id} [GET]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anime.go",
|
|
"filename": "anime.go",
|
|
"api": {
|
|
"summary": "gets list of main episodes",
|
|
"descriptions": [
|
|
"This returns a list of main episodes for the given AniList anime media id.",
|
|
"It also loads the episode list into the different modules."
|
|
],
|
|
"endpoint": "/api/v1/anime/episode-collection/{id}",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [
|
|
{
|
|
"name": "id",
|
|
"jsonName": "id",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": [
|
|
"AniList anime media ID"
|
|
]
|
|
}
|
|
],
|
|
"bodyFields": [],
|
|
"returns": "anime.EpisodeCollection",
|
|
"returnGoType": "anime.EpisodeCollection",
|
|
"returnTypescriptType": "Anime_EpisodeCollection"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetLibraryCollection",
|
|
"trimmedName": "GetLibraryCollection",
|
|
"comments": [
|
|
"HandleGetLibraryCollection",
|
|
"",
|
|
"\t@summary returns the main local anime collection.",
|
|
"\t@desc This creates a new LibraryCollection struct and returns it.",
|
|
"\t@desc This is used to get the main anime collection of the user.",
|
|
"\t@desc It uses the cached Anilist anime collection for the GET method.",
|
|
"\t@desc It refreshes the AniList anime collection if the POST method is used.",
|
|
"\t@route /api/v1/library/collection [GET,POST]",
|
|
"\t@returns anime.LibraryCollection",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anime_collection.go",
|
|
"filename": "anime_collection.go",
|
|
"api": {
|
|
"summary": "returns the main local anime collection.",
|
|
"descriptions": [
|
|
"This creates a new LibraryCollection struct and returns it.",
|
|
"This is used to get the main anime collection of the user.",
|
|
"It uses the cached Anilist anime collection for the GET method.",
|
|
"It refreshes the AniList anime collection if the POST method is used."
|
|
],
|
|
"endpoint": "/api/v1/library/collection",
|
|
"methods": [
|
|
"GET",
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "anime.LibraryCollection",
|
|
"returnGoType": "anime.LibraryCollection",
|
|
"returnTypescriptType": "Anime_LibraryCollection"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetAnimeCollectionSchedule",
|
|
"trimmedName": "GetAnimeCollectionSchedule",
|
|
"comments": [
|
|
"HandleGetAnimeCollectionSchedule",
|
|
"",
|
|
"\t@summary returns anime collection schedule",
|
|
"\t@desc This is used by the \"Schedule\" page to display the anime schedule.",
|
|
"\t@route /api/v1/library/schedule [GET]",
|
|
"\t@returns []anime.ScheduleItem",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anime_collection.go",
|
|
"filename": "anime_collection.go",
|
|
"api": {
|
|
"summary": "returns anime collection schedule",
|
|
"descriptions": [
|
|
"This is used by the \"Schedule\" page to display the anime schedule."
|
|
],
|
|
"endpoint": "/api/v1/library/schedule",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "[]anime.ScheduleItem",
|
|
"returnGoType": "anime.ScheduleItem",
|
|
"returnTypescriptType": "Array\u003cAnime_ScheduleItem\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleAddUnknownMedia",
|
|
"trimmedName": "AddUnknownMedia",
|
|
"comments": [
|
|
"HandleAddUnknownMedia",
|
|
"",
|
|
"\t@summary adds the given media to the user's AniList planning collections",
|
|
"\t@desc Since media not found in the user's AniList collection are not displayed in the library, this route is used to add them.",
|
|
"\t@desc The response is ignored in the frontend, the client should just refetch the entire library collection.",
|
|
"\t@route /api/v1/library/unknown-media [POST]",
|
|
"\t@returns anilist.AnimeCollection",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anime_collection.go",
|
|
"filename": "anime_collection.go",
|
|
"api": {
|
|
"summary": "adds the given media to the user's AniList planning collections",
|
|
"descriptions": [
|
|
"Since media not found in the user's AniList collection are not displayed in the library, this route is used to add them.",
|
|
"The response is ignored in the frontend, the client should just refetch the entire library collection."
|
|
],
|
|
"endpoint": "/api/v1/library/unknown-media",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaIds",
|
|
"jsonName": "mediaIds",
|
|
"goType": "[]int",
|
|
"usedStructType": "",
|
|
"typescriptType": "Array\u003cnumber\u003e",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "anilist.AnimeCollection",
|
|
"returnGoType": "anilist.AnimeCollection",
|
|
"returnTypescriptType": "AL_AnimeCollection"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetAnimeEntry",
|
|
"trimmedName": "GetAnimeEntry",
|
|
"comments": [
|
|
"HandleGetAnimeEntry",
|
|
"",
|
|
"\t@summary return a media entry for the given AniList anime media id.",
|
|
"\t@desc This is used by the anime media entry pages to get all the data about the anime.",
|
|
"\t@desc This includes episodes and metadata (if any), AniList list data, download info...",
|
|
"\t@route /api/v1/library/anime-entry/{id} [GET]",
|
|
"\t@param id - int - true - \"AniList anime media ID\"",
|
|
"\t@returns anime.Entry",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anime_entries.go",
|
|
"filename": "anime_entries.go",
|
|
"api": {
|
|
"summary": "return a media entry for the given AniList anime media id.",
|
|
"descriptions": [
|
|
"This is used by the anime media entry pages to get all the data about the anime.",
|
|
"This includes episodes and metadata (if any), AniList list data, download info..."
|
|
],
|
|
"endpoint": "/api/v1/library/anime-entry/{id}",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [
|
|
{
|
|
"name": "id",
|
|
"jsonName": "id",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": [
|
|
"AniList anime media ID"
|
|
]
|
|
}
|
|
],
|
|
"bodyFields": [],
|
|
"returns": "anime.Entry",
|
|
"returnGoType": "anime.Entry",
|
|
"returnTypescriptType": "Anime_Entry"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleAnimeEntryBulkAction",
|
|
"trimmedName": "AnimeEntryBulkAction",
|
|
"comments": [
|
|
"HandleAnimeEntryBulkAction",
|
|
"",
|
|
"\t@summary perform given action on all the local files for the given media id.",
|
|
"\t@desc This is used to unmatch or toggle the lock status of all the local files for a specific media entry",
|
|
"\t@desc The response is not used in the frontend. The client should just refetch the entire media entry data.",
|
|
"\t@route /api/v1/library/anime-entry/bulk-action [PATCH]",
|
|
"\t@returns []anime.LocalFile",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anime_entries.go",
|
|
"filename": "anime_entries.go",
|
|
"api": {
|
|
"summary": "perform given action on all the local files for the given media id.",
|
|
"descriptions": [
|
|
"This is used to unmatch or toggle the lock status of all the local files for a specific media entry",
|
|
"The response is not used in the frontend. The client should just refetch the entire media entry data."
|
|
],
|
|
"endpoint": "/api/v1/library/anime-entry/bulk-action",
|
|
"methods": [
|
|
"PATCH"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Action",
|
|
"jsonName": "action",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "[]anime.LocalFile",
|
|
"returnGoType": "anime.LocalFile",
|
|
"returnTypescriptType": "Array\u003cAnime_LocalFile\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleOpenAnimeEntryInExplorer",
|
|
"trimmedName": "OpenAnimeEntryInExplorer",
|
|
"comments": [
|
|
"HandleOpenAnimeEntryInExplorer",
|
|
"",
|
|
"\t@summary opens the directory of a media entry in the file explorer.",
|
|
"\t@desc This finds a common directory for all media entry local files and opens it in the file explorer.",
|
|
"\t@desc Returns 'true' whether the operation was successful or not, errors are ignored.",
|
|
"\t@route /api/v1/library/anime-entry/open-in-explorer [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anime_entries.go",
|
|
"filename": "anime_entries.go",
|
|
"api": {
|
|
"summary": "opens the directory of a media entry in the file explorer.",
|
|
"descriptions": [
|
|
"This finds a common directory for all media entry local files and opens it in the file explorer.",
|
|
"Returns 'true' whether the operation was successful or not, errors are ignored."
|
|
],
|
|
"endpoint": "/api/v1/library/anime-entry/open-in-explorer",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleFetchAnimeEntrySuggestions",
|
|
"trimmedName": "FetchAnimeEntrySuggestions",
|
|
"comments": [
|
|
"HandleFetchAnimeEntrySuggestions",
|
|
"",
|
|
"\t@summary returns a list of media suggestions for files in the given directory.",
|
|
"\t@desc This is used by the \"Resolve unmatched media\" feature to suggest media entries for the local files in the given directory.",
|
|
"\t@desc If some matches files are found in the directory, it will ignore them and base the suggestions on the remaining files.",
|
|
"\t@route /api/v1/library/anime-entry/suggestions [POST]",
|
|
"\t@returns []anilist.BaseAnime",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anime_entries.go",
|
|
"filename": "anime_entries.go",
|
|
"api": {
|
|
"summary": "returns a list of media suggestions for files in the given directory.",
|
|
"descriptions": [
|
|
"This is used by the \"Resolve unmatched media\" feature to suggest media entries for the local files in the given directory.",
|
|
"If some matches files are found in the directory, it will ignore them and base the suggestions on the remaining files."
|
|
],
|
|
"endpoint": "/api/v1/library/anime-entry/suggestions",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Dir",
|
|
"jsonName": "dir",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "[]anilist.BaseAnime",
|
|
"returnGoType": "anilist.BaseAnime",
|
|
"returnTypescriptType": "Array\u003cAL_BaseAnime\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleAnimeEntryManualMatch",
|
|
"trimmedName": "AnimeEntryManualMatch",
|
|
"comments": [
|
|
"HandleAnimeEntryManualMatch",
|
|
"",
|
|
"\t@summary matches un-matched local files in the given directory to the given media.",
|
|
"\t@desc It is used by the \"Resolve unmatched media\" feature to manually match local files to a specific media entry.",
|
|
"\t@desc Matching involves the use of scanner.FileHydrator. It will also lock the files.",
|
|
"\t@desc The response is not used in the frontend. The client should just refetch the entire library collection.",
|
|
"\t@route /api/v1/library/anime-entry/manual-match [POST]",
|
|
"\t@returns []anime.LocalFile",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anime_entries.go",
|
|
"filename": "anime_entries.go",
|
|
"api": {
|
|
"summary": "matches un-matched local files in the given directory to the given media.",
|
|
"descriptions": [
|
|
"It is used by the \"Resolve unmatched media\" feature to manually match local files to a specific media entry.",
|
|
"Matching involves the use of scanner.FileHydrator. It will also lock the files.",
|
|
"The response is not used in the frontend. The client should just refetch the entire library collection."
|
|
],
|
|
"endpoint": "/api/v1/library/anime-entry/manual-match",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Paths",
|
|
"jsonName": "paths",
|
|
"goType": "[]string",
|
|
"usedStructType": "",
|
|
"typescriptType": "Array\u003cstring\u003e",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "[]anime.LocalFile",
|
|
"returnGoType": "anime.LocalFile",
|
|
"returnTypescriptType": "Array\u003cAnime_LocalFile\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetMissingEpisodes",
|
|
"trimmedName": "GetMissingEpisodes",
|
|
"comments": [
|
|
"HandleGetMissingEpisodes",
|
|
"",
|
|
"\t@summary returns a list of episodes missing from the user's library collection",
|
|
"\t@desc It detects missing episodes by comparing the user's AniList collection 'next airing' data with the local files.",
|
|
"\t@desc This route can be called multiple times, as it does not bypass the cache.",
|
|
"\t@route /api/v1/library/missing-episodes [GET]",
|
|
"\t@returns anime.MissingEpisodes",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anime_entries.go",
|
|
"filename": "anime_entries.go",
|
|
"api": {
|
|
"summary": "returns a list of episodes missing from the user's library collection",
|
|
"descriptions": [
|
|
"It detects missing episodes by comparing the user's AniList collection 'next airing' data with the local files.",
|
|
"This route can be called multiple times, as it does not bypass the cache."
|
|
],
|
|
"endpoint": "/api/v1/library/missing-episodes",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "anime.MissingEpisodes",
|
|
"returnGoType": "anime.MissingEpisodes",
|
|
"returnTypescriptType": "Anime_MissingEpisodes"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetAnimeEntrySilenceStatus",
|
|
"trimmedName": "GetAnimeEntrySilenceStatus",
|
|
"comments": [
|
|
"HandleGetAnimeEntrySilenceStatus",
|
|
"",
|
|
"\t@summary returns the silence status of a media entry.",
|
|
"\t@param id - int - true - \"The ID of the media entry.\"",
|
|
"\t@route /api/v1/library/anime-entry/silence/{id} [GET]",
|
|
"\t@returns models.SilencedMediaEntry",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anime_entries.go",
|
|
"filename": "anime_entries.go",
|
|
"api": {
|
|
"summary": "returns the silence status of a media entry.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/library/anime-entry/silence/{id}",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [
|
|
{
|
|
"name": "id",
|
|
"jsonName": "id",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": [
|
|
"The ID of the media entry."
|
|
]
|
|
}
|
|
],
|
|
"bodyFields": [],
|
|
"returns": "models.SilencedMediaEntry",
|
|
"returnGoType": "models.SilencedMediaEntry",
|
|
"returnTypescriptType": "Models_SilencedMediaEntry"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleToggleAnimeEntrySilenceStatus",
|
|
"trimmedName": "ToggleAnimeEntrySilenceStatus",
|
|
"comments": [
|
|
"HandleToggleAnimeEntrySilenceStatus",
|
|
"",
|
|
"\t@summary toggles the silence status of a media entry.",
|
|
"\t@desc The missing episodes should be re-fetched after this.",
|
|
"\t@route /api/v1/library/anime-entry/silence [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anime_entries.go",
|
|
"filename": "anime_entries.go",
|
|
"api": {
|
|
"summary": "toggles the silence status of a media entry.",
|
|
"descriptions": [
|
|
"The missing episodes should be re-fetched after this."
|
|
],
|
|
"endpoint": "/api/v1/library/anime-entry/silence",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleUpdateAnimeEntryProgress",
|
|
"trimmedName": "UpdateAnimeEntryProgress",
|
|
"comments": [
|
|
"HandleUpdateAnimeEntryProgress",
|
|
"",
|
|
"\t@summary update the progress of the given anime media entry.",
|
|
"\t@desc This is used to update the progress of the given anime media entry on AniList.",
|
|
"\t@desc The response is not used in the frontend, the client should just refetch the entire media entry data.",
|
|
"\t@desc NOTE: This is currently only used by the 'Online streaming' feature since anime progress updates are handled by the Playback Manager.",
|
|
"\t@route /api/v1/library/anime-entry/update-progress [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anime_entries.go",
|
|
"filename": "anime_entries.go",
|
|
"api": {
|
|
"summary": "update the progress of the given anime media entry.",
|
|
"descriptions": [
|
|
"This is used to update the progress of the given anime media entry on AniList.",
|
|
"The response is not used in the frontend, the client should just refetch the entire media entry data.",
|
|
"NOTE: This is currently only used by the 'Online streaming' feature since anime progress updates are handled by the Playback Manager."
|
|
],
|
|
"endpoint": "/api/v1/library/anime-entry/update-progress",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "MalId",
|
|
"jsonName": "malId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "EpisodeNumber",
|
|
"jsonName": "episodeNumber",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "TotalEpisodes",
|
|
"jsonName": "totalEpisodes",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleUpdateAnimeEntryRepeat",
|
|
"trimmedName": "UpdateAnimeEntryRepeat",
|
|
"comments": [
|
|
"HandleUpdateAnimeEntryRepeat",
|
|
"",
|
|
"\t@summary update the repeat value of the given anime media entry.",
|
|
"\t@desc This is used to update the repeat value of the given anime media entry on AniList.",
|
|
"\t@desc The response is not used in the frontend, the client should just refetch the entire media entry data.",
|
|
"\t@route /api/v1/library/anime-entry/update-repeat [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/anime_entries.go",
|
|
"filename": "anime_entries.go",
|
|
"api": {
|
|
"summary": "update the repeat value of the given anime media entry.",
|
|
"descriptions": [
|
|
"This is used to update the repeat value of the given anime media entry on AniList.",
|
|
"The response is not used in the frontend, the client should just refetch the entire media entry data."
|
|
],
|
|
"endpoint": "/api/v1/library/anime-entry/update-repeat",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Repeat",
|
|
"jsonName": "repeat",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleLogin",
|
|
"trimmedName": "Login",
|
|
"comments": [
|
|
"HandleLogin",
|
|
"",
|
|
"\t@summary logs in the user by saving the JWT token in the database.",
|
|
"\t@desc This is called when the JWT token is obtained from AniList after logging in with redirection on the client.",
|
|
"\t@desc It also fetches the Viewer data from AniList and saves it in the database.",
|
|
"\t@desc It creates a new handlers.Status and refreshes App modules.",
|
|
"\t@route /api/v1/auth/login [POST]",
|
|
"\t@returns handlers.Status",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/auth.go",
|
|
"filename": "auth.go",
|
|
"api": {
|
|
"summary": "logs in the user by saving the JWT token in the database.",
|
|
"descriptions": [
|
|
"This is called when the JWT token is obtained from AniList after logging in with redirection on the client.",
|
|
"It also fetches the Viewer data from AniList and saves it in the database.",
|
|
"It creates a new handlers.Status and refreshes App modules."
|
|
],
|
|
"endpoint": "/api/v1/auth/login",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Token",
|
|
"jsonName": "token",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "handlers.Status",
|
|
"returnGoType": "handlers.Status",
|
|
"returnTypescriptType": "Status"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleLogout",
|
|
"trimmedName": "Logout",
|
|
"comments": [
|
|
"HandleLogout",
|
|
"",
|
|
"\t@summary logs out the user by removing JWT token from the database.",
|
|
"\t@desc It removes JWT token and Viewer data from the database.",
|
|
"\t@desc It creates a new handlers.Status and refreshes App modules.",
|
|
"\t@route /api/v1/auth/logout [POST]",
|
|
"\t@returns handlers.Status",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/auth.go",
|
|
"filename": "auth.go",
|
|
"api": {
|
|
"summary": "logs out the user by removing JWT token from the database.",
|
|
"descriptions": [
|
|
"It removes JWT token and Viewer data from the database.",
|
|
"It creates a new handlers.Status and refreshes App modules."
|
|
],
|
|
"endpoint": "/api/v1/auth/logout",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "handlers.Status",
|
|
"returnGoType": "handlers.Status",
|
|
"returnTypescriptType": "Status"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleRunAutoDownloader",
|
|
"trimmedName": "RunAutoDownloader",
|
|
"comments": [
|
|
"HandleRunAutoDownloader",
|
|
"",
|
|
"\t@summary tells the AutoDownloader to check for new episodes if enabled.",
|
|
"\t@desc This will run the AutoDownloader if it is enabled.",
|
|
"\t@desc It does nothing if the AutoDownloader is disabled.",
|
|
"\t@route /api/v1/auto-downloader/run [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/auto_downloader.go",
|
|
"filename": "auto_downloader.go",
|
|
"api": {
|
|
"summary": "tells the AutoDownloader to check for new episodes if enabled.",
|
|
"descriptions": [
|
|
"This will run the AutoDownloader if it is enabled.",
|
|
"It does nothing if the AutoDownloader is disabled."
|
|
],
|
|
"endpoint": "/api/v1/auto-downloader/run",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetAutoDownloaderRule",
|
|
"trimmedName": "GetAutoDownloaderRule",
|
|
"comments": [
|
|
"HandleGetAutoDownloaderRule",
|
|
"",
|
|
"\t@summary returns the rule with the given DB id.",
|
|
"\t@desc This is used to get a specific rule, useful for editing.",
|
|
"\t@route /api/v1/auto-downloader/rule/{id} [GET]",
|
|
"\t@param id - int - true - \"The DB id of the rule\"",
|
|
"\t@returns anime.AutoDownloaderRule",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/auto_downloader.go",
|
|
"filename": "auto_downloader.go",
|
|
"api": {
|
|
"summary": "returns the rule with the given DB id.",
|
|
"descriptions": [
|
|
"This is used to get a specific rule, useful for editing."
|
|
],
|
|
"endpoint": "/api/v1/auto-downloader/rule/{id}",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [
|
|
{
|
|
"name": "id",
|
|
"jsonName": "id",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": [
|
|
"The DB id of the rule"
|
|
]
|
|
}
|
|
],
|
|
"bodyFields": [],
|
|
"returns": "anime.AutoDownloaderRule",
|
|
"returnGoType": "anime.AutoDownloaderRule",
|
|
"returnTypescriptType": "Anime_AutoDownloaderRule"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetAutoDownloaderRulesByAnime",
|
|
"trimmedName": "GetAutoDownloaderRulesByAnime",
|
|
"comments": [
|
|
"HandleGetAutoDownloaderRulesByAnime",
|
|
"",
|
|
"\t@summary returns the rules with the given media id.",
|
|
"\t@route /api/v1/auto-downloader/rule/anime/{id} [GET]",
|
|
"\t@param id - int - true - \"The AniList anime id of the rules\"",
|
|
"\t@returns []anime.AutoDownloaderRule",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/auto_downloader.go",
|
|
"filename": "auto_downloader.go",
|
|
"api": {
|
|
"summary": "returns the rules with the given media id.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/auto-downloader/rule/anime/{id}",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [
|
|
{
|
|
"name": "id",
|
|
"jsonName": "id",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": [
|
|
"The AniList anime id of the rules"
|
|
]
|
|
}
|
|
],
|
|
"bodyFields": [],
|
|
"returns": "[]anime.AutoDownloaderRule",
|
|
"returnGoType": "anime.AutoDownloaderRule",
|
|
"returnTypescriptType": "Array\u003cAnime_AutoDownloaderRule\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetAutoDownloaderRules",
|
|
"trimmedName": "GetAutoDownloaderRules",
|
|
"comments": [
|
|
"HandleGetAutoDownloaderRules",
|
|
"",
|
|
"\t@summary returns all rules.",
|
|
"\t@desc This is used to list all rules. It returns an empty slice if there are no rules.",
|
|
"\t@route /api/v1/auto-downloader/rules [GET]",
|
|
"\t@returns []anime.AutoDownloaderRule",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/auto_downloader.go",
|
|
"filename": "auto_downloader.go",
|
|
"api": {
|
|
"summary": "returns all rules.",
|
|
"descriptions": [
|
|
"This is used to list all rules. It returns an empty slice if there are no rules."
|
|
],
|
|
"endpoint": "/api/v1/auto-downloader/rules",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "[]anime.AutoDownloaderRule",
|
|
"returnGoType": "anime.AutoDownloaderRule",
|
|
"returnTypescriptType": "Array\u003cAnime_AutoDownloaderRule\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleCreateAutoDownloaderRule",
|
|
"trimmedName": "CreateAutoDownloaderRule",
|
|
"comments": [
|
|
"HandleCreateAutoDownloaderRule",
|
|
"",
|
|
"\t@summary creates a new rule.",
|
|
"\t@desc The body should contain the same fields as entities.AutoDownloaderRule.",
|
|
"\t@desc It returns the created rule.",
|
|
"\t@route /api/v1/auto-downloader/rule [POST]",
|
|
"\t@returns anime.AutoDownloaderRule",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/auto_downloader.go",
|
|
"filename": "auto_downloader.go",
|
|
"api": {
|
|
"summary": "creates a new rule.",
|
|
"descriptions": [
|
|
"The body should contain the same fields as entities.AutoDownloaderRule.",
|
|
"It returns the created rule."
|
|
],
|
|
"endpoint": "/api/v1/auto-downloader/rule",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Enabled",
|
|
"jsonName": "enabled",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "ReleaseGroups",
|
|
"jsonName": "releaseGroups",
|
|
"goType": "[]string",
|
|
"usedStructType": "",
|
|
"typescriptType": "Array\u003cstring\u003e",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Resolutions",
|
|
"jsonName": "resolutions",
|
|
"goType": "[]string",
|
|
"usedStructType": "",
|
|
"typescriptType": "Array\u003cstring\u003e",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "AdditionalTerms",
|
|
"jsonName": "additionalTerms",
|
|
"goType": "[]string",
|
|
"usedStructType": "",
|
|
"typescriptType": "Array\u003cstring\u003e",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "ComparisonTitle",
|
|
"jsonName": "comparisonTitle",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "TitleComparisonType",
|
|
"jsonName": "titleComparisonType",
|
|
"goType": "anime.AutoDownloaderRuleTitleComparisonType",
|
|
"usedStructType": "anime.AutoDownloaderRuleTitleComparisonType",
|
|
"typescriptType": "Anime_AutoDownloaderRuleTitleComparisonType",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "EpisodeType",
|
|
"jsonName": "episodeType",
|
|
"goType": "anime.AutoDownloaderRuleEpisodeType",
|
|
"usedStructType": "anime.AutoDownloaderRuleEpisodeType",
|
|
"typescriptType": "Anime_AutoDownloaderRuleEpisodeType",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "EpisodeNumbers",
|
|
"jsonName": "episodeNumbers",
|
|
"goType": "[]int",
|
|
"usedStructType": "",
|
|
"typescriptType": "Array\u003cnumber\u003e",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Destination",
|
|
"jsonName": "destination",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "anime.AutoDownloaderRule",
|
|
"returnGoType": "anime.AutoDownloaderRule",
|
|
"returnTypescriptType": "Anime_AutoDownloaderRule"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleUpdateAutoDownloaderRule",
|
|
"trimmedName": "UpdateAutoDownloaderRule",
|
|
"comments": [
|
|
"HandleUpdateAutoDownloaderRule",
|
|
"",
|
|
"\t@summary updates a rule.",
|
|
"\t@desc The body should contain the same fields as entities.AutoDownloaderRule.",
|
|
"\t@desc It returns the updated rule.",
|
|
"\t@route /api/v1/auto-downloader/rule [PATCH]",
|
|
"\t@returns anime.AutoDownloaderRule",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/auto_downloader.go",
|
|
"filename": "auto_downloader.go",
|
|
"api": {
|
|
"summary": "updates a rule.",
|
|
"descriptions": [
|
|
"The body should contain the same fields as entities.AutoDownloaderRule.",
|
|
"It returns the updated rule."
|
|
],
|
|
"endpoint": "/api/v1/auto-downloader/rule",
|
|
"methods": [
|
|
"PATCH"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Rule",
|
|
"jsonName": "rule",
|
|
"goType": "anime.AutoDownloaderRule",
|
|
"usedStructType": "anime.AutoDownloaderRule",
|
|
"typescriptType": "Anime_AutoDownloaderRule",
|
|
"required": false,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "anime.AutoDownloaderRule",
|
|
"returnGoType": "anime.AutoDownloaderRule",
|
|
"returnTypescriptType": "Anime_AutoDownloaderRule"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleDeleteAutoDownloaderRule",
|
|
"trimmedName": "DeleteAutoDownloaderRule",
|
|
"comments": [
|
|
"HandleDeleteAutoDownloaderRule",
|
|
"",
|
|
"\t@summary deletes a rule.",
|
|
"\t@desc It returns 'true' if the rule was deleted.",
|
|
"\t@route /api/v1/auto-downloader/rule/{id} [DELETE]",
|
|
"\t@param id - int - true - \"The DB id of the rule\"",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/auto_downloader.go",
|
|
"filename": "auto_downloader.go",
|
|
"api": {
|
|
"summary": "deletes a rule.",
|
|
"descriptions": [
|
|
"It returns 'true' if the rule was deleted."
|
|
],
|
|
"endpoint": "/api/v1/auto-downloader/rule/{id}",
|
|
"methods": [
|
|
"DELETE"
|
|
],
|
|
"params": [
|
|
{
|
|
"name": "id",
|
|
"jsonName": "id",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": [
|
|
"The DB id of the rule"
|
|
]
|
|
}
|
|
],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetAutoDownloaderItems",
|
|
"trimmedName": "GetAutoDownloaderItems",
|
|
"comments": [
|
|
"HandleGetAutoDownloaderItems",
|
|
"",
|
|
"\t@summary returns all queued items.",
|
|
"\t@desc Queued items are episodes that are downloaded but not scanned or not yet downloaded.",
|
|
"\t@desc The AutoDownloader uses these items in order to not download the same episode twice.",
|
|
"\t@route /api/v1/auto-downloader/items [GET]",
|
|
"\t@returns []models.AutoDownloaderItem",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/auto_downloader.go",
|
|
"filename": "auto_downloader.go",
|
|
"api": {
|
|
"summary": "returns all queued items.",
|
|
"descriptions": [
|
|
"Queued items are episodes that are downloaded but not scanned or not yet downloaded.",
|
|
"The AutoDownloader uses these items in order to not download the same episode twice."
|
|
],
|
|
"endpoint": "/api/v1/auto-downloader/items",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "[]models.AutoDownloaderItem",
|
|
"returnGoType": "models.AutoDownloaderItem",
|
|
"returnTypescriptType": "Array\u003cModels_AutoDownloaderItem\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleDeleteAutoDownloaderItem",
|
|
"trimmedName": "DeleteAutoDownloaderItem",
|
|
"comments": [
|
|
"HandleDeleteAutoDownloaderItem",
|
|
"",
|
|
"\t@summary delete a queued item.",
|
|
"\t@desc This is used to remove a queued item from the list.",
|
|
"\t@desc Returns 'true' if the item was deleted.",
|
|
"\t@route /api/v1/auto-downloader/item [DELETE]",
|
|
"\t@param id - int - true - \"The DB id of the item\"",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/auto_downloader.go",
|
|
"filename": "auto_downloader.go",
|
|
"api": {
|
|
"summary": "delete a queued item.",
|
|
"descriptions": [
|
|
"This is used to remove a queued item from the list.",
|
|
"Returns 'true' if the item was deleted."
|
|
],
|
|
"endpoint": "/api/v1/auto-downloader/item",
|
|
"methods": [
|
|
"DELETE"
|
|
],
|
|
"params": [
|
|
{
|
|
"name": "id",
|
|
"jsonName": "id",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": [
|
|
"The DB id of the item"
|
|
]
|
|
}
|
|
],
|
|
"bodyFields": [
|
|
{
|
|
"name": "ID",
|
|
"jsonName": "id",
|
|
"goType": "uint",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleUpdateContinuityWatchHistoryItem",
|
|
"trimmedName": "UpdateContinuityWatchHistoryItem",
|
|
"comments": [
|
|
"HandleUpdateContinuityWatchHistoryItem",
|
|
"",
|
|
"\t@summary Updates watch history item.",
|
|
"\t@desc This endpoint is used to update a watch history item.",
|
|
"\t@desc Since this is low priority, we ignore any errors.",
|
|
"\t@route /api/v1/continuity/item [PATCH]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/continuity.go",
|
|
"filename": "continuity.go",
|
|
"api": {
|
|
"summary": "Updates watch history item.",
|
|
"descriptions": [
|
|
"This endpoint is used to update a watch history item.",
|
|
"Since this is low priority, we ignore any errors."
|
|
],
|
|
"endpoint": "/api/v1/continuity/item",
|
|
"methods": [
|
|
"PATCH"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Options",
|
|
"jsonName": "options",
|
|
"goType": "continuity.UpdateWatchHistoryItemOptions",
|
|
"usedStructType": "continuity.UpdateWatchHistoryItemOptions",
|
|
"typescriptType": "Continuity_UpdateWatchHistoryItemOptions",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetContinuityWatchHistoryItem",
|
|
"trimmedName": "GetContinuityWatchHistoryItem",
|
|
"comments": [
|
|
"HandleGetContinuityWatchHistoryItem",
|
|
"",
|
|
"\t@summary Returns a watch history item.",
|
|
"\t@desc This endpoint is used to retrieve a watch history item.",
|
|
"\t@route /api/v1/continuity/item/{id} [GET]",
|
|
"\t@param id - int - true - \"AniList anime media ID\"",
|
|
"\t@returns continuity.WatchHistoryItemResponse",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/continuity.go",
|
|
"filename": "continuity.go",
|
|
"api": {
|
|
"summary": "Returns a watch history item.",
|
|
"descriptions": [
|
|
"This endpoint is used to retrieve a watch history item."
|
|
],
|
|
"endpoint": "/api/v1/continuity/item/{id}",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [
|
|
{
|
|
"name": "id",
|
|
"jsonName": "id",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": [
|
|
"AniList anime media ID"
|
|
]
|
|
}
|
|
],
|
|
"bodyFields": [],
|
|
"returns": "continuity.WatchHistoryItemResponse",
|
|
"returnGoType": "continuity.WatchHistoryItemResponse",
|
|
"returnTypescriptType": "Continuity_WatchHistoryItemResponse"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetContinuityWatchHistory",
|
|
"trimmedName": "GetContinuityWatchHistory",
|
|
"comments": [
|
|
"HandleGetContinuityWatchHistory",
|
|
"",
|
|
"\t@summary Returns the continuity watch history",
|
|
"\t@desc This endpoint is used to retrieve all watch history items.",
|
|
"\t@route /api/v1/continuity/history [GET]",
|
|
"\t@returns continuity.WatchHistory",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/continuity.go",
|
|
"filename": "continuity.go",
|
|
"api": {
|
|
"summary": "Returns the continuity watch history",
|
|
"descriptions": [
|
|
"This endpoint is used to retrieve all watch history items."
|
|
],
|
|
"endpoint": "/api/v1/continuity/history",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "continuity.WatchHistory",
|
|
"returnGoType": "continuity.WatchHistory",
|
|
"returnTypescriptType": "Continuity_WatchHistory"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetDebridSettings",
|
|
"trimmedName": "GetDebridSettings",
|
|
"comments": [
|
|
"HandleGetDebridSettings",
|
|
"",
|
|
"\t@summary get debrid settings.",
|
|
"\t@desc This returns the debrid settings.",
|
|
"\t@returns models.DebridSettings",
|
|
"\t@route /api/v1/debrid/settings [GET]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/debrid.go",
|
|
"filename": "debrid.go",
|
|
"api": {
|
|
"summary": "get debrid settings.",
|
|
"descriptions": [
|
|
"This returns the debrid settings."
|
|
],
|
|
"endpoint": "/api/v1/debrid/settings",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "models.DebridSettings",
|
|
"returnGoType": "models.DebridSettings",
|
|
"returnTypescriptType": "Models_DebridSettings"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleSaveDebridSettings",
|
|
"trimmedName": "SaveDebridSettings",
|
|
"comments": [
|
|
"HandleSaveDebridSettings",
|
|
"",
|
|
"\t@summary save debrid settings.",
|
|
"\t@desc This saves the debrid settings.",
|
|
"\t@desc The client should refetch the server status.",
|
|
"\t@returns models.DebridSettings",
|
|
"\t@route /api/v1/debrid/settings [PATCH]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/debrid.go",
|
|
"filename": "debrid.go",
|
|
"api": {
|
|
"summary": "save debrid settings.",
|
|
"descriptions": [
|
|
"This saves the debrid settings.",
|
|
"The client should refetch the server status."
|
|
],
|
|
"endpoint": "/api/v1/debrid/settings",
|
|
"methods": [
|
|
"PATCH"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Settings",
|
|
"jsonName": "settings",
|
|
"goType": "models.DebridSettings",
|
|
"usedStructType": "models.DebridSettings",
|
|
"typescriptType": "Models_DebridSettings",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "models.DebridSettings",
|
|
"returnGoType": "models.DebridSettings",
|
|
"returnTypescriptType": "Models_DebridSettings"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleDebridAddTorrents",
|
|
"trimmedName": "DebridAddTorrents",
|
|
"comments": [
|
|
"HandleDebridAddTorrents",
|
|
"",
|
|
"\t@summary add torrent to debrid.",
|
|
"\t@desc This adds a torrent to the debrid service.",
|
|
"\t@returns bool",
|
|
"\t@route /api/v1/debrid/torrents [POST]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/debrid.go",
|
|
"filename": "debrid.go",
|
|
"api": {
|
|
"summary": "add torrent to debrid.",
|
|
"descriptions": [
|
|
"This adds a torrent to the debrid service."
|
|
],
|
|
"endpoint": "/api/v1/debrid/torrents",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Torrents",
|
|
"jsonName": "torrents",
|
|
"goType": "[]hibiketorrent.AnimeTorrent",
|
|
"usedStructType": "hibiketorrent.AnimeTorrent",
|
|
"typescriptType": "Array\u003cHibikeTorrent_AnimeTorrent\u003e",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Media",
|
|
"jsonName": "media",
|
|
"goType": "anilist.BaseAnime",
|
|
"usedStructType": "anilist.BaseAnime",
|
|
"typescriptType": "AL_BaseAnime",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Destination",
|
|
"jsonName": "destination",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleDebridDownloadTorrent",
|
|
"trimmedName": "DebridDownloadTorrent",
|
|
"comments": [
|
|
"HandleDebridDownloadTorrent",
|
|
"",
|
|
"\t@summary download torrent from debrid.",
|
|
"\t@desc Manually downloads a torrent from the debrid service locally.",
|
|
"\t@returns bool",
|
|
"\t@route /api/v1/debrid/torrents/download [POST]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/debrid.go",
|
|
"filename": "debrid.go",
|
|
"api": {
|
|
"summary": "download torrent from debrid.",
|
|
"descriptions": [
|
|
"Manually downloads a torrent from the debrid service locally."
|
|
],
|
|
"endpoint": "/api/v1/debrid/torrents/download",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "TorrentItem",
|
|
"jsonName": "torrentItem",
|
|
"goType": "debrid.TorrentItem",
|
|
"usedStructType": "debrid.TorrentItem",
|
|
"typescriptType": "Debrid_TorrentItem",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Destination",
|
|
"jsonName": "destination",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleDebridCancelDownload",
|
|
"trimmedName": "DebridCancelDownload",
|
|
"comments": [
|
|
"HandleDebridCancelDownload",
|
|
"",
|
|
"\t@summary cancel download from debrid.",
|
|
"\t@desc This cancels a download from the debrid service.",
|
|
"\t@returns bool",
|
|
"\t@route /api/v1/debrid/torrents/cancel [POST]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/debrid.go",
|
|
"filename": "debrid.go",
|
|
"api": {
|
|
"summary": "cancel download from debrid.",
|
|
"descriptions": [
|
|
"This cancels a download from the debrid service."
|
|
],
|
|
"endpoint": "/api/v1/debrid/torrents/cancel",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "ItemID",
|
|
"jsonName": "itemID",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleDebridDeleteTorrent",
|
|
"trimmedName": "DebridDeleteTorrent",
|
|
"comments": [
|
|
"HandleDebridDeleteTorrent",
|
|
"",
|
|
"\t@summary remove torrent from debrid.",
|
|
"\t@desc This removes a torrent from the debrid service.",
|
|
"\t@returns bool",
|
|
"\t@route /api/v1/debrid/torrent [DELETE]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/debrid.go",
|
|
"filename": "debrid.go",
|
|
"api": {
|
|
"summary": "remove torrent from debrid.",
|
|
"descriptions": [
|
|
"This removes a torrent from the debrid service."
|
|
],
|
|
"endpoint": "/api/v1/debrid/torrent",
|
|
"methods": [
|
|
"DELETE"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "TorrentItem",
|
|
"jsonName": "torrentItem",
|
|
"goType": "debrid.TorrentItem",
|
|
"usedStructType": "debrid.TorrentItem",
|
|
"typescriptType": "Debrid_TorrentItem",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleDebridGetTorrents",
|
|
"trimmedName": "DebridGetTorrents",
|
|
"comments": [
|
|
"HandleDebridGetTorrents",
|
|
"",
|
|
"\t@summary get torrents from debrid.",
|
|
"\t@desc This gets the torrents from the debrid service.",
|
|
"\t@returns []debrid.TorrentItem",
|
|
"\t@route /api/v1/debrid/torrents [GET]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/debrid.go",
|
|
"filename": "debrid.go",
|
|
"api": {
|
|
"summary": "get torrents from debrid.",
|
|
"descriptions": [
|
|
"This gets the torrents from the debrid service."
|
|
],
|
|
"endpoint": "/api/v1/debrid/torrents",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "[]debrid.TorrentItem",
|
|
"returnGoType": "debrid.TorrentItem",
|
|
"returnTypescriptType": "Array\u003cDebrid_TorrentItem\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleDebridGetTorrentInfo",
|
|
"trimmedName": "DebridGetTorrentInfo",
|
|
"comments": [
|
|
"HandleDebridGetTorrentInfo",
|
|
"",
|
|
"\t@summary get torrent info from debrid.",
|
|
"\t@desc This gets the torrent info from the debrid service.",
|
|
"\t@returns debrid.TorrentInfo",
|
|
"\t@route /api/v1/debrid/torrents/info [POST]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/debrid.go",
|
|
"filename": "debrid.go",
|
|
"api": {
|
|
"summary": "get torrent info from debrid.",
|
|
"descriptions": [
|
|
"This gets the torrent info from the debrid service."
|
|
],
|
|
"endpoint": "/api/v1/debrid/torrents/info",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Torrent",
|
|
"jsonName": "torrent",
|
|
"goType": "hibiketorrent.AnimeTorrent",
|
|
"usedStructType": "hibiketorrent.AnimeTorrent",
|
|
"typescriptType": "HibikeTorrent_AnimeTorrent",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "debrid.TorrentInfo",
|
|
"returnGoType": "debrid.TorrentInfo",
|
|
"returnTypescriptType": "Debrid_TorrentInfo"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleDebridGetTorrentFilePreviews",
|
|
"trimmedName": "DebridGetTorrentFilePreviews",
|
|
"comments": [
|
|
"HandleDebridGetTorrentFilePreviews",
|
|
"",
|
|
"\t@summary get list of torrent files",
|
|
"\t@returns []debrid_client.FilePreview",
|
|
"\t@route /api/v1/debrid/torrents/file-previews [POST]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/debrid.go",
|
|
"filename": "debrid.go",
|
|
"api": {
|
|
"summary": "get list of torrent files",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/debrid/torrents/file-previews",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Torrent",
|
|
"jsonName": "torrent",
|
|
"goType": "hibiketorrent.AnimeTorrent",
|
|
"usedStructType": "hibiketorrent.AnimeTorrent",
|
|
"typescriptType": "HibikeTorrent_AnimeTorrent",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "EpisodeNumber",
|
|
"jsonName": "episodeNumber",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Media",
|
|
"jsonName": "media",
|
|
"goType": "anilist.BaseAnime",
|
|
"usedStructType": "anilist.BaseAnime",
|
|
"typescriptType": "AL_BaseAnime",
|
|
"required": false,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "[]debrid_client.FilePreview",
|
|
"returnGoType": "debrid_client.FilePreview",
|
|
"returnTypescriptType": "Array\u003cDebridClient_FilePreview\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleDebridStartStream",
|
|
"trimmedName": "DebridStartStream",
|
|
"comments": [
|
|
"HandleDebridStartStream",
|
|
"",
|
|
"\t@summary start stream from debrid.",
|
|
"\t@desc This starts streaming a torrent from the debrid service.",
|
|
"\t@returns bool",
|
|
"\t@route /api/v1/debrid/stream/start [POST]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/debrid.go",
|
|
"filename": "debrid.go",
|
|
"api": {
|
|
"summary": "start stream from debrid.",
|
|
"descriptions": [
|
|
"This starts streaming a torrent from the debrid service."
|
|
],
|
|
"endpoint": "/api/v1/debrid/stream/start",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "EpisodeNumber",
|
|
"jsonName": "episodeNumber",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "AniDBEpisode",
|
|
"jsonName": "aniDBEpisode",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "AutoSelect",
|
|
"jsonName": "autoSelect",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Torrent",
|
|
"jsonName": "torrent",
|
|
"goType": "hibiketorrent.AnimeTorrent",
|
|
"usedStructType": "hibiketorrent.AnimeTorrent",
|
|
"typescriptType": "HibikeTorrent_AnimeTorrent",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "FileId",
|
|
"jsonName": "fileId",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "FileIndex",
|
|
"jsonName": "fileIndex",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "PlaybackType",
|
|
"jsonName": "playbackType",
|
|
"goType": "debrid_client.StreamPlaybackType",
|
|
"usedStructType": "debrid_client.StreamPlaybackType",
|
|
"typescriptType": "DebridClient_StreamPlaybackType",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "ClientId",
|
|
"jsonName": "clientId",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleDebridCancelStream",
|
|
"trimmedName": "DebridCancelStream",
|
|
"comments": [
|
|
"HandleDebridCancelStream",
|
|
"",
|
|
"\t@summary cancel stream from debrid.",
|
|
"\t@desc This cancels a stream from the debrid service.",
|
|
"\t@returns bool",
|
|
"\t@route /api/v1/debrid/stream/cancel [POST]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/debrid.go",
|
|
"filename": "debrid.go",
|
|
"api": {
|
|
"summary": "cancel stream from debrid.",
|
|
"descriptions": [
|
|
"This cancels a stream from the debrid service."
|
|
],
|
|
"endpoint": "/api/v1/debrid/stream/cancel",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Options",
|
|
"jsonName": "options",
|
|
"goType": "debrid_client.CancelStreamOptions",
|
|
"usedStructType": "debrid_client.CancelStreamOptions",
|
|
"typescriptType": "DebridClient_CancelStreamOptions",
|
|
"required": false,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleDirectorySelector",
|
|
"trimmedName": "DirectorySelector",
|
|
"comments": [
|
|
"HandleDirectorySelector",
|
|
"",
|
|
"\t@summary returns directory content based on the input path.",
|
|
"\t@desc This used by the directory selector component to get directory validation and suggestions.",
|
|
"\t@desc It returns subdirectories based on the input path.",
|
|
"\t@desc It returns 500 error if the directory does not exist (or cannot be accessed).",
|
|
"\t@route /api/v1/directory-selector [POST]",
|
|
"\t@returns handlers.DirectorySelectorResponse",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/directory_selector.go",
|
|
"filename": "directory_selector.go",
|
|
"api": {
|
|
"summary": "returns directory content based on the input path.",
|
|
"descriptions": [
|
|
"This used by the directory selector component to get directory validation and suggestions.",
|
|
"It returns subdirectories based on the input path.",
|
|
"It returns 500 error if the directory does not exist (or cannot be accessed)."
|
|
],
|
|
"endpoint": "/api/v1/directory-selector",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Input",
|
|
"jsonName": "input",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "handlers.DirectorySelectorResponse",
|
|
"returnGoType": "handlers.DirectorySelectorResponse",
|
|
"returnTypescriptType": "DirectorySelectorResponse"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleDirectstreamPlayLocalFile",
|
|
"trimmedName": "DirectstreamPlayLocalFile",
|
|
"comments": [
|
|
"HandleDirectstreamPlayLocalFile",
|
|
"",
|
|
"\t@summary request local file stream.",
|
|
"\t@desc This requests a local file stream and returns the media container to start the playback.",
|
|
"\t@returns mediastream.MediaContainer",
|
|
"\t@route /api/v1/directstream/play/localfile [POST]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/directstream.go",
|
|
"filename": "directstream.go",
|
|
"api": {
|
|
"summary": "request local file stream.",
|
|
"descriptions": [
|
|
"This requests a local file stream and returns the media container to start the playback."
|
|
],
|
|
"endpoint": "/api/v1/directstream/play/localfile",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Path",
|
|
"jsonName": "path",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "ClientId",
|
|
"jsonName": "clientId",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "mediastream.MediaContainer",
|
|
"returnGoType": "mediastream.MediaContainer",
|
|
"returnTypescriptType": "Mediastream_MediaContainer"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleSetDiscordMangaActivity",
|
|
"trimmedName": "SetDiscordMangaActivity",
|
|
"comments": [
|
|
"HandleSetDiscordMangaActivity",
|
|
"",
|
|
"\t@summary sets manga activity for discord rich presence.",
|
|
"\t@route /api/v1/discord/presence/manga [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/discord.go",
|
|
"filename": "discord.go",
|
|
"api": {
|
|
"summary": "sets manga activity for discord rich presence.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/discord/presence/manga",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Title",
|
|
"jsonName": "title",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Image",
|
|
"jsonName": "image",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Chapter",
|
|
"jsonName": "chapter",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleSetDiscordLegacyAnimeActivity",
|
|
"trimmedName": "SetDiscordLegacyAnimeActivity",
|
|
"comments": [
|
|
"HandleSetDiscordLegacyAnimeActivity",
|
|
"",
|
|
"\t@summary sets anime activity for discord rich presence.",
|
|
"\t@route /api/v1/discord/presence/legacy-anime [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/discord.go",
|
|
"filename": "discord.go",
|
|
"api": {
|
|
"summary": "sets anime activity for discord rich presence.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/discord/presence/legacy-anime",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Title",
|
|
"jsonName": "title",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Image",
|
|
"jsonName": "image",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "IsMovie",
|
|
"jsonName": "isMovie",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "EpisodeNumber",
|
|
"jsonName": "episodeNumber",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleSetDiscordAnimeActivityWithProgress",
|
|
"trimmedName": "SetDiscordAnimeActivityWithProgress",
|
|
"comments": [
|
|
"HandleSetDiscordAnimeActivityWithProgress",
|
|
"",
|
|
"\t@summary sets anime activity for discord rich presence with progress.",
|
|
"\t@route /api/v1/discord/presence/anime [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/discord.go",
|
|
"filename": "discord.go",
|
|
"api": {
|
|
"summary": "sets anime activity for discord rich presence with progress.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/discord/presence/anime",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Title",
|
|
"jsonName": "title",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Image",
|
|
"jsonName": "image",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "IsMovie",
|
|
"jsonName": "isMovie",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "EpisodeNumber",
|
|
"jsonName": "episodeNumber",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Progress",
|
|
"jsonName": "progress",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Duration",
|
|
"jsonName": "duration",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "TotalEpisodes",
|
|
"jsonName": "totalEpisodes",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "CurrentEpisodeCount",
|
|
"jsonName": "currentEpisodeCount",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "EpisodeTitle",
|
|
"jsonName": "episodeTitle",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": false,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleUpdateDiscordAnimeActivityWithProgress",
|
|
"trimmedName": "UpdateDiscordAnimeActivityWithProgress",
|
|
"comments": [
|
|
"HandleUpdateDiscordAnimeActivityWithProgress",
|
|
"",
|
|
"\t@summary updates the anime activity for discord rich presence with progress.",
|
|
"\t@route /api/v1/discord/presence/anime-update [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/discord.go",
|
|
"filename": "discord.go",
|
|
"api": {
|
|
"summary": "updates the anime activity for discord rich presence with progress.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/discord/presence/anime-update",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Progress",
|
|
"jsonName": "progress",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Duration",
|
|
"jsonName": "duration",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Paused",
|
|
"jsonName": "paused",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleCancelDiscordActivity",
|
|
"trimmedName": "CancelDiscordActivity",
|
|
"comments": [
|
|
"HandleCancelDiscordActivity",
|
|
"",
|
|
"\t@summary cancels the current discord rich presence activity.",
|
|
"\t@route /api/v1/discord/presence/cancel [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/discord.go",
|
|
"filename": "discord.go",
|
|
"api": {
|
|
"summary": "cancels the current discord rich presence activity.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/discord/presence/cancel",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetDocs",
|
|
"trimmedName": "GetDocs",
|
|
"comments": [
|
|
"HandleGetDocs",
|
|
"",
|
|
"\t@summary returns the API documentation",
|
|
"\t@route /api/v1/internal/docs [GET]",
|
|
"\t@returns []handlers.ApiDocsGroup",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/docs.go",
|
|
"filename": "docs.go",
|
|
"api": {
|
|
"summary": "returns the API documentation",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/internal/docs",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "[]handlers.ApiDocsGroup",
|
|
"returnGoType": "handlers.ApiDocsGroup",
|
|
"returnTypescriptType": "Array\u003cApiDocsGroup\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleDownloadTorrentFile",
|
|
"trimmedName": "DownloadTorrentFile",
|
|
"comments": [
|
|
"HandleDownloadTorrentFile",
|
|
"",
|
|
"\t@summary downloads torrent files to the destination folder",
|
|
"\t@route /api/v1/download-torrent-file [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/download.go",
|
|
"filename": "download.go",
|
|
"api": {
|
|
"summary": "downloads torrent files to the destination folder",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/download-torrent-file",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "DownloadUrls",
|
|
"jsonName": "download_urls",
|
|
"goType": "[]string",
|
|
"usedStructType": "",
|
|
"typescriptType": "Array\u003cstring\u003e",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Destination",
|
|
"jsonName": "destination",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Media",
|
|
"jsonName": "media",
|
|
"goType": "anilist.BaseAnime",
|
|
"usedStructType": "anilist.BaseAnime",
|
|
"typescriptType": "AL_BaseAnime",
|
|
"required": false,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleDownloadRelease",
|
|
"trimmedName": "DownloadRelease",
|
|
"comments": [
|
|
"HandleDownloadRelease",
|
|
"",
|
|
"\t@summary downloads selected release asset to the destination folder.",
|
|
"\t@desc Downloads the selected release asset to the destination folder and extracts it if possible.",
|
|
"\t@desc If the extraction fails, the error message will be returned in the successful response.",
|
|
"\t@desc The successful response will contain the destination path of the extracted files.",
|
|
"\t@desc It only returns an error if the download fails.",
|
|
"\t@route /api/v1/download-release [POST]",
|
|
"\t@returns handlers.DownloadReleaseResponse",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/download.go",
|
|
"filename": "download.go",
|
|
"api": {
|
|
"summary": "downloads selected release asset to the destination folder.",
|
|
"descriptions": [
|
|
"Downloads the selected release asset to the destination folder and extracts it if possible.",
|
|
"If the extraction fails, the error message will be returned in the successful response.",
|
|
"The successful response will contain the destination path of the extracted files.",
|
|
"It only returns an error if the download fails."
|
|
],
|
|
"endpoint": "/api/v1/download-release",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "DownloadUrl",
|
|
"jsonName": "download_url",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Destination",
|
|
"jsonName": "destination",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "handlers.DownloadReleaseResponse",
|
|
"returnGoType": "handlers.DownloadReleaseResponse",
|
|
"returnTypescriptType": "DownloadReleaseResponse"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleOpenInExplorer",
|
|
"trimmedName": "OpenInExplorer",
|
|
"comments": [
|
|
"HandleOpenInExplorer",
|
|
"",
|
|
"\t@summary opens the given directory in the file explorer.",
|
|
"\t@desc It returns 'true' whether the operation was successful or not.",
|
|
"\t@route /api/v1/open-in-explorer [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/explorer.go",
|
|
"filename": "explorer.go",
|
|
"api": {
|
|
"summary": "opens the given directory in the file explorer.",
|
|
"descriptions": [
|
|
"It returns 'true' whether the operation was successful or not."
|
|
],
|
|
"endpoint": "/api/v1/open-in-explorer",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Path",
|
|
"jsonName": "path",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleFetchExternalExtensionData",
|
|
"trimmedName": "FetchExternalExtensionData",
|
|
"comments": [
|
|
"HandleFetchExternalExtensionData",
|
|
"",
|
|
"\t@summary returns the extension data from the given manifest uri.",
|
|
"\t@route /api/v1/extensions/external/fetch [POST]",
|
|
"\t@returns extension.Extension",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/extensions.go",
|
|
"filename": "extensions.go",
|
|
"api": {
|
|
"summary": "returns the extension data from the given manifest uri.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/extensions/external/fetch",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "ManifestURI",
|
|
"jsonName": "manifestUri",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "extension.Extension",
|
|
"returnGoType": "extension.Extension",
|
|
"returnTypescriptType": "Extension_Extension"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleInstallExternalExtension",
|
|
"trimmedName": "InstallExternalExtension",
|
|
"comments": [
|
|
"HandleInstallExternalExtension",
|
|
"",
|
|
"\t@summary installs the extension from the given manifest uri.",
|
|
"\t@route /api/v1/extensions/external/install [POST]",
|
|
"\t@returns extension_repo.ExtensionInstallResponse",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/extensions.go",
|
|
"filename": "extensions.go",
|
|
"api": {
|
|
"summary": "installs the extension from the given manifest uri.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/extensions/external/install",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "ManifestURI",
|
|
"jsonName": "manifestUri",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "extension_repo.ExtensionInstallResponse",
|
|
"returnGoType": "extension_repo.ExtensionInstallResponse",
|
|
"returnTypescriptType": "ExtensionRepo_ExtensionInstallResponse"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleUninstallExternalExtension",
|
|
"trimmedName": "UninstallExternalExtension",
|
|
"comments": [
|
|
"HandleUninstallExternalExtension",
|
|
"",
|
|
"\t@summary uninstalls the extension with the given ID.",
|
|
"\t@route /api/v1/extensions/external/uninstall [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/extensions.go",
|
|
"filename": "extensions.go",
|
|
"api": {
|
|
"summary": "uninstalls the extension with the given ID.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/extensions/external/uninstall",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "ID",
|
|
"jsonName": "id",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleUpdateExtensionCode",
|
|
"trimmedName": "UpdateExtensionCode",
|
|
"comments": [
|
|
"HandleUpdateExtensionCode",
|
|
"",
|
|
"\t@summary updates the extension code with the given ID and reloads the extensions.",
|
|
"\t@route /api/v1/extensions/external/edit-payload [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/extensions.go",
|
|
"filename": "extensions.go",
|
|
"api": {
|
|
"summary": "updates the extension code with the given ID and reloads the extensions.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/extensions/external/edit-payload",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "ID",
|
|
"jsonName": "id",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Payload",
|
|
"jsonName": "payload",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleReloadExternalExtensions",
|
|
"trimmedName": "ReloadExternalExtensions",
|
|
"comments": [
|
|
"HandleReloadExternalExtensions",
|
|
"",
|
|
"\t@summary reloads the external extensions.",
|
|
"\t@route /api/v1/extensions/external/reload [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/extensions.go",
|
|
"filename": "extensions.go",
|
|
"api": {
|
|
"summary": "reloads the external extensions.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/extensions/external/reload",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleReloadExternalExtension",
|
|
"trimmedName": "ReloadExternalExtension",
|
|
"comments": [
|
|
"HandleReloadExternalExtension",
|
|
"",
|
|
"\t@summary reloads the external extension with the given ID.",
|
|
"\t@route /api/v1/extensions/external/reload [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/extensions.go",
|
|
"filename": "extensions.go",
|
|
"api": {
|
|
"summary": "reloads the external extension with the given ID.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/extensions/external/reload",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "ID",
|
|
"jsonName": "id",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleListExtensionData",
|
|
"trimmedName": "ListExtensionData",
|
|
"comments": [
|
|
"HandleListExtensionData",
|
|
"",
|
|
"\t@summary returns the loaded extensions",
|
|
"\t@route /api/v1/extensions/list [GET]",
|
|
"\t@returns []extension.Extension",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/extensions.go",
|
|
"filename": "extensions.go",
|
|
"api": {
|
|
"summary": "returns the loaded extensions",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/extensions/list",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "[]extension.Extension",
|
|
"returnGoType": "extension.Extension",
|
|
"returnTypescriptType": "Array\u003cExtension_Extension\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetExtensionPayload",
|
|
"trimmedName": "GetExtensionPayload",
|
|
"comments": [
|
|
"HandleGetExtensionPayload",
|
|
"",
|
|
"\t@summary returns the payload of the extension with the given ID.",
|
|
"\t@route /api/v1/extensions/payload/{id} [GET]",
|
|
"\t@returns string",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/extensions.go",
|
|
"filename": "extensions.go",
|
|
"api": {
|
|
"summary": "returns the payload of the extension with the given ID.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/extensions/payload/{id}",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "string",
|
|
"returnGoType": "string",
|
|
"returnTypescriptType": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleListDevelopmentModeExtensions",
|
|
"trimmedName": "ListDevelopmentModeExtensions",
|
|
"comments": [
|
|
"HandleListDevelopmentModeExtensions",
|
|
"",
|
|
"\t@summary returns the development mode extensions",
|
|
"\t@route /api/v1/extensions/list/development [GET]",
|
|
"\t@returns []extension.Extension",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/extensions.go",
|
|
"filename": "extensions.go",
|
|
"api": {
|
|
"summary": "returns the development mode extensions",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/extensions/list/development",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "[]extension.Extension",
|
|
"returnGoType": "extension.Extension",
|
|
"returnTypescriptType": "Array\u003cExtension_Extension\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetAllExtensions",
|
|
"trimmedName": "GetAllExtensions",
|
|
"comments": [
|
|
"HandleGetAllExtensions",
|
|
"",
|
|
"\t@summary returns all loaded and invalid extensions.",
|
|
"\t@route /api/v1/extensions/all [POST]",
|
|
"\t@returns extension_repo.AllExtensions",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/extensions.go",
|
|
"filename": "extensions.go",
|
|
"api": {
|
|
"summary": "returns all loaded and invalid extensions.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/extensions/all",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "WithUpdates",
|
|
"jsonName": "withUpdates",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "extension_repo.AllExtensions",
|
|
"returnGoType": "extension_repo.AllExtensions",
|
|
"returnTypescriptType": "ExtensionRepo_AllExtensions"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetExtensionUpdateData",
|
|
"trimmedName": "GetExtensionUpdateData",
|
|
"comments": [
|
|
"HandleGetExtensionUpdateData",
|
|
"",
|
|
"\t@summary returns the update data that were found for the extensions.",
|
|
"\t@route /api/v1/extensions/updates [GET]",
|
|
"\t@returns []extension_repo.UpdateData",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/extensions.go",
|
|
"filename": "extensions.go",
|
|
"api": {
|
|
"summary": "returns the update data that were found for the extensions.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/extensions/updates",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "[]extension_repo.UpdateData",
|
|
"returnGoType": "extension_repo.UpdateData",
|
|
"returnTypescriptType": "Array\u003cExtensionRepo_UpdateData\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleListMangaProviderExtensions",
|
|
"trimmedName": "ListMangaProviderExtensions",
|
|
"comments": [
|
|
"HandleListMangaProviderExtensions",
|
|
"",
|
|
"\t@summary returns the installed manga providers.",
|
|
"\t@route /api/v1/extensions/list/manga-provider [GET]",
|
|
"\t@returns []extension_repo.MangaProviderExtensionItem",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/extensions.go",
|
|
"filename": "extensions.go",
|
|
"api": {
|
|
"summary": "returns the installed manga providers.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/extensions/list/manga-provider",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "[]extension_repo.MangaProviderExtensionItem",
|
|
"returnGoType": "extension_repo.MangaProviderExtensionItem",
|
|
"returnTypescriptType": "Array\u003cExtensionRepo_MangaProviderExtensionItem\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleListOnlinestreamProviderExtensions",
|
|
"trimmedName": "ListOnlinestreamProviderExtensions",
|
|
"comments": [
|
|
"HandleListOnlinestreamProviderExtensions",
|
|
"",
|
|
"\t@summary returns the installed online streaming providers.",
|
|
"\t@route /api/v1/extensions/list/onlinestream-provider [GET]",
|
|
"\t@returns []extension_repo.OnlinestreamProviderExtensionItem",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/extensions.go",
|
|
"filename": "extensions.go",
|
|
"api": {
|
|
"summary": "returns the installed online streaming providers.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/extensions/list/onlinestream-provider",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "[]extension_repo.OnlinestreamProviderExtensionItem",
|
|
"returnGoType": "extension_repo.OnlinestreamProviderExtensionItem",
|
|
"returnTypescriptType": "Array\u003cExtensionRepo_OnlinestreamProviderExtensionItem\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleListAnimeTorrentProviderExtensions",
|
|
"trimmedName": "ListAnimeTorrentProviderExtensions",
|
|
"comments": [
|
|
"HandleListAnimeTorrentProviderExtensions",
|
|
"",
|
|
"\t@summary returns the installed torrent providers.",
|
|
"\t@route /api/v1/extensions/list/anime-torrent-provider [GET]",
|
|
"\t@returns []extension_repo.AnimeTorrentProviderExtensionItem",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/extensions.go",
|
|
"filename": "extensions.go",
|
|
"api": {
|
|
"summary": "returns the installed torrent providers.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/extensions/list/anime-torrent-provider",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "[]extension_repo.AnimeTorrentProviderExtensionItem",
|
|
"returnGoType": "extension_repo.AnimeTorrentProviderExtensionItem",
|
|
"returnTypescriptType": "Array\u003cExtensionRepo_AnimeTorrentProviderExtensionItem\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetPluginSettings",
|
|
"trimmedName": "GetPluginSettings",
|
|
"comments": [
|
|
"HandleGetPluginSettings",
|
|
"",
|
|
"\t@summary returns the plugin settings.",
|
|
"\t@route /api/v1/extensions/plugin-settings [GET]",
|
|
"\t@returns extension_repo.StoredPluginSettingsData",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/extensions.go",
|
|
"filename": "extensions.go",
|
|
"api": {
|
|
"summary": "returns the plugin settings.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/extensions/plugin-settings",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "extension_repo.StoredPluginSettingsData",
|
|
"returnGoType": "extension_repo.StoredPluginSettingsData",
|
|
"returnTypescriptType": "ExtensionRepo_StoredPluginSettingsData"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleSetPluginSettingsPinnedTrays",
|
|
"trimmedName": "SetPluginSettingsPinnedTrays",
|
|
"comments": [
|
|
"HandleSetPluginSettingsPinnedTrays",
|
|
"",
|
|
"\t@summary sets the pinned trays in the plugin settings.",
|
|
"\t@route /api/v1/extensions/plugin-settings/pinned-trays [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/extensions.go",
|
|
"filename": "extensions.go",
|
|
"api": {
|
|
"summary": "sets the pinned trays in the plugin settings.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/extensions/plugin-settings/pinned-trays",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "PinnedTrayPluginIds",
|
|
"jsonName": "pinnedTrayPluginIds",
|
|
"goType": "[]string",
|
|
"usedStructType": "",
|
|
"typescriptType": "Array\u003cstring\u003e",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGrantPluginPermissions",
|
|
"trimmedName": "GrantPluginPermissions",
|
|
"comments": [
|
|
"HandleGrantPluginPermissions",
|
|
"",
|
|
"\t@summary grants the plugin permissions to the extension with the given ID.",
|
|
"\t@route /api/v1/extensions/plugin-permissions/grant [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/extensions.go",
|
|
"filename": "extensions.go",
|
|
"api": {
|
|
"summary": "grants the plugin permissions to the extension with the given ID.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/extensions/plugin-permissions/grant",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "ID",
|
|
"jsonName": "id",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleRunExtensionPlaygroundCode",
|
|
"trimmedName": "RunExtensionPlaygroundCode",
|
|
"comments": [
|
|
"HandleRunExtensionPlaygroundCode",
|
|
"",
|
|
"\t@summary runs the code in the extension playground.",
|
|
"\t@desc Returns the logs",
|
|
"\t@route /api/v1/extensions/playground/run [POST]",
|
|
"\t@returns extension_playground.RunPlaygroundCodeResponse",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/extensions.go",
|
|
"filename": "extensions.go",
|
|
"api": {
|
|
"summary": "runs the code in the extension playground.",
|
|
"descriptions": [
|
|
"Returns the logs"
|
|
],
|
|
"endpoint": "/api/v1/extensions/playground/run",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Params",
|
|
"jsonName": "params",
|
|
"goType": "extension_playground.RunPlaygroundCodeParams",
|
|
"usedStructType": "extension_playground.RunPlaygroundCodeParams",
|
|
"typescriptType": "RunPlaygroundCodeParams",
|
|
"required": false,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "extension_playground.RunPlaygroundCodeResponse",
|
|
"returnGoType": "extension_playground.RunPlaygroundCodeResponse",
|
|
"returnTypescriptType": "RunPlaygroundCodeResponse"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetExtensionUserConfig",
|
|
"trimmedName": "GetExtensionUserConfig",
|
|
"comments": [
|
|
"HandleGetExtensionUserConfig",
|
|
"",
|
|
"\t@summary returns the user config definition and current values for the extension with the given ID.",
|
|
"\t@route /api/v1/extensions/user-config/{id} [GET]",
|
|
"\t@returns extension_repo.ExtensionUserConfig",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/extensions.go",
|
|
"filename": "extensions.go",
|
|
"api": {
|
|
"summary": "returns the user config definition and current values for the extension with the given ID.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/extensions/user-config/{id}",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "extension_repo.ExtensionUserConfig",
|
|
"returnGoType": "extension_repo.ExtensionUserConfig",
|
|
"returnTypescriptType": "ExtensionRepo_ExtensionUserConfig"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleSaveExtensionUserConfig",
|
|
"trimmedName": "SaveExtensionUserConfig",
|
|
"comments": [
|
|
"HandleSaveExtensionUserConfig",
|
|
"",
|
|
"\t@summary saves the user config for the extension with the given ID and reloads it.",
|
|
"\t@route /api/v1/extensions/user-config [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/extensions.go",
|
|
"filename": "extensions.go",
|
|
"api": {
|
|
"summary": "saves the user config for the extension with the given ID and reloads it.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/extensions/user-config",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "ID",
|
|
"jsonName": "id",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Version",
|
|
"jsonName": "version",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Values",
|
|
"jsonName": "values",
|
|
"goType": "map[string]string",
|
|
"usedStructType": "",
|
|
"typescriptType": "Record\u003cstring, string\u003e",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetMarketplaceExtensions",
|
|
"trimmedName": "GetMarketplaceExtensions",
|
|
"comments": [
|
|
"HandleGetMarketplaceExtensions",
|
|
"",
|
|
"\t@summary returns the marketplace extensions.",
|
|
"\t@route /api/v1/extensions/marketplace [GET]",
|
|
"\t@returns []extension.Extension",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/extensions.go",
|
|
"filename": "extensions.go",
|
|
"api": {
|
|
"summary": "returns the marketplace extensions.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/extensions/marketplace",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "[]extension.Extension",
|
|
"returnGoType": "extension.Extension",
|
|
"returnTypescriptType": "Array\u003cExtension_Extension\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetFileCacheTotalSize",
|
|
"trimmedName": "GetFileCacheTotalSize",
|
|
"comments": [
|
|
"HandleGetFileCacheTotalSize",
|
|
"",
|
|
"\t@summary returns the total size of cache files.",
|
|
"\t@desc The total size of the cache files is returned in human-readable format.",
|
|
"\t@route /api/v1/filecache/total-size [GET]",
|
|
"\t@returns string",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/filecache.go",
|
|
"filename": "filecache.go",
|
|
"api": {
|
|
"summary": "returns the total size of cache files.",
|
|
"descriptions": [
|
|
"The total size of the cache files is returned in human-readable format."
|
|
],
|
|
"endpoint": "/api/v1/filecache/total-size",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "string",
|
|
"returnGoType": "string",
|
|
"returnTypescriptType": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleRemoveFileCacheBucket",
|
|
"trimmedName": "RemoveFileCacheBucket",
|
|
"comments": [
|
|
"HandleRemoveFileCacheBucket",
|
|
"",
|
|
"\t@summary deletes all buckets with the given prefix.",
|
|
"\t@desc The bucket value is the prefix of the cache files that should be deleted.",
|
|
"\t@desc Returns 'true' if the operation was successful.",
|
|
"\t@route /api/v1/filecache/bucket [DELETE]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/filecache.go",
|
|
"filename": "filecache.go",
|
|
"api": {
|
|
"summary": "deletes all buckets with the given prefix.",
|
|
"descriptions": [
|
|
"The bucket value is the prefix of the cache files that should be deleted.",
|
|
"Returns 'true' if the operation was successful."
|
|
],
|
|
"endpoint": "/api/v1/filecache/bucket",
|
|
"methods": [
|
|
"DELETE"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Bucket",
|
|
"jsonName": "bucket",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetFileCacheMediastreamVideoFilesTotalSize",
|
|
"trimmedName": "GetFileCacheMediastreamVideoFilesTotalSize",
|
|
"comments": [
|
|
"HandleGetFileCacheMediastreamVideoFilesTotalSize",
|
|
"",
|
|
"\t@summary returns the total size of cached video file data.",
|
|
"\t@desc The total size of the cache video file data is returned in human-readable format.",
|
|
"\t@route /api/v1/filecache/mediastream/videofiles/total-size [GET]",
|
|
"\t@returns string",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/filecache.go",
|
|
"filename": "filecache.go",
|
|
"api": {
|
|
"summary": "returns the total size of cached video file data.",
|
|
"descriptions": [
|
|
"The total size of the cache video file data is returned in human-readable format."
|
|
],
|
|
"endpoint": "/api/v1/filecache/mediastream/videofiles/total-size",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "string",
|
|
"returnGoType": "string",
|
|
"returnTypescriptType": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleClearFileCacheMediastreamVideoFiles",
|
|
"trimmedName": "ClearFileCacheMediastreamVideoFiles",
|
|
"comments": [
|
|
"HandleClearFileCacheMediastreamVideoFiles",
|
|
"",
|
|
"\t@summary deletes the contents of the mediastream video file cache directory.",
|
|
"\t@desc Returns 'true' if the operation was successful.",
|
|
"\t@route /api/v1/filecache/mediastream/videofiles [DELETE]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/filecache.go",
|
|
"filename": "filecache.go",
|
|
"api": {
|
|
"summary": "deletes the contents of the mediastream video file cache directory.",
|
|
"descriptions": [
|
|
"Returns 'true' if the operation was successful."
|
|
],
|
|
"endpoint": "/api/v1/filecache/mediastream/videofiles",
|
|
"methods": [
|
|
"DELETE"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleSetOfflineMode",
|
|
"trimmedName": "SetOfflineMode",
|
|
"comments": [
|
|
"HandleSetOfflineMode",
|
|
"",
|
|
"\t@summary sets the offline mode.",
|
|
"\t@desc Returns true if the offline mode is active, false otherwise.",
|
|
"\t@route /api/v1/local/offline [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/local.go",
|
|
"filename": "local.go",
|
|
"api": {
|
|
"summary": "sets the offline mode.",
|
|
"descriptions": [
|
|
"Returns true if the offline mode is active, false otherwise."
|
|
],
|
|
"endpoint": "/api/v1/local/offline",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Enabled",
|
|
"jsonName": "enabled",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleLocalGetTrackedMediaItems",
|
|
"trimmedName": "LocalGetTrackedMediaItems",
|
|
"comments": [
|
|
"HandleLocalGetTrackedMediaItems",
|
|
"",
|
|
"\t@summary gets all tracked media.",
|
|
"\t@route /api/v1/local/track [GET]",
|
|
"\t@returns []local.TrackedMediaItem",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/local.go",
|
|
"filename": "local.go",
|
|
"api": {
|
|
"summary": "gets all tracked media.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/local/track",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "[]local.TrackedMediaItem",
|
|
"returnGoType": "local.TrackedMediaItem",
|
|
"returnTypescriptType": "Array\u003cLocal_TrackedMediaItem\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleLocalAddTrackedMedia",
|
|
"trimmedName": "LocalAddTrackedMedia",
|
|
"comments": [
|
|
"HandleLocalAddTrackedMedia",
|
|
"",
|
|
"\t@summary adds one or multiple media to be tracked for offline sync.",
|
|
"\t@route /api/v1/local/track [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/local.go",
|
|
"filename": "local.go",
|
|
"api": {
|
|
"summary": "adds one or multiple media to be tracked for offline sync.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/local/track",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Media",
|
|
"jsonName": "media",
|
|
"goType": "[]__STRUCT__",
|
|
"inlineStructType": "[]struct{\nMediaId int `json:\"mediaId\"`\nType string `json:\"type\"`}",
|
|
"usedStructType": "",
|
|
"typescriptType": "Array\u003c{ mediaId: number; type: string; }\u003e",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleLocalRemoveTrackedMedia",
|
|
"trimmedName": "LocalRemoveTrackedMedia",
|
|
"comments": [
|
|
"HandleLocalRemoveTrackedMedia",
|
|
"",
|
|
"\t@summary remove media from being tracked for offline sync.",
|
|
"\t@desc This will remove anime from being tracked for offline sync and delete any associated data.",
|
|
"\t@route /api/v1/local/track [DELETE]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/local.go",
|
|
"filename": "local.go",
|
|
"api": {
|
|
"summary": "remove media from being tracked for offline sync.",
|
|
"descriptions": [
|
|
"This will remove anime from being tracked for offline sync and delete any associated data."
|
|
],
|
|
"endpoint": "/api/v1/local/track",
|
|
"methods": [
|
|
"DELETE"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Type",
|
|
"jsonName": "type",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleLocalGetIsMediaTracked",
|
|
"trimmedName": "LocalGetIsMediaTracked",
|
|
"comments": [
|
|
"HandleLocalGetIsMediaTracked",
|
|
"",
|
|
"\t@summary checks if media is being tracked for offline sync.",
|
|
"\t@route /api/v1/local/track/{id}/{type} [GET]",
|
|
"\t@param id - int - true - \"AniList anime media ID\"",
|
|
"\t@param type - string - true - \"Type of media (anime/manga)\"",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/local.go",
|
|
"filename": "local.go",
|
|
"api": {
|
|
"summary": "checks if media is being tracked for offline sync.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/local/track/{id}/{type}",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [
|
|
{
|
|
"name": "id",
|
|
"jsonName": "id",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": [
|
|
"AniList anime media ID"
|
|
]
|
|
},
|
|
{
|
|
"name": "type",
|
|
"jsonName": "type",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": [
|
|
"Type of media (anime/manga)"
|
|
]
|
|
}
|
|
],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleLocalSyncData",
|
|
"trimmedName": "LocalSyncData",
|
|
"comments": [
|
|
"HandleLocalSyncData",
|
|
"",
|
|
"\t@summary syncs local data with AniList.",
|
|
"\t@route /api/v1/local/local [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/local.go",
|
|
"filename": "local.go",
|
|
"api": {
|
|
"summary": "syncs local data with AniList.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/local/local",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleLocalGetSyncQueueState",
|
|
"trimmedName": "LocalGetSyncQueueState",
|
|
"comments": [
|
|
"HandleLocalGetSyncQueueState",
|
|
"",
|
|
"\t@summary gets the current sync queue state.",
|
|
"\t@desc This will return the list of media that are currently queued for syncing.",
|
|
"\t@route /api/v1/local/queue [GET]",
|
|
"\t@returns local.QueueState",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/local.go",
|
|
"filename": "local.go",
|
|
"api": {
|
|
"summary": "gets the current sync queue state.",
|
|
"descriptions": [
|
|
"This will return the list of media that are currently queued for syncing."
|
|
],
|
|
"endpoint": "/api/v1/local/queue",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "local.QueueState",
|
|
"returnGoType": "local.QueueState",
|
|
"returnTypescriptType": "Local_QueueState"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleLocalSyncAnilistData",
|
|
"trimmedName": "LocalSyncAnilistData",
|
|
"comments": [
|
|
"HandleLocalSyncAnilistData",
|
|
"",
|
|
"\t@summary syncs AniList data with local.",
|
|
"\t@route /api/v1/local/anilist [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/local.go",
|
|
"filename": "local.go",
|
|
"api": {
|
|
"summary": "syncs AniList data with local.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/local/anilist",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleLocalSetHasLocalChanges",
|
|
"trimmedName": "LocalSetHasLocalChanges",
|
|
"comments": [
|
|
"HandleLocalSetHasLocalChanges",
|
|
"",
|
|
"\t@summary sets the flag to determine if there are local changes that need to be synced with AniList.",
|
|
"\t@route /api/v1/local/updated [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/local.go",
|
|
"filename": "local.go",
|
|
"api": {
|
|
"summary": "sets the flag to determine if there are local changes that need to be synced with AniList.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/local/updated",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Updated",
|
|
"jsonName": "updated",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleLocalGetHasLocalChanges",
|
|
"trimmedName": "LocalGetHasLocalChanges",
|
|
"comments": [
|
|
"HandleLocalGetHasLocalChanges",
|
|
"",
|
|
"\t@summary gets the flag to determine if there are local changes that need to be synced with AniList.",
|
|
"\t@route /api/v1/local/updated [GET]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/local.go",
|
|
"filename": "local.go",
|
|
"api": {
|
|
"summary": "gets the flag to determine if there are local changes that need to be synced with AniList.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/local/updated",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleLocalGetLocalStorageSize",
|
|
"trimmedName": "LocalGetLocalStorageSize",
|
|
"comments": [
|
|
"HandleLocalGetLocalStorageSize",
|
|
"",
|
|
"\t@summary gets the size of the local storage in a human-readable format.",
|
|
"\t@route /api/v1/local/storage/size [GET]",
|
|
"\t@returns string",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/local.go",
|
|
"filename": "local.go",
|
|
"api": {
|
|
"summary": "gets the size of the local storage in a human-readable format.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/local/storage/size",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "string",
|
|
"returnGoType": "string",
|
|
"returnTypescriptType": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleLocalSyncSimulatedDataToAnilist",
|
|
"trimmedName": "LocalSyncSimulatedDataToAnilist",
|
|
"comments": [
|
|
"HandleLocalSyncSimulatedDataToAnilist",
|
|
"",
|
|
"\t@summary syncs the simulated data to AniList.",
|
|
"\t@route /api/v1/local/sync-simulated-to-anilist [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/local.go",
|
|
"filename": "local.go",
|
|
"api": {
|
|
"summary": "syncs the simulated data to AniList.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/local/sync-simulated-to-anilist",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetLocalFiles",
|
|
"trimmedName": "GetLocalFiles",
|
|
"comments": [
|
|
"HandleGetLocalFiles",
|
|
"",
|
|
"\t@summary returns all local files.",
|
|
"\t@desc Reminder that local files are scanned from the library path.",
|
|
"\t@route /api/v1/library/local-files [GET]",
|
|
"\t@returns []anime.LocalFile",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/localfiles.go",
|
|
"filename": "localfiles.go",
|
|
"api": {
|
|
"summary": "returns all local files.",
|
|
"descriptions": [
|
|
"Reminder that local files are scanned from the library path."
|
|
],
|
|
"endpoint": "/api/v1/library/local-files",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "[]anime.LocalFile",
|
|
"returnGoType": "anime.LocalFile",
|
|
"returnTypescriptType": "Array\u003cAnime_LocalFile\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleImportLocalFiles",
|
|
"trimmedName": "ImportLocalFiles",
|
|
"comments": [
|
|
"HandleImportLocalFiles",
|
|
"",
|
|
"\t@summary imports local files from the given path.",
|
|
"\t@desc This will import local files from the given path.",
|
|
"\t@desc The response is ignored, the client should refetch the entire library collection and media entry.",
|
|
"\t@route /api/v1/library/local-files/import [POST]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/localfiles.go",
|
|
"filename": "localfiles.go",
|
|
"api": {
|
|
"summary": "imports local files from the given path.",
|
|
"descriptions": [
|
|
"This will import local files from the given path.",
|
|
"The response is ignored, the client should refetch the entire library collection and media entry."
|
|
],
|
|
"endpoint": "/api/v1/library/local-files/import",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "DataFilePath",
|
|
"jsonName": "dataFilePath",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleLocalFileBulkAction",
|
|
"trimmedName": "LocalFileBulkAction",
|
|
"comments": [
|
|
"HandleLocalFileBulkAction",
|
|
"",
|
|
"\t@summary performs an action on all local files.",
|
|
"\t@desc This will perform the given action on all local files.",
|
|
"\t@desc The response is ignored, the client should refetch the entire library collection and media entry.",
|
|
"\t@route /api/v1/library/local-files [POST]",
|
|
"\t@returns []anime.LocalFile",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/localfiles.go",
|
|
"filename": "localfiles.go",
|
|
"api": {
|
|
"summary": "performs an action on all local files.",
|
|
"descriptions": [
|
|
"This will perform the given action on all local files.",
|
|
"The response is ignored, the client should refetch the entire library collection and media entry."
|
|
],
|
|
"endpoint": "/api/v1/library/local-files",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Action",
|
|
"jsonName": "action",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "[]anime.LocalFile",
|
|
"returnGoType": "anime.LocalFile",
|
|
"returnTypescriptType": "Array\u003cAnime_LocalFile\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleUpdateLocalFileData",
|
|
"trimmedName": "UpdateLocalFileData",
|
|
"comments": [
|
|
"HandleUpdateLocalFileData",
|
|
"",
|
|
"\t@summary updates the local file with the given path.",
|
|
"\t@desc This will update the local file with the given path.",
|
|
"\t@desc The response is ignored, the client should refetch the entire library collection and media entry.",
|
|
"\t@route /api/v1/library/local-file [PATCH]",
|
|
"\t@returns []anime.LocalFile",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/localfiles.go",
|
|
"filename": "localfiles.go",
|
|
"api": {
|
|
"summary": "updates the local file with the given path.",
|
|
"descriptions": [
|
|
"This will update the local file with the given path.",
|
|
"The response is ignored, the client should refetch the entire library collection and media entry."
|
|
],
|
|
"endpoint": "/api/v1/library/local-file",
|
|
"methods": [
|
|
"PATCH"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Path",
|
|
"jsonName": "path",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Metadata",
|
|
"jsonName": "metadata",
|
|
"goType": "anime.LocalFileMetadata",
|
|
"usedStructType": "anime.LocalFileMetadata",
|
|
"typescriptType": "Anime_LocalFileMetadata",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Locked",
|
|
"jsonName": "locked",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Ignored",
|
|
"jsonName": "ignored",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "[]anime.LocalFile",
|
|
"returnGoType": "anime.LocalFile",
|
|
"returnTypescriptType": "Array\u003cAnime_LocalFile\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleUpdateLocalFiles",
|
|
"trimmedName": "UpdateLocalFiles",
|
|
"comments": [
|
|
"HandleUpdateLocalFiles",
|
|
"",
|
|
"\t@summary updates local files with the given paths.",
|
|
"\t@desc The client should refetch the entire library collection and media entry.",
|
|
"\t@route /api/v1/library/local-files [PATCH]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/localfiles.go",
|
|
"filename": "localfiles.go",
|
|
"api": {
|
|
"summary": "updates local files with the given paths.",
|
|
"descriptions": [
|
|
"The client should refetch the entire library collection and media entry."
|
|
],
|
|
"endpoint": "/api/v1/library/local-files",
|
|
"methods": [
|
|
"PATCH"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Paths",
|
|
"jsonName": "paths",
|
|
"goType": "[]string",
|
|
"usedStructType": "",
|
|
"typescriptType": "Array\u003cstring\u003e",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Action",
|
|
"jsonName": "action",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleDeleteLocalFiles",
|
|
"trimmedName": "DeleteLocalFiles",
|
|
"comments": [
|
|
"HandleDeleteLocalFiles",
|
|
"",
|
|
"\t@summary deletes local files with the given paths.",
|
|
"\t@desc This will delete the local files with the given paths.",
|
|
"\t@desc The client should refetch the entire library collection and media entry.",
|
|
"\t@route /api/v1/library/local-files [DELETE]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/localfiles.go",
|
|
"filename": "localfiles.go",
|
|
"api": {
|
|
"summary": "deletes local files with the given paths.",
|
|
"descriptions": [
|
|
"This will delete the local files with the given paths.",
|
|
"The client should refetch the entire library collection and media entry."
|
|
],
|
|
"endpoint": "/api/v1/library/local-files",
|
|
"methods": [
|
|
"DELETE"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Paths",
|
|
"jsonName": "paths",
|
|
"goType": "[]string",
|
|
"usedStructType": "",
|
|
"typescriptType": "Array\u003cstring\u003e",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleRemoveEmptyDirectories",
|
|
"trimmedName": "RemoveEmptyDirectories",
|
|
"comments": [
|
|
"HandleRemoveEmptyDirectories",
|
|
"",
|
|
"\t@summary removes empty directories.",
|
|
"\t@desc This will remove empty directories in the library path.",
|
|
"\t@route /api/v1/library/empty-directories [DELETE]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/localfiles.go",
|
|
"filename": "localfiles.go",
|
|
"api": {
|
|
"summary": "removes empty directories.",
|
|
"descriptions": [
|
|
"This will remove empty directories in the library path."
|
|
],
|
|
"endpoint": "/api/v1/library/empty-directories",
|
|
"methods": [
|
|
"DELETE"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleMALAuth",
|
|
"trimmedName": "MALAuth",
|
|
"comments": [
|
|
"HandleMALAuth",
|
|
"",
|
|
"\t@summary fetches the access and refresh tokens for the given code.",
|
|
"\t@desc This is used to authenticate the user with MyAnimeList.",
|
|
"\t@desc It will save the info in the database, effectively logging the user in.",
|
|
"\t@desc The client should re-fetch the server status after this.",
|
|
"\t@route /api/v1/mal/auth [POST]",
|
|
"\t@returns handlers.MalAuthResponse",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/mal.go",
|
|
"filename": "mal.go",
|
|
"api": {
|
|
"summary": "fetches the access and refresh tokens for the given code.",
|
|
"descriptions": [
|
|
"This is used to authenticate the user with MyAnimeList.",
|
|
"It will save the info in the database, effectively logging the user in.",
|
|
"The client should re-fetch the server status after this."
|
|
],
|
|
"endpoint": "/api/v1/mal/auth",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Code",
|
|
"jsonName": "code",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "State",
|
|
"jsonName": "state",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "CodeVerifier",
|
|
"jsonName": "code_verifier",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "handlers.MalAuthResponse",
|
|
"returnGoType": "handlers.MalAuthResponse",
|
|
"returnTypescriptType": "MalAuthResponse"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleEditMALListEntryProgress",
|
|
"trimmedName": "EditMALListEntryProgress",
|
|
"comments": [
|
|
"HandleEditMALListEntryProgress",
|
|
"",
|
|
"\t@summary updates the progress of a MAL list entry.",
|
|
"\t@route /api/v1/mal/list-entry/progress [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/mal.go",
|
|
"filename": "mal.go",
|
|
"api": {
|
|
"summary": "updates the progress of a MAL list entry.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/mal/list-entry/progress",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Progress",
|
|
"jsonName": "progress",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleMALLogout",
|
|
"trimmedName": "MALLogout",
|
|
"comments": [
|
|
"HandleMALLogout",
|
|
"",
|
|
"\t@summary logs the user out of MyAnimeList.",
|
|
"\t@desc This will delete the MAL info from the database, effectively logging the user out.",
|
|
"\t@desc The client should re-fetch the server status after this.",
|
|
"\t@route /api/v1/mal/logout [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/mal.go",
|
|
"filename": "mal.go",
|
|
"api": {
|
|
"summary": "logs the user out of MyAnimeList.",
|
|
"descriptions": [
|
|
"This will delete the MAL info from the database, effectively logging the user out.",
|
|
"The client should re-fetch the server status after this."
|
|
],
|
|
"endpoint": "/api/v1/mal/logout",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetAnilistMangaCollection",
|
|
"trimmedName": "GetAnilistMangaCollection",
|
|
"comments": [
|
|
"HandleGetAnilistMangaCollection",
|
|
"",
|
|
"\t@summary returns the user's AniList manga collection.",
|
|
"\t@route /api/v1/manga/anilist/collection [GET]",
|
|
"\t@returns anilist.MangaCollection",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga.go",
|
|
"filename": "manga.go",
|
|
"api": {
|
|
"summary": "returns the user's AniList manga collection.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/manga/anilist/collection",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "BypassCache",
|
|
"jsonName": "bypassCache",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "anilist.MangaCollection",
|
|
"returnGoType": "anilist.MangaCollection",
|
|
"returnTypescriptType": "AL_MangaCollection"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetRawAnilistMangaCollection",
|
|
"trimmedName": "GetRawAnilistMangaCollection",
|
|
"comments": [
|
|
"HandleGetRawAnilistMangaCollection",
|
|
"",
|
|
"\t@summary returns the user's AniList manga collection.",
|
|
"\t@route /api/v1/manga/anilist/collection/raw [GET,POST]",
|
|
"\t@returns anilist.MangaCollection",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga.go",
|
|
"filename": "manga.go",
|
|
"api": {
|
|
"summary": "returns the user's AniList manga collection.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/manga/anilist/collection/raw",
|
|
"methods": [
|
|
"GET",
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "anilist.MangaCollection",
|
|
"returnGoType": "anilist.MangaCollection",
|
|
"returnTypescriptType": "AL_MangaCollection"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetMangaCollection",
|
|
"trimmedName": "GetMangaCollection",
|
|
"comments": [
|
|
"HandleGetMangaCollection",
|
|
"",
|
|
"\t@summary returns the user's main manga collection.",
|
|
"\t@desc This is an object that contains all the user's manga entries in a structured format.",
|
|
"\t@route /api/v1/manga/collection [GET]",
|
|
"\t@returns manga.Collection",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga.go",
|
|
"filename": "manga.go",
|
|
"api": {
|
|
"summary": "returns the user's main manga collection.",
|
|
"descriptions": [
|
|
"This is an object that contains all the user's manga entries in a structured format."
|
|
],
|
|
"endpoint": "/api/v1/manga/collection",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "manga.Collection",
|
|
"returnGoType": "manga.Collection",
|
|
"returnTypescriptType": "Manga_Collection"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetMangaEntry",
|
|
"trimmedName": "GetMangaEntry",
|
|
"comments": [
|
|
"HandleGetMangaEntry",
|
|
"",
|
|
"\t@summary returns a manga entry for the given AniList manga id.",
|
|
"\t@desc This is used by the manga media entry pages to get all the data about the anime. It includes metadata and AniList list data.",
|
|
"\t@route /api/v1/manga/entry/{id} [GET]",
|
|
"\t@param id - int - true - \"AniList manga media ID\"",
|
|
"\t@returns manga.Entry",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga.go",
|
|
"filename": "manga.go",
|
|
"api": {
|
|
"summary": "returns a manga entry for the given AniList manga id.",
|
|
"descriptions": [
|
|
"This is used by the manga media entry pages to get all the data about the anime. It includes metadata and AniList list data."
|
|
],
|
|
"endpoint": "/api/v1/manga/entry/{id}",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [
|
|
{
|
|
"name": "id",
|
|
"jsonName": "id",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": [
|
|
"AniList manga media ID"
|
|
]
|
|
}
|
|
],
|
|
"bodyFields": [],
|
|
"returns": "manga.Entry",
|
|
"returnGoType": "manga.Entry",
|
|
"returnTypescriptType": "Manga_Entry"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetMangaEntryDetails",
|
|
"trimmedName": "GetMangaEntryDetails",
|
|
"comments": [
|
|
"HandleGetMangaEntryDetails",
|
|
"",
|
|
"\t@summary returns more details about an AniList manga entry.",
|
|
"\t@desc This fetches more fields omitted from the base queries.",
|
|
"\t@route /api/v1/manga/entry/{id}/details [GET]",
|
|
"\t@param id - int - true - \"AniList manga media ID\"",
|
|
"\t@returns anilist.MangaDetailsById_Media",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga.go",
|
|
"filename": "manga.go",
|
|
"api": {
|
|
"summary": "returns more details about an AniList manga entry.",
|
|
"descriptions": [
|
|
"This fetches more fields omitted from the base queries."
|
|
],
|
|
"endpoint": "/api/v1/manga/entry/{id}/details",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [
|
|
{
|
|
"name": "id",
|
|
"jsonName": "id",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": [
|
|
"AniList manga media ID"
|
|
]
|
|
}
|
|
],
|
|
"bodyFields": [],
|
|
"returns": "anilist.MangaDetailsById_Media",
|
|
"returnGoType": "anilist.MangaDetailsById_Media",
|
|
"returnTypescriptType": "AL_MangaDetailsById_Media"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetMangaLatestChapterNumbersMap",
|
|
"trimmedName": "GetMangaLatestChapterNumbersMap",
|
|
"comments": [
|
|
"HandleGetMangaLatestChapterNumbersMap",
|
|
"",
|
|
"\t@summary returns the latest chapter number for all manga entries.",
|
|
"\t@route /api/v1/manga/latest-chapter-numbers [GET]",
|
|
"\t@returns map[int][]manga.MangaLatestChapterNumberItem",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga.go",
|
|
"filename": "manga.go",
|
|
"api": {
|
|
"summary": "returns the latest chapter number for all manga entries.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/manga/latest-chapter-numbers",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "map[int][]manga.MangaLatestChapterNumberItem",
|
|
"returnGoType": "manga.MangaLatestChapterNumberItem",
|
|
"returnTypescriptType": "Record\u003cnumber, Array\u003cManga_MangaLatestChapterNumberItem\u003e\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleRefetchMangaChapterContainers",
|
|
"trimmedName": "RefetchMangaChapterContainers",
|
|
"comments": [
|
|
"HandleRefetchMangaChapterContainers",
|
|
"",
|
|
"\t@summary refetches the chapter containers for all manga entries previously cached.",
|
|
"\t@route /api/v1/manga/refetch-chapter-containers [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga.go",
|
|
"filename": "manga.go",
|
|
"api": {
|
|
"summary": "refetches the chapter containers for all manga entries previously cached.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/manga/refetch-chapter-containers",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "SelectedProviderMap",
|
|
"jsonName": "selectedProviderMap",
|
|
"goType": "map[int]string",
|
|
"usedStructType": "",
|
|
"typescriptType": "Record\u003cnumber, string\u003e",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleEmptyMangaEntryCache",
|
|
"trimmedName": "EmptyMangaEntryCache",
|
|
"comments": [
|
|
"HandleEmptyMangaEntryCache",
|
|
"",
|
|
"\t@summary empties the cache for a manga entry.",
|
|
"\t@desc This will empty the cache for a manga entry (chapter lists and pages), allowing the client to fetch fresh data.",
|
|
"\t@desc HandleGetMangaEntryChapters should be called after this to fetch the new chapter list.",
|
|
"\t@desc Returns 'true' if the operation was successful.",
|
|
"\t@route /api/v1/manga/entry/cache [DELETE]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga.go",
|
|
"filename": "manga.go",
|
|
"api": {
|
|
"summary": "empties the cache for a manga entry.",
|
|
"descriptions": [
|
|
"This will empty the cache for a manga entry (chapter lists and pages), allowing the client to fetch fresh data.",
|
|
"HandleGetMangaEntryChapters should be called after this to fetch the new chapter list.",
|
|
"Returns 'true' if the operation was successful."
|
|
],
|
|
"endpoint": "/api/v1/manga/entry/cache",
|
|
"methods": [
|
|
"DELETE"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetMangaEntryChapters",
|
|
"trimmedName": "GetMangaEntryChapters",
|
|
"comments": [
|
|
"HandleGetMangaEntryChapters",
|
|
"",
|
|
"\t@summary returns the chapters for a manga entry based on the provider.",
|
|
"\t@route /api/v1/manga/chapters [POST]",
|
|
"\t@returns manga.ChapterContainer",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga.go",
|
|
"filename": "manga.go",
|
|
"api": {
|
|
"summary": "returns the chapters for a manga entry based on the provider.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/manga/chapters",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Provider",
|
|
"jsonName": "provider",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "manga.ChapterContainer",
|
|
"returnGoType": "manga.ChapterContainer",
|
|
"returnTypescriptType": "Manga_ChapterContainer"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetMangaEntryPages",
|
|
"trimmedName": "GetMangaEntryPages",
|
|
"comments": [
|
|
"HandleGetMangaEntryPages",
|
|
"",
|
|
"\t@summary returns the pages for a manga entry based on the provider and chapter id.",
|
|
"\t@desc This will return the pages for a manga chapter.",
|
|
"\t@desc If the app is offline and the chapter is not downloaded, it will return an error.",
|
|
"\t@desc If the app is online and the chapter is not downloaded, it will return the pages from the provider.",
|
|
"\t@desc If the chapter is downloaded, it will return the appropriate struct.",
|
|
"\t@desc If 'double page' is requested, it will fetch image sizes and include the dimensions in the response.",
|
|
"\t@route /api/v1/manga/pages [POST]",
|
|
"\t@returns manga.PageContainer",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga.go",
|
|
"filename": "manga.go",
|
|
"api": {
|
|
"summary": "returns the pages for a manga entry based on the provider and chapter id.",
|
|
"descriptions": [
|
|
"This will return the pages for a manga chapter.",
|
|
"If the app is offline and the chapter is not downloaded, it will return an error.",
|
|
"If the app is online and the chapter is not downloaded, it will return the pages from the provider.",
|
|
"If the chapter is downloaded, it will return the appropriate struct.",
|
|
"If 'double page' is requested, it will fetch image sizes and include the dimensions in the response."
|
|
],
|
|
"endpoint": "/api/v1/manga/pages",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Provider",
|
|
"jsonName": "provider",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "ChapterId",
|
|
"jsonName": "chapterId",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "DoublePage",
|
|
"jsonName": "doublePage",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "manga.PageContainer",
|
|
"returnGoType": "manga.PageContainer",
|
|
"returnTypescriptType": "Manga_PageContainer"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetMangaEntryDownloadedChapters",
|
|
"trimmedName": "GetMangaEntryDownloadedChapters",
|
|
"comments": [
|
|
"HandleGetMangaEntryDownloadedChapters",
|
|
"",
|
|
"\t@summary returns all download chapters for a manga entry,",
|
|
"\t@route /api/v1/manga/downloaded-chapters/{id} [GET]",
|
|
"\t@param id - int - true - \"AniList manga media ID\"",
|
|
"\t@returns []manga.ChapterContainer",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga.go",
|
|
"filename": "manga.go",
|
|
"api": {
|
|
"summary": "returns all download chapters for a manga entry,",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/manga/downloaded-chapters/{id}",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [
|
|
{
|
|
"name": "id",
|
|
"jsonName": "id",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": [
|
|
"AniList manga media ID"
|
|
]
|
|
}
|
|
],
|
|
"bodyFields": [],
|
|
"returns": "[]manga.ChapterContainer",
|
|
"returnGoType": "manga.ChapterContainer",
|
|
"returnTypescriptType": "Array\u003cManga_ChapterContainer\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleAnilistListManga",
|
|
"trimmedName": "AnilistListManga",
|
|
"comments": [
|
|
"HandleAnilistListManga",
|
|
"",
|
|
"\t@summary returns a list of manga based on the search parameters.",
|
|
"\t@desc This is used by \"Advanced Search\" and search function.",
|
|
"\t@route /api/v1/manga/anilist/list [POST]",
|
|
"\t@returns anilist.ListManga",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga.go",
|
|
"filename": "manga.go",
|
|
"api": {
|
|
"summary": "returns a list of manga based on the search parameters.",
|
|
"descriptions": [
|
|
"This is used by \"Advanced Search\" and search function."
|
|
],
|
|
"endpoint": "/api/v1/manga/anilist/list",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Page",
|
|
"jsonName": "page",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Search",
|
|
"jsonName": "search",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "PerPage",
|
|
"jsonName": "perPage",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Sort",
|
|
"jsonName": "sort",
|
|
"goType": "[]anilist.MediaSort",
|
|
"usedStructType": "anilist.MediaSort",
|
|
"typescriptType": "Array\u003cAL_MediaSort\u003e",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Status",
|
|
"jsonName": "status",
|
|
"goType": "[]anilist.MediaStatus",
|
|
"usedStructType": "anilist.MediaStatus",
|
|
"typescriptType": "Array\u003cAL_MediaStatus\u003e",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Genres",
|
|
"jsonName": "genres",
|
|
"goType": "[]string",
|
|
"usedStructType": "",
|
|
"typescriptType": "Array\u003cstring\u003e",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "AverageScoreGreater",
|
|
"jsonName": "averageScore_greater",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Year",
|
|
"jsonName": "year",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "CountryOfOrigin",
|
|
"jsonName": "countryOfOrigin",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "IsAdult",
|
|
"jsonName": "isAdult",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Format",
|
|
"jsonName": "format",
|
|
"goType": "anilist.MediaFormat",
|
|
"usedStructType": "anilist.MediaFormat",
|
|
"typescriptType": "AL_MediaFormat",
|
|
"required": false,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "anilist.ListManga",
|
|
"returnGoType": "anilist.ListManga",
|
|
"returnTypescriptType": "AL_ListManga"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleUpdateMangaProgress",
|
|
"trimmedName": "UpdateMangaProgress",
|
|
"comments": [
|
|
"HandleUpdateMangaProgress",
|
|
"",
|
|
"\t@summary updates the progress of a manga entry.",
|
|
"\t@desc Note: MyAnimeList is not supported",
|
|
"\t@route /api/v1/manga/update-progress [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga.go",
|
|
"filename": "manga.go",
|
|
"api": {
|
|
"summary": "updates the progress of a manga entry.",
|
|
"descriptions": [
|
|
"Note: MyAnimeList is not supported"
|
|
],
|
|
"endpoint": "/api/v1/manga/update-progress",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "MalId",
|
|
"jsonName": "malId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "ChapterNumber",
|
|
"jsonName": "chapterNumber",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "TotalChapters",
|
|
"jsonName": "totalChapters",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleMangaManualSearch",
|
|
"trimmedName": "MangaManualSearch",
|
|
"comments": [
|
|
"HandleMangaManualSearch",
|
|
"",
|
|
"\t@summary returns search results for a manual search.",
|
|
"\t@desc Returns search results for a manual search.",
|
|
"\t@route /api/v1/manga/search [POST]",
|
|
"\t@returns []hibikemanga.SearchResult",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga.go",
|
|
"filename": "manga.go",
|
|
"api": {
|
|
"summary": "returns search results for a manual search.",
|
|
"descriptions": [
|
|
"Returns search results for a manual search."
|
|
],
|
|
"endpoint": "/api/v1/manga/search",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Provider",
|
|
"jsonName": "provider",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Query",
|
|
"jsonName": "query",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "[]hibikemanga.SearchResult",
|
|
"returnGoType": "hibikemanga.SearchResult",
|
|
"returnTypescriptType": "Array\u003cHibikeManga_SearchResult\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleMangaManualMapping",
|
|
"trimmedName": "MangaManualMapping",
|
|
"comments": [
|
|
"HandleMangaManualMapping",
|
|
"",
|
|
"\t@summary manually maps a manga entry to a manga ID from the provider.",
|
|
"\t@desc This is used to manually map a manga entry to a manga ID from the provider.",
|
|
"\t@desc The client should re-fetch the chapter container after this.",
|
|
"\t@route /api/v1/manga/manual-mapping [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga.go",
|
|
"filename": "manga.go",
|
|
"api": {
|
|
"summary": "manually maps a manga entry to a manga ID from the provider.",
|
|
"descriptions": [
|
|
"This is used to manually map a manga entry to a manga ID from the provider.",
|
|
"The client should re-fetch the chapter container after this."
|
|
],
|
|
"endpoint": "/api/v1/manga/manual-mapping",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Provider",
|
|
"jsonName": "provider",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "MangaId",
|
|
"jsonName": "mangaId",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetMangaMapping",
|
|
"trimmedName": "GetMangaMapping",
|
|
"comments": [
|
|
"HandleGetMangaMapping",
|
|
"",
|
|
"\t@summary returns the mapping for a manga entry.",
|
|
"\t@desc This is used to get the mapping for a manga entry.",
|
|
"\t@desc An empty string is returned if there's no manual mapping. If there is, the manga ID will be returned.",
|
|
"\t@route /api/v1/manga/get-mapping [POST]",
|
|
"\t@returns manga.MappingResponse",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga.go",
|
|
"filename": "manga.go",
|
|
"api": {
|
|
"summary": "returns the mapping for a manga entry.",
|
|
"descriptions": [
|
|
"This is used to get the mapping for a manga entry.",
|
|
"An empty string is returned if there's no manual mapping. If there is, the manga ID will be returned."
|
|
],
|
|
"endpoint": "/api/v1/manga/get-mapping",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Provider",
|
|
"jsonName": "provider",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "manga.MappingResponse",
|
|
"returnGoType": "manga.MappingResponse",
|
|
"returnTypescriptType": "Manga_MappingResponse"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleRemoveMangaMapping",
|
|
"trimmedName": "RemoveMangaMapping",
|
|
"comments": [
|
|
"HandleRemoveMangaMapping",
|
|
"",
|
|
"\t@summary removes the mapping for a manga entry.",
|
|
"\t@desc This is used to remove the mapping for a manga entry.",
|
|
"\t@desc The client should re-fetch the chapter container after this.",
|
|
"\t@route /api/v1/manga/remove-mapping [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga.go",
|
|
"filename": "manga.go",
|
|
"api": {
|
|
"summary": "removes the mapping for a manga entry.",
|
|
"descriptions": [
|
|
"This is used to remove the mapping for a manga entry.",
|
|
"The client should re-fetch the chapter container after this."
|
|
],
|
|
"endpoint": "/api/v1/manga/remove-mapping",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Provider",
|
|
"jsonName": "provider",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetLocalMangaPage",
|
|
"trimmedName": "GetLocalMangaPage",
|
|
"comments": [
|
|
"HandleGetLocalMangaPage",
|
|
"",
|
|
"\t@summary returns a local manga page.",
|
|
"\t@route /api/v1/manga/local-page/{path} [GET]",
|
|
"\t@returns manga.PageContainer",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga.go",
|
|
"filename": "manga.go",
|
|
"api": {
|
|
"summary": "returns a local manga page.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/manga/local-page/{path}",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "manga.PageContainer",
|
|
"returnGoType": "manga.PageContainer",
|
|
"returnTypescriptType": "Manga_PageContainer"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleDownloadMangaChapters",
|
|
"trimmedName": "DownloadMangaChapters",
|
|
"comments": [
|
|
"HandleDownloadMangaChapters",
|
|
"",
|
|
"\t@summary adds chapters to the download queue.",
|
|
"\t@route /api/v1/manga/download-chapters [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga_download.go",
|
|
"filename": "manga_download.go",
|
|
"api": {
|
|
"summary": "adds chapters to the download queue.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/manga/download-chapters",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Provider",
|
|
"jsonName": "provider",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "ChapterIds",
|
|
"jsonName": "chapterIds",
|
|
"goType": "[]string",
|
|
"usedStructType": "",
|
|
"typescriptType": "Array\u003cstring\u003e",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "StartNow",
|
|
"jsonName": "startNow",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetMangaDownloadData",
|
|
"trimmedName": "GetMangaDownloadData",
|
|
"comments": [
|
|
"HandleGetMangaDownloadData",
|
|
"",
|
|
"\t@summary returns the download data for a specific media.",
|
|
"\t@desc This is used to display information about the downloaded and queued chapters in the UI.",
|
|
"\t@desc If the 'cached' parameter is false, it will refresh the data by rescanning the download folder.",
|
|
"\t@route /api/v1/manga/download-data [POST]",
|
|
"\t@returns manga.MediaDownloadData",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga_download.go",
|
|
"filename": "manga_download.go",
|
|
"api": {
|
|
"summary": "returns the download data for a specific media.",
|
|
"descriptions": [
|
|
"This is used to display information about the downloaded and queued chapters in the UI.",
|
|
"If the 'cached' parameter is false, it will refresh the data by rescanning the download folder."
|
|
],
|
|
"endpoint": "/api/v1/manga/download-data",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Cached",
|
|
"jsonName": "cached",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "manga.MediaDownloadData",
|
|
"returnGoType": "manga.MediaDownloadData",
|
|
"returnTypescriptType": "Manga_MediaDownloadData"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetMangaDownloadQueue",
|
|
"trimmedName": "GetMangaDownloadQueue",
|
|
"comments": [
|
|
"HandleGetMangaDownloadQueue",
|
|
"",
|
|
"\t@summary returns the items in the download queue.",
|
|
"\t@route /api/v1/manga/download-queue [GET]",
|
|
"\t@returns []models.ChapterDownloadQueueItem",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga_download.go",
|
|
"filename": "manga_download.go",
|
|
"api": {
|
|
"summary": "returns the items in the download queue.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/manga/download-queue",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "[]models.ChapterDownloadQueueItem",
|
|
"returnGoType": "models.ChapterDownloadQueueItem",
|
|
"returnTypescriptType": "Array\u003cModels_ChapterDownloadQueueItem\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleStartMangaDownloadQueue",
|
|
"trimmedName": "StartMangaDownloadQueue",
|
|
"comments": [
|
|
"HandleStartMangaDownloadQueue",
|
|
"",
|
|
"\t@summary starts the download queue if it's not already running.",
|
|
"\t@desc This will start the download queue if it's not already running.",
|
|
"\t@desc Returns 'true' whether the queue was started or not.",
|
|
"\t@route /api/v1/manga/download-queue/start [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga_download.go",
|
|
"filename": "manga_download.go",
|
|
"api": {
|
|
"summary": "starts the download queue if it's not already running.",
|
|
"descriptions": [
|
|
"This will start the download queue if it's not already running.",
|
|
"Returns 'true' whether the queue was started or not."
|
|
],
|
|
"endpoint": "/api/v1/manga/download-queue/start",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleStopMangaDownloadQueue",
|
|
"trimmedName": "StopMangaDownloadQueue",
|
|
"comments": [
|
|
"HandleStopMangaDownloadQueue",
|
|
"",
|
|
"\t@summary stops the manga download queue.",
|
|
"\t@desc This will stop the manga download queue.",
|
|
"\t@desc Returns 'true' whether the queue was stopped or not.",
|
|
"\t@route /api/v1/manga/download-queue/stop [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga_download.go",
|
|
"filename": "manga_download.go",
|
|
"api": {
|
|
"summary": "stops the manga download queue.",
|
|
"descriptions": [
|
|
"This will stop the manga download queue.",
|
|
"Returns 'true' whether the queue was stopped or not."
|
|
],
|
|
"endpoint": "/api/v1/manga/download-queue/stop",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleClearAllChapterDownloadQueue",
|
|
"trimmedName": "ClearAllChapterDownloadQueue",
|
|
"comments": [
|
|
"HandleClearAllChapterDownloadQueue",
|
|
"",
|
|
"\t@summary clears all chapters from the download queue.",
|
|
"\t@desc This will clear all chapters from the download queue.",
|
|
"\t@desc Returns 'true' whether the queue was cleared or not.",
|
|
"\t@desc This will also send a websocket event telling the client to refetch the download queue.",
|
|
"\t@route /api/v1/manga/download-queue [DELETE]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga_download.go",
|
|
"filename": "manga_download.go",
|
|
"api": {
|
|
"summary": "clears all chapters from the download queue.",
|
|
"descriptions": [
|
|
"This will clear all chapters from the download queue.",
|
|
"Returns 'true' whether the queue was cleared or not.",
|
|
"This will also send a websocket event telling the client to refetch the download queue."
|
|
],
|
|
"endpoint": "/api/v1/manga/download-queue",
|
|
"methods": [
|
|
"DELETE"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleResetErroredChapterDownloadQueue",
|
|
"trimmedName": "ResetErroredChapterDownloadQueue",
|
|
"comments": [
|
|
"HandleResetErroredChapterDownloadQueue",
|
|
"",
|
|
"\t@summary resets the errored chapters in the download queue.",
|
|
"\t@desc This will reset the errored chapters in the download queue, so they can be re-downloaded.",
|
|
"\t@desc Returns 'true' whether the queue was reset or not.",
|
|
"\t@desc This will also send a websocket event telling the client to refetch the download queue.",
|
|
"\t@route /api/v1/manga/download-queue/reset-errored [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga_download.go",
|
|
"filename": "manga_download.go",
|
|
"api": {
|
|
"summary": "resets the errored chapters in the download queue.",
|
|
"descriptions": [
|
|
"This will reset the errored chapters in the download queue, so they can be re-downloaded.",
|
|
"Returns 'true' whether the queue was reset or not.",
|
|
"This will also send a websocket event telling the client to refetch the download queue."
|
|
],
|
|
"endpoint": "/api/v1/manga/download-queue/reset-errored",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleDeleteMangaDownloadedChapters",
|
|
"trimmedName": "DeleteMangaDownloadedChapters",
|
|
"comments": [
|
|
"HandleDeleteMangaDownloadedChapters",
|
|
"",
|
|
"\t@summary deletes downloaded chapters.",
|
|
"\t@desc This will delete downloaded chapters from the filesystem.",
|
|
"\t@desc Returns 'true' whether the chapters were deleted or not.",
|
|
"\t@desc The client should refetch the download data after this.",
|
|
"\t@route /api/v1/manga/download-chapter [DELETE]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga_download.go",
|
|
"filename": "manga_download.go",
|
|
"api": {
|
|
"summary": "deletes downloaded chapters.",
|
|
"descriptions": [
|
|
"This will delete downloaded chapters from the filesystem.",
|
|
"Returns 'true' whether the chapters were deleted or not.",
|
|
"The client should refetch the download data after this."
|
|
],
|
|
"endpoint": "/api/v1/manga/download-chapter",
|
|
"methods": [
|
|
"DELETE"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "DownloadIds",
|
|
"jsonName": "downloadIds",
|
|
"goType": "[]chapter_downloader.DownloadID",
|
|
"usedStructType": "chapter_downloader.DownloadID",
|
|
"typescriptType": "Array\u003cChapterDownloader_DownloadID\u003e",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetMangaDownloadsList",
|
|
"trimmedName": "GetMangaDownloadsList",
|
|
"comments": [
|
|
"HandleGetMangaDownloadsList",
|
|
"",
|
|
"\t@summary displays the list of downloaded manga.",
|
|
"\t@desc This analyzes the download folder and returns a well-formatted structure for displaying downloaded manga.",
|
|
"\t@desc It returns a list of manga.DownloadListItem where the media data might be nil if it's not in the AniList collection.",
|
|
"\t@route /api/v1/manga/downloads [GET]",
|
|
"\t@returns []manga.DownloadListItem",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manga_download.go",
|
|
"filename": "manga_download.go",
|
|
"api": {
|
|
"summary": "displays the list of downloaded manga.",
|
|
"descriptions": [
|
|
"This analyzes the download folder and returns a well-formatted structure for displaying downloaded manga.",
|
|
"It returns a list of manga.DownloadListItem where the media data might be nil if it's not in the AniList collection."
|
|
],
|
|
"endpoint": "/api/v1/manga/downloads",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "[]manga.DownloadListItem",
|
|
"returnGoType": "manga.DownloadListItem",
|
|
"returnTypescriptType": "Array\u003cManga_DownloadListItem\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleTestDump",
|
|
"trimmedName": "TestDump",
|
|
"comments": [
|
|
"HandleTestDump",
|
|
"",
|
|
"\t@summary this is a dummy handler for testing purposes.",
|
|
"\t@route /api/v1/test-dump [POST]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/manual_dump.go",
|
|
"filename": "manual_dump.go",
|
|
"api": {
|
|
"summary": "this is a dummy handler for testing purposes.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/test-dump",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleStartDefaultMediaPlayer",
|
|
"trimmedName": "StartDefaultMediaPlayer",
|
|
"comments": [
|
|
"HandleStartDefaultMediaPlayer",
|
|
"",
|
|
"\t@summary launches the default media player (vlc or mpc-hc).",
|
|
"\t@route /api/v1/media-player/start [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/mediaplayer.go",
|
|
"filename": "mediaplayer.go",
|
|
"api": {
|
|
"summary": "launches the default media player (vlc or mpc-hc).",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/media-player/start",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetMediastreamSettings",
|
|
"trimmedName": "GetMediastreamSettings",
|
|
"comments": [
|
|
"HandleGetMediastreamSettings",
|
|
"",
|
|
"\t@summary get mediastream settings.",
|
|
"\t@desc This returns the mediastream settings.",
|
|
"\t@returns models.MediastreamSettings",
|
|
"\t@route /api/v1/mediastream/settings [GET]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/mediastream.go",
|
|
"filename": "mediastream.go",
|
|
"api": {
|
|
"summary": "get mediastream settings.",
|
|
"descriptions": [
|
|
"This returns the mediastream settings."
|
|
],
|
|
"endpoint": "/api/v1/mediastream/settings",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "models.MediastreamSettings",
|
|
"returnGoType": "models.MediastreamSettings",
|
|
"returnTypescriptType": "Models_MediastreamSettings"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleSaveMediastreamSettings",
|
|
"trimmedName": "SaveMediastreamSettings",
|
|
"comments": [
|
|
"HandleSaveMediastreamSettings",
|
|
"",
|
|
"\t@summary save mediastream settings.",
|
|
"\t@desc This saves the mediastream settings.",
|
|
"\t@returns models.MediastreamSettings",
|
|
"\t@route /api/v1/mediastream/settings [PATCH]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/mediastream.go",
|
|
"filename": "mediastream.go",
|
|
"api": {
|
|
"summary": "save mediastream settings.",
|
|
"descriptions": [
|
|
"This saves the mediastream settings."
|
|
],
|
|
"endpoint": "/api/v1/mediastream/settings",
|
|
"methods": [
|
|
"PATCH"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Settings",
|
|
"jsonName": "settings",
|
|
"goType": "models.MediastreamSettings",
|
|
"usedStructType": "models.MediastreamSettings",
|
|
"typescriptType": "Models_MediastreamSettings",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "models.MediastreamSettings",
|
|
"returnGoType": "models.MediastreamSettings",
|
|
"returnTypescriptType": "Models_MediastreamSettings"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleRequestMediastreamMediaContainer",
|
|
"trimmedName": "RequestMediastreamMediaContainer",
|
|
"comments": [
|
|
"HandleRequestMediastreamMediaContainer",
|
|
"",
|
|
"\t@summary request media stream.",
|
|
"\t@desc This requests a media stream and returns the media container to start the playback.",
|
|
"\t@returns mediastream.MediaContainer",
|
|
"\t@route /api/v1/mediastream/request [POST]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/mediastream.go",
|
|
"filename": "mediastream.go",
|
|
"api": {
|
|
"summary": "request media stream.",
|
|
"descriptions": [
|
|
"This requests a media stream and returns the media container to start the playback."
|
|
],
|
|
"endpoint": "/api/v1/mediastream/request",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Path",
|
|
"jsonName": "path",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "StreamType",
|
|
"jsonName": "streamType",
|
|
"goType": "mediastream.StreamType",
|
|
"usedStructType": "mediastream.StreamType",
|
|
"typescriptType": "Mediastream_StreamType",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "AudioStreamIndex",
|
|
"jsonName": "audioStreamIndex",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "ClientId",
|
|
"jsonName": "clientId",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "mediastream.MediaContainer",
|
|
"returnGoType": "mediastream.MediaContainer",
|
|
"returnTypescriptType": "Mediastream_MediaContainer"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandlePreloadMediastreamMediaContainer",
|
|
"trimmedName": "PreloadMediastreamMediaContainer",
|
|
"comments": [
|
|
"HandlePreloadMediastreamMediaContainer",
|
|
"",
|
|
"\t@summary preloads media stream for playback.",
|
|
"\t@desc This preloads a media stream by extracting the media information and attachments.",
|
|
"\t@returns bool",
|
|
"\t@route /api/v1/mediastream/preload [POST]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/mediastream.go",
|
|
"filename": "mediastream.go",
|
|
"api": {
|
|
"summary": "preloads media stream for playback.",
|
|
"descriptions": [
|
|
"This preloads a media stream by extracting the media information and attachments."
|
|
],
|
|
"endpoint": "/api/v1/mediastream/preload",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Path",
|
|
"jsonName": "path",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "StreamType",
|
|
"jsonName": "streamType",
|
|
"goType": "mediastream.StreamType",
|
|
"usedStructType": "mediastream.StreamType",
|
|
"typescriptType": "Mediastream_StreamType",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "AudioStreamIndex",
|
|
"jsonName": "audioStreamIndex",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleMediastreamShutdownTranscodeStream",
|
|
"trimmedName": "MediastreamShutdownTranscodeStream",
|
|
"comments": [
|
|
"HandleMediastreamShutdownTranscodeStream",
|
|
"",
|
|
"\t@summary shuts down the transcode stream",
|
|
"\t@desc This requests the transcoder to shut down. It should be called when unmounting the player (playback is no longer needed).",
|
|
"\t@desc This will also send an events.MediastreamShutdownStream event.",
|
|
"\t@desc It will not return any error and is safe to call multiple times.",
|
|
"\t@returns bool",
|
|
"\t@route /api/v1/mediastream/shutdown-transcode [POST]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/mediastream.go",
|
|
"filename": "mediastream.go",
|
|
"api": {
|
|
"summary": "shuts down the transcode stream",
|
|
"descriptions": [
|
|
"This requests the transcoder to shut down. It should be called when unmounting the player (playback is no longer needed).",
|
|
"This will also send an events.MediastreamShutdownStream event.",
|
|
"It will not return any error and is safe to call multiple times."
|
|
],
|
|
"endpoint": "/api/v1/mediastream/shutdown-transcode",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandlePopulateFillerData",
|
|
"trimmedName": "PopulateFillerData",
|
|
"comments": [
|
|
"HandlePopulateFillerData",
|
|
"",
|
|
"\t@summary fetches and caches filler data for the given media.",
|
|
"\t@desc This will fetch and cache filler data for the given media.",
|
|
"\t@returns true",
|
|
"\t@route /api/v1/metadata-provider/filler [POST]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/metadata.go",
|
|
"filename": "metadata.go",
|
|
"api": {
|
|
"summary": "fetches and caches filler data for the given media.",
|
|
"descriptions": [
|
|
"This will fetch and cache filler data for the given media."
|
|
],
|
|
"endpoint": "/api/v1/metadata-provider/filler",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "true",
|
|
"returnGoType": "true",
|
|
"returnTypescriptType": "true"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleRemoveFillerData",
|
|
"trimmedName": "RemoveFillerData",
|
|
"comments": [
|
|
"HandleRemoveFillerData",
|
|
"",
|
|
"\t@summary removes filler data cache.",
|
|
"\t@desc This will remove the filler data cache for the given media.",
|
|
"\t@returns bool",
|
|
"\t@route /api/v1/metadata-provider/filler [DELETE]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/metadata.go",
|
|
"filename": "metadata.go",
|
|
"api": {
|
|
"summary": "removes filler data cache.",
|
|
"descriptions": [
|
|
"This will remove the filler data cache for the given media."
|
|
],
|
|
"endpoint": "/api/v1/metadata-provider/filler",
|
|
"methods": [
|
|
"DELETE"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleNakamaWebSocket",
|
|
"trimmedName": "NakamaWebSocket",
|
|
"comments": [
|
|
"HandleNakamaWebSocket handles WebSocket connections for Nakama peers",
|
|
"",
|
|
"\t@summary handles WebSocket connections for Nakama peers.",
|
|
"\t@desc This endpoint handles WebSocket connections from Nakama peers when this instance is acting as a host.",
|
|
"\t@route /api/v1/nakama/ws [GET]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/nakama.go",
|
|
"filename": "nakama.go",
|
|
"api": {
|
|
"summary": "handles WebSocket connections for Nakama peers.",
|
|
"descriptions": [
|
|
"This endpoint handles WebSocket connections from Nakama peers when this instance is acting as a host."
|
|
],
|
|
"endpoint": "/api/v1/nakama/ws",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleSendNakamaMessage",
|
|
"trimmedName": "SendNakamaMessage",
|
|
"comments": [
|
|
"HandleSendNakamaMessage",
|
|
"",
|
|
"\t@summary sends a custom message through Nakama.",
|
|
"\t@desc This allows sending custom messages to connected peers or the host.",
|
|
"\t@route /api/v1/nakama/message [POST]",
|
|
"\t@returns nakama.MessageResponse",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/nakama.go",
|
|
"filename": "nakama.go",
|
|
"api": {
|
|
"summary": "sends a custom message through Nakama.",
|
|
"descriptions": [
|
|
"This allows sending custom messages to connected peers or the host."
|
|
],
|
|
"endpoint": "/api/v1/nakama/message",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MessageType",
|
|
"jsonName": "messageType",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Payload",
|
|
"jsonName": "payload",
|
|
"goType": "",
|
|
"usedStructType": "",
|
|
"typescriptType": "any",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "PeerID",
|
|
"jsonName": "peerId",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": false,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "nakama.MessageResponse",
|
|
"returnGoType": "nakama.MessageResponse",
|
|
"returnTypescriptType": "Nakama_MessageResponse"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetNakamaAnimeLibrary",
|
|
"trimmedName": "GetNakamaAnimeLibrary",
|
|
"comments": [
|
|
"HandleGetNakamaAnimeLibrary",
|
|
"",
|
|
"\t@summary shares the local anime collection with Nakama clients.",
|
|
"\t@desc This creates a new LibraryCollection struct and returns it.",
|
|
"\t@desc This is used to share the local anime collection with Nakama clients.",
|
|
"\t@route /api/v1/nakama/host/anime/library/collection [GET]",
|
|
"\t@returns nakama.NakamaAnimeLibrary",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/nakama.go",
|
|
"filename": "nakama.go",
|
|
"api": {
|
|
"summary": "shares the local anime collection with Nakama clients.",
|
|
"descriptions": [
|
|
"This creates a new LibraryCollection struct and returns it.",
|
|
"This is used to share the local anime collection with Nakama clients."
|
|
],
|
|
"endpoint": "/api/v1/nakama/host/anime/library/collection",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "nakama.NakamaAnimeLibrary",
|
|
"returnGoType": "nakama.NakamaAnimeLibrary",
|
|
"returnTypescriptType": "Nakama_NakamaAnimeLibrary"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetNakamaAnimeLibraryCollection",
|
|
"trimmedName": "GetNakamaAnimeLibraryCollection",
|
|
"comments": [
|
|
"HandleGetNakamaAnimeLibraryCollection",
|
|
"",
|
|
"\t@summary shares the local anime collection with Nakama clients.",
|
|
"\t@desc This creates a new LibraryCollection struct and returns it.",
|
|
"\t@desc This is used to share the local anime collection with Nakama clients.",
|
|
"\t@route /api/v1/nakama/host/anime/library/collection [GET]",
|
|
"\t@returns anime.LibraryCollection",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/nakama.go",
|
|
"filename": "nakama.go",
|
|
"api": {
|
|
"summary": "shares the local anime collection with Nakama clients.",
|
|
"descriptions": [
|
|
"This creates a new LibraryCollection struct and returns it.",
|
|
"This is used to share the local anime collection with Nakama clients."
|
|
],
|
|
"endpoint": "/api/v1/nakama/host/anime/library/collection",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "anime.LibraryCollection",
|
|
"returnGoType": "anime.LibraryCollection",
|
|
"returnTypescriptType": "Anime_LibraryCollection"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetNakamaAnimeLibraryFiles",
|
|
"trimmedName": "GetNakamaAnimeLibraryFiles",
|
|
"comments": [
|
|
"HandleGetNakamaAnimeLibraryFiles",
|
|
"",
|
|
"\t@summary return the local files for the given AniList anime media id.",
|
|
"\t@desc This is used by the anime media entry pages to get all the data about the anime.",
|
|
"\t@route /api/v1/nakama/host/anime/library/files/{id} [POST]",
|
|
"\t@param id - int - true - \"AniList anime media ID\"",
|
|
"\t@returns []anime.LocalFile",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/nakama.go",
|
|
"filename": "nakama.go",
|
|
"api": {
|
|
"summary": "return the local files for the given AniList anime media id.",
|
|
"descriptions": [
|
|
"This is used by the anime media entry pages to get all the data about the anime."
|
|
],
|
|
"endpoint": "/api/v1/nakama/host/anime/library/files/{id}",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [
|
|
{
|
|
"name": "id",
|
|
"jsonName": "id",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": [
|
|
"AniList anime media ID"
|
|
]
|
|
}
|
|
],
|
|
"bodyFields": [],
|
|
"returns": "[]anime.LocalFile",
|
|
"returnGoType": "anime.LocalFile",
|
|
"returnTypescriptType": "Array\u003cAnime_LocalFile\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetNakamaAnimeAllLibraryFiles",
|
|
"trimmedName": "GetNakamaAnimeAllLibraryFiles",
|
|
"comments": [
|
|
"HandleGetNakamaAnimeAllLibraryFiles",
|
|
"",
|
|
"\t@summary return all the local files for the host.",
|
|
"\t@desc This is used to share the local anime collection with Nakama clients.",
|
|
"\t@route /api/v1/nakama/host/anime/library/files [POST]",
|
|
"\t@returns []anime.LocalFile",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/nakama.go",
|
|
"filename": "nakama.go",
|
|
"api": {
|
|
"summary": "return all the local files for the host.",
|
|
"descriptions": [
|
|
"This is used to share the local anime collection with Nakama clients."
|
|
],
|
|
"endpoint": "/api/v1/nakama/host/anime/library/files",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "[]anime.LocalFile",
|
|
"returnGoType": "anime.LocalFile",
|
|
"returnTypescriptType": "Array\u003cAnime_LocalFile\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleNakamaPlayVideo",
|
|
"trimmedName": "NakamaPlayVideo",
|
|
"comments": [
|
|
"HandleNakamaPlayVideo",
|
|
"",
|
|
"\t@summary plays the media from the host.",
|
|
"\t@route /api/v1/nakama/play [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/nakama.go",
|
|
"filename": "nakama.go",
|
|
"api": {
|
|
"summary": "plays the media from the host.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/nakama/play",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Path",
|
|
"jsonName": "path",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "AniDBEpisode",
|
|
"jsonName": "anidbEpisode",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleNakamaHostTorrentstreamServeStream",
|
|
"trimmedName": "NakamaHostTorrentstreamServeStream",
|
|
"comments": [
|
|
"Note: This is not used anymore. Each peer will independently stream the torrent.",
|
|
"route /api/v1/nakama/host/torrentstream/stream",
|
|
"Allows peers to stream the currently playing torrent.",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/nakama.go",
|
|
"filename": "nakama.go",
|
|
"api": {
|
|
"summary": "",
|
|
"descriptions": [],
|
|
"endpoint": "",
|
|
"methods": null,
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleNakamaHostDebridstreamServeStream",
|
|
"trimmedName": "NakamaHostDebridstreamServeStream",
|
|
"comments": [
|
|
"route /api/v1/nakama/host/debridstream/stream",
|
|
"Allows peers to stream the currently playing torrent.",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/nakama.go",
|
|
"filename": "nakama.go",
|
|
"api": {
|
|
"summary": "",
|
|
"descriptions": [],
|
|
"endpoint": "",
|
|
"methods": null,
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleNakamaHostGetDebridstreamURL",
|
|
"trimmedName": "NakamaHostGetDebridstreamURL",
|
|
"comments": [
|
|
"route /api/v1/nakama/host/debridstream/url",
|
|
"Returns the debrid stream URL for direct access by peers to avoid host bandwidth usage",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/nakama.go",
|
|
"filename": "nakama.go",
|
|
"api": {
|
|
"summary": "",
|
|
"descriptions": [],
|
|
"endpoint": "",
|
|
"methods": null,
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleNakamaHostAnimeLibraryServeStream",
|
|
"trimmedName": "NakamaHostAnimeLibraryServeStream",
|
|
"comments": [
|
|
"route /api/v1/nakama/host/anime/library/stream?path={base64_encoded_path}",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/nakama.go",
|
|
"filename": "nakama.go",
|
|
"api": {
|
|
"summary": "",
|
|
"descriptions": [],
|
|
"endpoint": "",
|
|
"methods": null,
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleNakamaProxyStream",
|
|
"trimmedName": "NakamaProxyStream",
|
|
"comments": [
|
|
"route /api/v1/nakama/stream",
|
|
"Proxies stream requests to the host. It inserts the Nakama password in the headers.",
|
|
"It checks if the password is valid.",
|
|
"For debrid streams, it redirects directly to the debrid service to avoid host bandwidth usage.",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/nakama.go",
|
|
"filename": "nakama.go",
|
|
"api": {
|
|
"summary": "",
|
|
"descriptions": [],
|
|
"endpoint": "",
|
|
"methods": null,
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleNakamaReconnectToHost",
|
|
"trimmedName": "NakamaReconnectToHost",
|
|
"comments": [
|
|
"HandleNakamaReconnectToHost",
|
|
"",
|
|
"\t@summary reconnects to the Nakama host.",
|
|
"\t@desc This attempts to reconnect to the configured Nakama host if the connection was lost.",
|
|
"\t@route /api/v1/nakama/reconnect [POST]",
|
|
"\t@returns nakama.MessageResponse",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/nakama.go",
|
|
"filename": "nakama.go",
|
|
"api": {
|
|
"summary": "reconnects to the Nakama host.",
|
|
"descriptions": [
|
|
"This attempts to reconnect to the configured Nakama host if the connection was lost."
|
|
],
|
|
"endpoint": "/api/v1/nakama/reconnect",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "nakama.MessageResponse",
|
|
"returnGoType": "nakama.MessageResponse",
|
|
"returnTypescriptType": "Nakama_MessageResponse"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleNakamaRemoveStaleConnections",
|
|
"trimmedName": "NakamaRemoveStaleConnections",
|
|
"comments": [
|
|
"HandleNakamaRemoveStaleConnections",
|
|
"",
|
|
"\t@summary removes stale peer connections.",
|
|
"\t@desc This removes peer connections that haven't responded to ping messages for a while.",
|
|
"\t@route /api/v1/nakama/cleanup [POST]",
|
|
"\t@returns nakama.MessageResponse",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/nakama.go",
|
|
"filename": "nakama.go",
|
|
"api": {
|
|
"summary": "removes stale peer connections.",
|
|
"descriptions": [
|
|
"This removes peer connections that haven't responded to ping messages for a while."
|
|
],
|
|
"endpoint": "/api/v1/nakama/cleanup",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "nakama.MessageResponse",
|
|
"returnGoType": "nakama.MessageResponse",
|
|
"returnTypescriptType": "Nakama_MessageResponse"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleNakamaCreateWatchParty",
|
|
"trimmedName": "NakamaCreateWatchParty",
|
|
"comments": [
|
|
"HandleNakamaCreateWatchParty",
|
|
"",
|
|
"\t@summary creates a new watch party session.",
|
|
"\t@desc This creates a new watch party that peers can join to watch content together in sync.",
|
|
"\t@route /api/v1/nakama/watch-party/create [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/nakama.go",
|
|
"filename": "nakama.go",
|
|
"api": {
|
|
"summary": "creates a new watch party session.",
|
|
"descriptions": [
|
|
"This creates a new watch party that peers can join to watch content together in sync."
|
|
],
|
|
"endpoint": "/api/v1/nakama/watch-party/create",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Settings",
|
|
"jsonName": "settings",
|
|
"goType": "nakama.WatchPartySessionSettings",
|
|
"usedStructType": "nakama.WatchPartySessionSettings",
|
|
"typescriptType": "Nakama_WatchPartySessionSettings",
|
|
"required": false,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleNakamaJoinWatchParty",
|
|
"trimmedName": "NakamaJoinWatchParty",
|
|
"comments": [
|
|
"HandleNakamaJoinWatchParty",
|
|
"",
|
|
"\t@summary joins an existing watch party.",
|
|
"\t@desc This allows a peer to join an active watch party session.",
|
|
"\t@route /api/v1/nakama/watch-party/join [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/nakama.go",
|
|
"filename": "nakama.go",
|
|
"api": {
|
|
"summary": "joins an existing watch party.",
|
|
"descriptions": [
|
|
"This allows a peer to join an active watch party session."
|
|
],
|
|
"endpoint": "/api/v1/nakama/watch-party/join",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleNakamaLeaveWatchParty",
|
|
"trimmedName": "NakamaLeaveWatchParty",
|
|
"comments": [
|
|
"HandleNakamaLeaveWatchParty",
|
|
"",
|
|
"\t@summary leaves the current watch party.",
|
|
"\t@desc This removes the user from the active watch party session.",
|
|
"\t@route /api/v1/nakama/watch-party/leave [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/nakama.go",
|
|
"filename": "nakama.go",
|
|
"api": {
|
|
"summary": "leaves the current watch party.",
|
|
"descriptions": [
|
|
"This removes the user from the active watch party session."
|
|
],
|
|
"endpoint": "/api/v1/nakama/watch-party/leave",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetOnlineStreamEpisodeList",
|
|
"trimmedName": "GetOnlineStreamEpisodeList",
|
|
"comments": [
|
|
"HandleGetOnlineStreamEpisodeList",
|
|
"",
|
|
"\t@summary returns the episode list for the given media and provider.",
|
|
"\t@desc It returns the episode list for the given media and provider.",
|
|
"\t@desc The episodes are cached using a file cache.",
|
|
"\t@desc The episode list is just a list of episodes with no video sources, it's what the client uses to display the episodes and subsequently fetch the sources.",
|
|
"\t@desc The episode list might be nil or empty if nothing could be found, but the media will always be returned.",
|
|
"\t@route /api/v1/onlinestream/episode-list [POST]",
|
|
"\t@returns onlinestream.EpisodeListResponse",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/onlinestream.go",
|
|
"filename": "onlinestream.go",
|
|
"api": {
|
|
"summary": "returns the episode list for the given media and provider.",
|
|
"descriptions": [
|
|
"It returns the episode list for the given media and provider.",
|
|
"The episodes are cached using a file cache.",
|
|
"The episode list is just a list of episodes with no video sources, it's what the client uses to display the episodes and subsequently fetch the sources.",
|
|
"The episode list might be nil or empty if nothing could be found, but the media will always be returned."
|
|
],
|
|
"endpoint": "/api/v1/onlinestream/episode-list",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Dubbed",
|
|
"jsonName": "dubbed",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Provider",
|
|
"jsonName": "provider",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": false,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "onlinestream.EpisodeListResponse",
|
|
"returnGoType": "onlinestream.EpisodeListResponse",
|
|
"returnTypescriptType": "Onlinestream_EpisodeListResponse"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetOnlineStreamEpisodeSource",
|
|
"trimmedName": "GetOnlineStreamEpisodeSource",
|
|
"comments": [
|
|
"HandleGetOnlineStreamEpisodeSource",
|
|
"",
|
|
"\t@summary returns the video sources for the given media, episode number and provider.",
|
|
"\t@route /api/v1/onlinestream/episode-source [POST]",
|
|
"\t@returns onlinestream.EpisodeSource",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/onlinestream.go",
|
|
"filename": "onlinestream.go",
|
|
"api": {
|
|
"summary": "returns the video sources for the given media, episode number and provider.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/onlinestream/episode-source",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "EpisodeNumber",
|
|
"jsonName": "episodeNumber",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Provider",
|
|
"jsonName": "provider",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Dubbed",
|
|
"jsonName": "dubbed",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "onlinestream.EpisodeSource",
|
|
"returnGoType": "onlinestream.EpisodeSource",
|
|
"returnTypescriptType": "Onlinestream_EpisodeSource"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleOnlineStreamEmptyCache",
|
|
"trimmedName": "OnlineStreamEmptyCache",
|
|
"comments": [
|
|
"HandleOnlineStreamEmptyCache",
|
|
"",
|
|
"\t@summary empties the cache for the given media.",
|
|
"\t@route /api/v1/onlinestream/cache [DELETE]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/onlinestream.go",
|
|
"filename": "onlinestream.go",
|
|
"api": {
|
|
"summary": "empties the cache for the given media.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/onlinestream/cache",
|
|
"methods": [
|
|
"DELETE"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleOnlinestreamManualSearch",
|
|
"trimmedName": "OnlinestreamManualSearch",
|
|
"comments": [
|
|
"HandleOnlinestreamManualSearch",
|
|
"",
|
|
"\t@summary returns search results for a manual search.",
|
|
"\t@desc Returns search results for a manual search.",
|
|
"\t@route /api/v1/onlinestream/search [POST]",
|
|
"\t@returns []hibikeonlinestream.SearchResult",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/onlinestream.go",
|
|
"filename": "onlinestream.go",
|
|
"api": {
|
|
"summary": "returns search results for a manual search.",
|
|
"descriptions": [
|
|
"Returns search results for a manual search."
|
|
],
|
|
"endpoint": "/api/v1/onlinestream/search",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Provider",
|
|
"jsonName": "provider",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Query",
|
|
"jsonName": "query",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Dubbed",
|
|
"jsonName": "dubbed",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "[]hibikeonlinestream.SearchResult",
|
|
"returnGoType": "hibikeonlinestream.SearchResult",
|
|
"returnTypescriptType": "Array\u003cHibikeOnlinestream_SearchResult\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleOnlinestreamManualMapping",
|
|
"trimmedName": "OnlinestreamManualMapping",
|
|
"comments": [
|
|
"HandleOnlinestreamManualMapping",
|
|
"",
|
|
"\t@summary manually maps an anime entry to an anime ID from the provider.",
|
|
"\t@desc This is used to manually map an anime entry to an anime ID from the provider.",
|
|
"\t@desc The client should re-fetch the chapter container after this.",
|
|
"\t@route /api/v1/onlinestream/manual-mapping [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/onlinestream.go",
|
|
"filename": "onlinestream.go",
|
|
"api": {
|
|
"summary": "manually maps an anime entry to an anime ID from the provider.",
|
|
"descriptions": [
|
|
"This is used to manually map an anime entry to an anime ID from the provider.",
|
|
"The client should re-fetch the chapter container after this."
|
|
],
|
|
"endpoint": "/api/v1/onlinestream/manual-mapping",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Provider",
|
|
"jsonName": "provider",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "AnimeId",
|
|
"jsonName": "animeId",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetOnlinestreamMapping",
|
|
"trimmedName": "GetOnlinestreamMapping",
|
|
"comments": [
|
|
"HandleGetOnlinestreamMapping",
|
|
"",
|
|
"\t@summary returns the mapping for an anime entry.",
|
|
"\t@desc This is used to get the mapping for an anime entry.",
|
|
"\t@desc An empty string is returned if there's no manual mapping. If there is, the anime ID will be returned.",
|
|
"\t@route /api/v1/onlinestream/get-mapping [POST]",
|
|
"\t@returns onlinestream.MappingResponse",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/onlinestream.go",
|
|
"filename": "onlinestream.go",
|
|
"api": {
|
|
"summary": "returns the mapping for an anime entry.",
|
|
"descriptions": [
|
|
"This is used to get the mapping for an anime entry.",
|
|
"An empty string is returned if there's no manual mapping. If there is, the anime ID will be returned."
|
|
],
|
|
"endpoint": "/api/v1/onlinestream/get-mapping",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Provider",
|
|
"jsonName": "provider",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "onlinestream.MappingResponse",
|
|
"returnGoType": "onlinestream.MappingResponse",
|
|
"returnTypescriptType": "Onlinestream_MappingResponse"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleRemoveOnlinestreamMapping",
|
|
"trimmedName": "RemoveOnlinestreamMapping",
|
|
"comments": [
|
|
"HandleRemoveOnlinestreamMapping",
|
|
"",
|
|
"\t@summary removes the mapping for an anime entry.",
|
|
"\t@desc This is used to remove the mapping for an anime entry.",
|
|
"\t@desc The client should re-fetch the chapter container after this.",
|
|
"\t@route /api/v1/onlinestream/remove-mapping [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/onlinestream.go",
|
|
"filename": "onlinestream.go",
|
|
"api": {
|
|
"summary": "removes the mapping for an anime entry.",
|
|
"descriptions": [
|
|
"This is used to remove the mapping for an anime entry.",
|
|
"The client should re-fetch the chapter container after this."
|
|
],
|
|
"endpoint": "/api/v1/onlinestream/remove-mapping",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Provider",
|
|
"jsonName": "provider",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandlePlaybackPlayVideo",
|
|
"trimmedName": "PlaybackPlayVideo",
|
|
"comments": [
|
|
"HandlePlaybackPlayVideo",
|
|
"",
|
|
"\t@summary plays the video with the given path using the default media player.",
|
|
"\t@desc This tells the Playback Manager to play the video using the default media player and start tracking progress.",
|
|
"\t@desc This returns 'true' if the video was successfully played.",
|
|
"\t@route /api/v1/playback-manager/play [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/playback_manager.go",
|
|
"filename": "playback_manager.go",
|
|
"api": {
|
|
"summary": "plays the video with the given path using the default media player.",
|
|
"descriptions": [
|
|
"This tells the Playback Manager to play the video using the default media player and start tracking progress.",
|
|
"This returns 'true' if the video was successfully played."
|
|
],
|
|
"endpoint": "/api/v1/playback-manager/play",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Path",
|
|
"jsonName": "path",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandlePlaybackPlayRandomVideo",
|
|
"trimmedName": "PlaybackPlayRandomVideo",
|
|
"comments": [
|
|
"HandlePlaybackPlayRandomVideo",
|
|
"",
|
|
"\t@summary plays a random, unwatched video using the default media player.",
|
|
"\t@desc This tells the Playback Manager to play a random, unwatched video using the media player and start tracking progress.",
|
|
"\t@desc It respects the user's progress data and will prioritize \"current\" and \"repeating\" media if they are many of them.",
|
|
"\t@desc This returns 'true' if the video was successfully played.",
|
|
"\t@route /api/v1/playback-manager/play-random [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/playback_manager.go",
|
|
"filename": "playback_manager.go",
|
|
"api": {
|
|
"summary": "plays a random, unwatched video using the default media player.",
|
|
"descriptions": [
|
|
"This tells the Playback Manager to play a random, unwatched video using the media player and start tracking progress.",
|
|
"It respects the user's progress data and will prioritize \"current\" and \"repeating\" media if they are many of them.",
|
|
"This returns 'true' if the video was successfully played."
|
|
],
|
|
"endpoint": "/api/v1/playback-manager/play-random",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandlePlaybackSyncCurrentProgress",
|
|
"trimmedName": "PlaybackSyncCurrentProgress",
|
|
"comments": [
|
|
"HandlePlaybackSyncCurrentProgress",
|
|
"",
|
|
"\t@summary updates the AniList progress of the currently playing media.",
|
|
"\t@desc This is called after 'Update progress' is clicked when watching a media.",
|
|
"\t@desc This route returns the media ID of the currently playing media, so the client can refetch the media entry data.",
|
|
"\t@route /api/v1/playback-manager/sync-current-progress [POST]",
|
|
"\t@returns int",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/playback_manager.go",
|
|
"filename": "playback_manager.go",
|
|
"api": {
|
|
"summary": "updates the AniList progress of the currently playing media.",
|
|
"descriptions": [
|
|
"This is called after 'Update progress' is clicked when watching a media.",
|
|
"This route returns the media ID of the currently playing media, so the client can refetch the media entry data."
|
|
],
|
|
"endpoint": "/api/v1/playback-manager/sync-current-progress",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "int",
|
|
"returnGoType": "int",
|
|
"returnTypescriptType": "number"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandlePlaybackPlayNextEpisode",
|
|
"trimmedName": "PlaybackPlayNextEpisode",
|
|
"comments": [
|
|
"HandlePlaybackPlayNextEpisode",
|
|
"",
|
|
"\t@summary plays the next episode of the currently playing media.",
|
|
"\t@desc This will play the next episode of the currently playing media.",
|
|
"\t@desc This is non-blocking so the client should prevent multiple calls until the next status is received.",
|
|
"\t@route /api/v1/playback-manager/next-episode [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/playback_manager.go",
|
|
"filename": "playback_manager.go",
|
|
"api": {
|
|
"summary": "plays the next episode of the currently playing media.",
|
|
"descriptions": [
|
|
"This will play the next episode of the currently playing media.",
|
|
"This is non-blocking so the client should prevent multiple calls until the next status is received."
|
|
],
|
|
"endpoint": "/api/v1/playback-manager/next-episode",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandlePlaybackGetNextEpisode",
|
|
"trimmedName": "PlaybackGetNextEpisode",
|
|
"comments": [
|
|
"HandlePlaybackGetNextEpisode",
|
|
"",
|
|
"\t@summary gets the next episode of the currently playing media.",
|
|
"\t@desc This is used by the client's autoplay feature",
|
|
"\t@route /api/v1/playback-manager/next-episode [GET]",
|
|
"\t@returns *anime.LocalFile",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/playback_manager.go",
|
|
"filename": "playback_manager.go",
|
|
"api": {
|
|
"summary": "gets the next episode of the currently playing media.",
|
|
"descriptions": [
|
|
"This is used by the client's autoplay feature"
|
|
],
|
|
"endpoint": "/api/v1/playback-manager/next-episode",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "*anime.LocalFile",
|
|
"returnGoType": "anime.LocalFile",
|
|
"returnTypescriptType": "Anime_LocalFile"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandlePlaybackAutoPlayNextEpisode",
|
|
"trimmedName": "PlaybackAutoPlayNextEpisode",
|
|
"comments": [
|
|
"HandlePlaybackAutoPlayNextEpisode",
|
|
"",
|
|
"\t@summary plays the next episode of the currently playing media.",
|
|
"\t@desc This will play the next episode of the currently playing media.",
|
|
"\t@route /api/v1/playback-manager/autoplay-next-episode [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/playback_manager.go",
|
|
"filename": "playback_manager.go",
|
|
"api": {
|
|
"summary": "plays the next episode of the currently playing media.",
|
|
"descriptions": [
|
|
"This will play the next episode of the currently playing media."
|
|
],
|
|
"endpoint": "/api/v1/playback-manager/autoplay-next-episode",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandlePlaybackStartPlaylist",
|
|
"trimmedName": "PlaybackStartPlaylist",
|
|
"comments": [
|
|
"HandlePlaybackStartPlaylist",
|
|
"",
|
|
"\t@summary starts playing a playlist.",
|
|
"\t@desc The client should refetch playlists.",
|
|
"\t@route /api/v1/playback-manager/start-playlist [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/playback_manager.go",
|
|
"filename": "playback_manager.go",
|
|
"api": {
|
|
"summary": "starts playing a playlist.",
|
|
"descriptions": [
|
|
"The client should refetch playlists."
|
|
],
|
|
"endpoint": "/api/v1/playback-manager/start-playlist",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "DbId",
|
|
"jsonName": "dbId",
|
|
"goType": "uint",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandlePlaybackCancelCurrentPlaylist",
|
|
"trimmedName": "PlaybackCancelCurrentPlaylist",
|
|
"comments": [
|
|
"HandlePlaybackCancelCurrentPlaylist",
|
|
"",
|
|
"\t@summary ends the current playlist.",
|
|
"\t@desc This will stop the current playlist. This is non-blocking.",
|
|
"\t@route /api/v1/playback-manager/cancel-playlist [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/playback_manager.go",
|
|
"filename": "playback_manager.go",
|
|
"api": {
|
|
"summary": "ends the current playlist.",
|
|
"descriptions": [
|
|
"This will stop the current playlist. This is non-blocking."
|
|
],
|
|
"endpoint": "/api/v1/playback-manager/cancel-playlist",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandlePlaybackPlaylistNext",
|
|
"trimmedName": "PlaybackPlaylistNext",
|
|
"comments": [
|
|
"HandlePlaybackPlaylistNext",
|
|
"",
|
|
"\t@summary moves to the next item in the current playlist.",
|
|
"\t@desc This is non-blocking so the client should prevent multiple calls until the next status is received.",
|
|
"\t@route /api/v1/playback-manager/playlist-next [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/playback_manager.go",
|
|
"filename": "playback_manager.go",
|
|
"api": {
|
|
"summary": "moves to the next item in the current playlist.",
|
|
"descriptions": [
|
|
"This is non-blocking so the client should prevent multiple calls until the next status is received."
|
|
],
|
|
"endpoint": "/api/v1/playback-manager/playlist-next",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandlePlaybackStartManualTracking",
|
|
"trimmedName": "PlaybackStartManualTracking",
|
|
"comments": [
|
|
"HandlePlaybackStartManualTracking",
|
|
"",
|
|
"\t@summary starts manual tracking of a media.",
|
|
"\t@desc Used for tracking progress of media that is not played through any integrated media player.",
|
|
"\t@desc This should only be used for trackable episodes (episodes that count towards progress).",
|
|
"\t@desc This returns 'true' if the tracking was successfully started.",
|
|
"\t@route /api/v1/playback-manager/manual-tracking/start [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/playback_manager.go",
|
|
"filename": "playback_manager.go",
|
|
"api": {
|
|
"summary": "starts manual tracking of a media.",
|
|
"descriptions": [
|
|
"Used for tracking progress of media that is not played through any integrated media player.",
|
|
"This should only be used for trackable episodes (episodes that count towards progress).",
|
|
"This returns 'true' if the tracking was successfully started."
|
|
],
|
|
"endpoint": "/api/v1/playback-manager/manual-tracking/start",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "EpisodeNumber",
|
|
"jsonName": "episodeNumber",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "ClientId",
|
|
"jsonName": "clientId",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandlePlaybackCancelManualTracking",
|
|
"trimmedName": "PlaybackCancelManualTracking",
|
|
"comments": [
|
|
"HandlePlaybackCancelManualTracking",
|
|
"",
|
|
"\t@summary cancels manual tracking of a media.",
|
|
"\t@desc This will stop the server from expecting progress updates for the media.",
|
|
"\t@route /api/v1/playback-manager/manual-tracking/cancel [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/playback_manager.go",
|
|
"filename": "playback_manager.go",
|
|
"api": {
|
|
"summary": "cancels manual tracking of a media.",
|
|
"descriptions": [
|
|
"This will stop the server from expecting progress updates for the media."
|
|
],
|
|
"endpoint": "/api/v1/playback-manager/manual-tracking/cancel",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleCreatePlaylist",
|
|
"trimmedName": "CreatePlaylist",
|
|
"comments": [
|
|
"HandleCreatePlaylist",
|
|
"",
|
|
"\t@summary creates a new playlist.",
|
|
"\t@desc This will create a new playlist with the given name and local file paths.",
|
|
"\t@desc The response is ignored, the client should re-fetch the playlists after this.",
|
|
"\t@route /api/v1/playlist [POST]",
|
|
"\t@returns anime.Playlist",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/playlist.go",
|
|
"filename": "playlist.go",
|
|
"api": {
|
|
"summary": "creates a new playlist.",
|
|
"descriptions": [
|
|
"This will create a new playlist with the given name and local file paths.",
|
|
"The response is ignored, the client should re-fetch the playlists after this."
|
|
],
|
|
"endpoint": "/api/v1/playlist",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Name",
|
|
"jsonName": "name",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Paths",
|
|
"jsonName": "paths",
|
|
"goType": "[]string",
|
|
"usedStructType": "",
|
|
"typescriptType": "Array\u003cstring\u003e",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "anime.Playlist",
|
|
"returnGoType": "anime.Playlist",
|
|
"returnTypescriptType": "Anime_Playlist"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetPlaylists",
|
|
"trimmedName": "GetPlaylists",
|
|
"comments": [
|
|
"HandleGetPlaylists",
|
|
"",
|
|
"\t@summary returns all playlists.",
|
|
"\t@route /api/v1/playlists [GET]",
|
|
"\t@returns []anime.Playlist",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/playlist.go",
|
|
"filename": "playlist.go",
|
|
"api": {
|
|
"summary": "returns all playlists.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/playlists",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "[]anime.Playlist",
|
|
"returnGoType": "anime.Playlist",
|
|
"returnTypescriptType": "Array\u003cAnime_Playlist\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleUpdatePlaylist",
|
|
"trimmedName": "UpdatePlaylist",
|
|
"comments": [
|
|
"HandleUpdatePlaylist",
|
|
"",
|
|
"\t@summary updates a playlist.",
|
|
"\t@returns the updated playlist",
|
|
"\t@desc The response is ignored, the client should re-fetch the playlists after this.",
|
|
"\t@route /api/v1/playlist [PATCH]",
|
|
"\t@param id - int - true - \"The ID of the playlist to update.\"",
|
|
"\t@returns anime.Playlist",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/playlist.go",
|
|
"filename": "playlist.go",
|
|
"api": {
|
|
"summary": "updates a playlist.",
|
|
"descriptions": [
|
|
"The response is ignored, the client should re-fetch the playlists after this."
|
|
],
|
|
"endpoint": "/api/v1/playlist",
|
|
"methods": [
|
|
"PATCH"
|
|
],
|
|
"params": [
|
|
{
|
|
"name": "id",
|
|
"jsonName": "id",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": [
|
|
"The ID of the playlist to update."
|
|
]
|
|
}
|
|
],
|
|
"bodyFields": [
|
|
{
|
|
"name": "DbId",
|
|
"jsonName": "dbId",
|
|
"goType": "uint",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Name",
|
|
"jsonName": "name",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Paths",
|
|
"jsonName": "paths",
|
|
"goType": "[]string",
|
|
"usedStructType": "",
|
|
"typescriptType": "Array\u003cstring\u003e",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "anime.Playlist",
|
|
"returnGoType": "anime.Playlist",
|
|
"returnTypescriptType": "Anime_Playlist"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleDeletePlaylist",
|
|
"trimmedName": "DeletePlaylist",
|
|
"comments": [
|
|
"HandleDeletePlaylist",
|
|
"",
|
|
"\t@summary deletes a playlist.",
|
|
"\t@route /api/v1/playlist [DELETE]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/playlist.go",
|
|
"filename": "playlist.go",
|
|
"api": {
|
|
"summary": "deletes a playlist.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/playlist",
|
|
"methods": [
|
|
"DELETE"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "DbId",
|
|
"jsonName": "dbId",
|
|
"goType": "uint",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetPlaylistEpisodes",
|
|
"trimmedName": "GetPlaylistEpisodes",
|
|
"comments": [
|
|
"HandleGetPlaylistEpisodes",
|
|
"",
|
|
"\t@summary returns all the local files of a playlist media entry that have not been watched.",
|
|
"\t@route /api/v1/playlist/episodes/{id}/{progress} [GET]",
|
|
"\t@param id - int - true - \"The ID of the media entry.\"",
|
|
"\t@param progress - int - true - \"The progress of the media entry.\"",
|
|
"\t@returns []anime.LocalFile",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/playlist.go",
|
|
"filename": "playlist.go",
|
|
"api": {
|
|
"summary": "returns all the local files of a playlist media entry that have not been watched.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/playlist/episodes/{id}/{progress}",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [
|
|
{
|
|
"name": "id",
|
|
"jsonName": "id",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": [
|
|
"The ID of the media entry."
|
|
]
|
|
},
|
|
{
|
|
"name": "progress",
|
|
"jsonName": "progress",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": [
|
|
"The progress of the media entry."
|
|
]
|
|
}
|
|
],
|
|
"bodyFields": [],
|
|
"returns": "[]anime.LocalFile",
|
|
"returnGoType": "anime.LocalFile",
|
|
"returnTypescriptType": "Array\u003cAnime_LocalFile\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleInstallLatestUpdate",
|
|
"trimmedName": "InstallLatestUpdate",
|
|
"comments": [
|
|
"HandleInstallLatestUpdate",
|
|
"",
|
|
"\t@summary installs the latest update.",
|
|
"\t@desc This will install the latest update and launch the new version.",
|
|
"\t@route /api/v1/install-update [POST]",
|
|
"\t@returns handlers.Status",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/releases.go",
|
|
"filename": "releases.go",
|
|
"api": {
|
|
"summary": "installs the latest update.",
|
|
"descriptions": [
|
|
"This will install the latest update and launch the new version."
|
|
],
|
|
"endpoint": "/api/v1/install-update",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "FallbackDestination",
|
|
"jsonName": "fallback_destination",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "handlers.Status",
|
|
"returnGoType": "handlers.Status",
|
|
"returnTypescriptType": "Status"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetLatestUpdate",
|
|
"trimmedName": "GetLatestUpdate",
|
|
"comments": [
|
|
"HandleGetLatestUpdate",
|
|
"",
|
|
"\t@summary returns the latest update.",
|
|
"\t@desc This will return the latest update.",
|
|
"\t@desc If an error occurs, it will return an empty update.",
|
|
"\t@route /api/v1/latest-update [GET]",
|
|
"\t@returns updater.Update",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/releases.go",
|
|
"filename": "releases.go",
|
|
"api": {
|
|
"summary": "returns the latest update.",
|
|
"descriptions": [
|
|
"This will return the latest update.",
|
|
"If an error occurs, it will return an empty update."
|
|
],
|
|
"endpoint": "/api/v1/latest-update",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "updater.Update",
|
|
"returnGoType": "updater.Update",
|
|
"returnTypescriptType": "Updater_Update"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetChangelog",
|
|
"trimmedName": "GetChangelog",
|
|
"comments": [
|
|
"HandleGetChangelog",
|
|
"",
|
|
"\t@summary returns the changelog for versions greater than or equal to the given version.",
|
|
"\t@route /api/v1/changelog [GET]",
|
|
"\t@param before query string true \"The version to get the changelog for.\"",
|
|
"\t@returns string",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/releases.go",
|
|
"filename": "releases.go",
|
|
"api": {
|
|
"summary": "returns the changelog for versions greater than or equal to the given version.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/changelog",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "string",
|
|
"returnGoType": "string",
|
|
"returnTypescriptType": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleSaveIssueReport",
|
|
"trimmedName": "SaveIssueReport",
|
|
"comments": [
|
|
"HandleSaveIssueReport",
|
|
"",
|
|
"\t@summary saves the issue report in memory.",
|
|
"\t@route /api/v1/report/issue [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/report.go",
|
|
"filename": "report.go",
|
|
"api": {
|
|
"summary": "saves the issue report in memory.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/report/issue",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "ClickLogs",
|
|
"jsonName": "clickLogs",
|
|
"goType": "[]report.ClickLog",
|
|
"usedStructType": "report.ClickLog",
|
|
"typescriptType": "Array\u003cReport_ClickLog\u003e",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "NetworkLogs",
|
|
"jsonName": "networkLogs",
|
|
"goType": "[]report.NetworkLog",
|
|
"usedStructType": "report.NetworkLog",
|
|
"typescriptType": "Array\u003cReport_NetworkLog\u003e",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "ReactQueryLogs",
|
|
"jsonName": "reactQueryLogs",
|
|
"goType": "[]report.ReactQueryLog",
|
|
"usedStructType": "report.ReactQueryLog",
|
|
"typescriptType": "Array\u003cReport_ReactQueryLog\u003e",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "ConsoleLogs",
|
|
"jsonName": "consoleLogs",
|
|
"goType": "[]report.ConsoleLog",
|
|
"usedStructType": "report.ConsoleLog",
|
|
"typescriptType": "Array\u003cReport_ConsoleLog\u003e",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "IsAnimeLibraryIssue",
|
|
"jsonName": "isAnimeLibraryIssue",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleDownloadIssueReport",
|
|
"trimmedName": "DownloadIssueReport",
|
|
"comments": [
|
|
"HandleDownloadIssueReport",
|
|
"",
|
|
"\t@summary generates and downloads the issue report file.",
|
|
"\t@route /api/v1/report/issue/download [GET]",
|
|
"\t@returns report.IssueReport",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/report.go",
|
|
"filename": "report.go",
|
|
"api": {
|
|
"summary": "generates and downloads the issue report file.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/report/issue/download",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "report.IssueReport",
|
|
"returnGoType": "report.IssueReport",
|
|
"returnTypescriptType": "Report_IssueReport"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleScanLocalFiles",
|
|
"trimmedName": "ScanLocalFiles",
|
|
"comments": [
|
|
"HandleScanLocalFiles",
|
|
"",
|
|
"\t@summary scans the user's library.",
|
|
"\t@desc This will scan the user's library.",
|
|
"\t@desc The response is ignored, the client should re-fetch the library after this.",
|
|
"\t@route /api/v1/library/scan [POST]",
|
|
"\t@returns []anime.LocalFile",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/scan.go",
|
|
"filename": "scan.go",
|
|
"api": {
|
|
"summary": "scans the user's library.",
|
|
"descriptions": [
|
|
"This will scan the user's library.",
|
|
"The response is ignored, the client should re-fetch the library after this."
|
|
],
|
|
"endpoint": "/api/v1/library/scan",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Enhanced",
|
|
"jsonName": "enhanced",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "SkipLockedFiles",
|
|
"jsonName": "skipLockedFiles",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "SkipIgnoredFiles",
|
|
"jsonName": "skipIgnoredFiles",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "[]anime.LocalFile",
|
|
"returnGoType": "anime.LocalFile",
|
|
"returnTypescriptType": "Array\u003cAnime_LocalFile\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetScanSummaries",
|
|
"trimmedName": "GetScanSummaries",
|
|
"comments": [
|
|
"HandleGetScanSummaries",
|
|
"",
|
|
"\t@summary returns the latest scan summaries.",
|
|
"\t@route /api/v1/library/scan-summaries [GET]",
|
|
"\t@returns []summary.ScanSummaryItem",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/scan_summary.go",
|
|
"filename": "scan_summary.go",
|
|
"api": {
|
|
"summary": "returns the latest scan summaries.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/library/scan-summaries",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "[]summary.ScanSummaryItem",
|
|
"returnGoType": "summary.ScanSummaryItem",
|
|
"returnTypescriptType": "Array\u003cSummary_ScanSummaryItem\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetSettings",
|
|
"trimmedName": "GetSettings",
|
|
"comments": [
|
|
"HandleGetSettings",
|
|
"",
|
|
"\t@summary returns the app settings.",
|
|
"\t@route /api/v1/settings [GET]",
|
|
"\t@returns models.Settings",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/settings.go",
|
|
"filename": "settings.go",
|
|
"api": {
|
|
"summary": "returns the app settings.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/settings",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "models.Settings",
|
|
"returnGoType": "models.Settings",
|
|
"returnTypescriptType": "Models_Settings"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGettingStarted",
|
|
"trimmedName": "GettingStarted",
|
|
"comments": [
|
|
"HandleGettingStarted",
|
|
"",
|
|
"\t@summary updates the app settings.",
|
|
"\t@desc This will update the app settings.",
|
|
"\t@desc The client should re-fetch the server status after this.",
|
|
"\t@route /api/v1/start [POST]",
|
|
"\t@returns handlers.Status",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/settings.go",
|
|
"filename": "settings.go",
|
|
"api": {
|
|
"summary": "updates the app settings.",
|
|
"descriptions": [
|
|
"This will update the app settings.",
|
|
"The client should re-fetch the server status after this."
|
|
],
|
|
"endpoint": "/api/v1/start",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Library",
|
|
"jsonName": "library",
|
|
"goType": "models.LibrarySettings",
|
|
"usedStructType": "models.LibrarySettings",
|
|
"typescriptType": "Models_LibrarySettings",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "MediaPlayer",
|
|
"jsonName": "mediaPlayer",
|
|
"goType": "models.MediaPlayerSettings",
|
|
"usedStructType": "models.MediaPlayerSettings",
|
|
"typescriptType": "Models_MediaPlayerSettings",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Torrent",
|
|
"jsonName": "torrent",
|
|
"goType": "models.TorrentSettings",
|
|
"usedStructType": "models.TorrentSettings",
|
|
"typescriptType": "Models_TorrentSettings",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Anilist",
|
|
"jsonName": "anilist",
|
|
"goType": "models.AnilistSettings",
|
|
"usedStructType": "models.AnilistSettings",
|
|
"typescriptType": "Models_AnilistSettings",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Discord",
|
|
"jsonName": "discord",
|
|
"goType": "models.DiscordSettings",
|
|
"usedStructType": "models.DiscordSettings",
|
|
"typescriptType": "Models_DiscordSettings",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Manga",
|
|
"jsonName": "manga",
|
|
"goType": "models.MangaSettings",
|
|
"usedStructType": "models.MangaSettings",
|
|
"typescriptType": "Models_MangaSettings",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Notifications",
|
|
"jsonName": "notifications",
|
|
"goType": "models.NotificationSettings",
|
|
"usedStructType": "models.NotificationSettings",
|
|
"typescriptType": "Models_NotificationSettings",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Nakama",
|
|
"jsonName": "nakama",
|
|
"goType": "models.NakamaSettings",
|
|
"usedStructType": "models.NakamaSettings",
|
|
"typescriptType": "Models_NakamaSettings",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "EnableTranscode",
|
|
"jsonName": "enableTranscode",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "EnableTorrentStreaming",
|
|
"jsonName": "enableTorrentStreaming",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "DebridProvider",
|
|
"jsonName": "debridProvider",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "DebridApiKey",
|
|
"jsonName": "debridApiKey",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "handlers.Status",
|
|
"returnGoType": "handlers.Status",
|
|
"returnTypescriptType": "Status"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleSaveSettings",
|
|
"trimmedName": "SaveSettings",
|
|
"comments": [
|
|
"HandleSaveSettings",
|
|
"",
|
|
"\t@summary updates the app settings.",
|
|
"\t@desc This will update the app settings.",
|
|
"\t@desc The client should re-fetch the server status after this.",
|
|
"\t@route /api/v1/settings [PATCH]",
|
|
"\t@returns handlers.Status",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/settings.go",
|
|
"filename": "settings.go",
|
|
"api": {
|
|
"summary": "updates the app settings.",
|
|
"descriptions": [
|
|
"This will update the app settings.",
|
|
"The client should re-fetch the server status after this."
|
|
],
|
|
"endpoint": "/api/v1/settings",
|
|
"methods": [
|
|
"PATCH"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Library",
|
|
"jsonName": "library",
|
|
"goType": "models.LibrarySettings",
|
|
"usedStructType": "models.LibrarySettings",
|
|
"typescriptType": "Models_LibrarySettings",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "MediaPlayer",
|
|
"jsonName": "mediaPlayer",
|
|
"goType": "models.MediaPlayerSettings",
|
|
"usedStructType": "models.MediaPlayerSettings",
|
|
"typescriptType": "Models_MediaPlayerSettings",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Torrent",
|
|
"jsonName": "torrent",
|
|
"goType": "models.TorrentSettings",
|
|
"usedStructType": "models.TorrentSettings",
|
|
"typescriptType": "Models_TorrentSettings",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Anilist",
|
|
"jsonName": "anilist",
|
|
"goType": "models.AnilistSettings",
|
|
"usedStructType": "models.AnilistSettings",
|
|
"typescriptType": "Models_AnilistSettings",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Discord",
|
|
"jsonName": "discord",
|
|
"goType": "models.DiscordSettings",
|
|
"usedStructType": "models.DiscordSettings",
|
|
"typescriptType": "Models_DiscordSettings",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Manga",
|
|
"jsonName": "manga",
|
|
"goType": "models.MangaSettings",
|
|
"usedStructType": "models.MangaSettings",
|
|
"typescriptType": "Models_MangaSettings",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Notifications",
|
|
"jsonName": "notifications",
|
|
"goType": "models.NotificationSettings",
|
|
"usedStructType": "models.NotificationSettings",
|
|
"typescriptType": "Models_NotificationSettings",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Nakama",
|
|
"jsonName": "nakama",
|
|
"goType": "models.NakamaSettings",
|
|
"usedStructType": "models.NakamaSettings",
|
|
"typescriptType": "Models_NakamaSettings",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "handlers.Status",
|
|
"returnGoType": "handlers.Status",
|
|
"returnTypescriptType": "Status"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleSaveAutoDownloaderSettings",
|
|
"trimmedName": "SaveAutoDownloaderSettings",
|
|
"comments": [
|
|
"HandleSaveAutoDownloaderSettings",
|
|
"",
|
|
"\t@summary updates the auto-downloader settings.",
|
|
"\t@route /api/v1/settings/auto-downloader [PATCH]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/settings.go",
|
|
"filename": "settings.go",
|
|
"api": {
|
|
"summary": "updates the auto-downloader settings.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/settings/auto-downloader",
|
|
"methods": [
|
|
"PATCH"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Interval",
|
|
"jsonName": "interval",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Enabled",
|
|
"jsonName": "enabled",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "DownloadAutomatically",
|
|
"jsonName": "downloadAutomatically",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "EnableEnhancedQueries",
|
|
"jsonName": "enableEnhancedQueries",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "EnableSeasonCheck",
|
|
"jsonName": "enableSeasonCheck",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "UseDebrid",
|
|
"jsonName": "useDebrid",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "NewStatus",
|
|
"trimmedName": "NewStatus",
|
|
"comments": [
|
|
"NewStatus returns a new Status struct.",
|
|
"It uses the RouteCtx to get the App instance containing the Database instance.",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/status.go",
|
|
"filename": "status.go",
|
|
"api": {
|
|
"summary": "",
|
|
"descriptions": [],
|
|
"endpoint": "",
|
|
"methods": null,
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetStatus",
|
|
"trimmedName": "GetStatus",
|
|
"comments": [
|
|
"HandleGetStatus",
|
|
"",
|
|
"\t@summary returns the server status.",
|
|
"\t@desc The server status includes app info, auth info and settings.",
|
|
"\t@desc The client uses this to set the UI.",
|
|
"\t@desc It is called on every page load to get the most up-to-date data.",
|
|
"\t@desc It should be called right after updating the settings.",
|
|
"\t@route /api/v1/status [GET]",
|
|
"\t@returns handlers.Status",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/status.go",
|
|
"filename": "status.go",
|
|
"api": {
|
|
"summary": "returns the server status.",
|
|
"descriptions": [
|
|
"The server status includes app info, auth info and settings.",
|
|
"The client uses this to set the UI.",
|
|
"It is called on every page load to get the most up-to-date data.",
|
|
"It should be called right after updating the settings."
|
|
],
|
|
"endpoint": "/api/v1/status",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "handlers.Status",
|
|
"returnGoType": "handlers.Status",
|
|
"returnTypescriptType": "Status"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetLogFilenames",
|
|
"trimmedName": "GetLogFilenames",
|
|
"comments": [
|
|
"HandleGetLogFilenames",
|
|
"",
|
|
"\t@summary returns the log filenames.",
|
|
"\t@desc This returns the filenames of all log files in the logs directory.",
|
|
"\t@route /api/v1/logs/filenames [GET]",
|
|
"\t@returns []string",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/status.go",
|
|
"filename": "status.go",
|
|
"api": {
|
|
"summary": "returns the log filenames.",
|
|
"descriptions": [
|
|
"This returns the filenames of all log files in the logs directory."
|
|
],
|
|
"endpoint": "/api/v1/logs/filenames",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "[]string",
|
|
"returnGoType": "string",
|
|
"returnTypescriptType": "Array\u003cstring\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleDeleteLogs",
|
|
"trimmedName": "DeleteLogs",
|
|
"comments": [
|
|
"HandleDeleteLogs",
|
|
"",
|
|
"\t@summary deletes certain log files.",
|
|
"\t@desc This deletes the log files with the given filenames.",
|
|
"\t@route /api/v1/logs [DELETE]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/status.go",
|
|
"filename": "status.go",
|
|
"api": {
|
|
"summary": "deletes certain log files.",
|
|
"descriptions": [
|
|
"This deletes the log files with the given filenames."
|
|
],
|
|
"endpoint": "/api/v1/logs",
|
|
"methods": [
|
|
"DELETE"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Filenames",
|
|
"jsonName": "filenames",
|
|
"goType": "[]string",
|
|
"usedStructType": "",
|
|
"typescriptType": "Array\u003cstring\u003e",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetLatestLogContent",
|
|
"trimmedName": "GetLatestLogContent",
|
|
"comments": [
|
|
"HandleGetLatestLogContent",
|
|
"",
|
|
"\t@summary returns the content of the latest server log file.",
|
|
"\t@desc This returns the content of the most recent seanime- log file after flushing logs.",
|
|
"\t@route /api/v1/logs/latest [GET]",
|
|
"\t@returns string",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/status.go",
|
|
"filename": "status.go",
|
|
"api": {
|
|
"summary": "returns the content of the latest server log file.",
|
|
"descriptions": [
|
|
"This returns the content of the most recent seanime- log file after flushing logs."
|
|
],
|
|
"endpoint": "/api/v1/logs/latest",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "string",
|
|
"returnGoType": "string",
|
|
"returnTypescriptType": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetAnnouncements",
|
|
"trimmedName": "GetAnnouncements",
|
|
"comments": [
|
|
"HandleGetAnnouncements",
|
|
"",
|
|
"\t@summary returns the server announcements.",
|
|
"\t@desc This returns the announcements for the server.",
|
|
"\t@route /api/v1/announcements [POST]",
|
|
"\t@returns []updater.Announcement",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/status.go",
|
|
"filename": "status.go",
|
|
"api": {
|
|
"summary": "returns the server announcements.",
|
|
"descriptions": [
|
|
"This returns the announcements for the server."
|
|
],
|
|
"endpoint": "/api/v1/announcements",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Platform",
|
|
"jsonName": "platform",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "[]updater.Announcement",
|
|
"returnGoType": "updater.Announcement",
|
|
"returnTypescriptType": "Array\u003cUpdater_Announcement\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetMemoryStats",
|
|
"trimmedName": "GetMemoryStats",
|
|
"comments": [
|
|
"HandleGetMemoryStats",
|
|
"",
|
|
"\t@summary returns current memory statistics.",
|
|
"\t@desc This returns real-time memory usage statistics from the Go runtime.",
|
|
"\t@route /api/v1/memory/stats [GET]",
|
|
"\t@returns handlers.MemoryStatsResponse",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/status.go",
|
|
"filename": "status.go",
|
|
"api": {
|
|
"summary": "returns current memory statistics.",
|
|
"descriptions": [
|
|
"This returns real-time memory usage statistics from the Go runtime."
|
|
],
|
|
"endpoint": "/api/v1/memory/stats",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "handlers.MemoryStatsResponse",
|
|
"returnGoType": "handlers.MemoryStatsResponse",
|
|
"returnTypescriptType": "MemoryStatsResponse"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetMemoryProfile",
|
|
"trimmedName": "GetMemoryProfile",
|
|
"comments": [
|
|
"HandleGetMemoryProfile",
|
|
"",
|
|
"\t@summary generates and returns a memory profile.",
|
|
"\t@desc This generates a memory profile that can be analyzed with go tool pprof.",
|
|
"\t@desc Query parameters: heap=true for heap profile, allocs=true for alloc profile.",
|
|
"\t@route /api/v1/memory/profile [GET]",
|
|
"\t@returns nil",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/status.go",
|
|
"filename": "status.go",
|
|
"api": {
|
|
"summary": "generates and returns a memory profile.",
|
|
"descriptions": [
|
|
"This generates a memory profile that can be analyzed with go tool pprof.",
|
|
"Query parameters: heap=true for heap profile, allocs=true for alloc profile."
|
|
],
|
|
"endpoint": "/api/v1/memory/profile",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "nil",
|
|
"returnGoType": "nil",
|
|
"returnTypescriptType": "null"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetGoRoutineProfile",
|
|
"trimmedName": "GetGoRoutineProfile",
|
|
"comments": [
|
|
"HandleGetGoRoutineProfile",
|
|
"",
|
|
"\t@summary generates and returns a goroutine profile.",
|
|
"\t@desc This generates a goroutine profile showing all running goroutines and their stack traces.",
|
|
"\t@route /api/v1/memory/goroutine [GET]",
|
|
"\t@returns nil",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/status.go",
|
|
"filename": "status.go",
|
|
"api": {
|
|
"summary": "generates and returns a goroutine profile.",
|
|
"descriptions": [
|
|
"This generates a goroutine profile showing all running goroutines and their stack traces."
|
|
],
|
|
"endpoint": "/api/v1/memory/goroutine",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "nil",
|
|
"returnGoType": "nil",
|
|
"returnTypescriptType": "null"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetCPUProfile",
|
|
"trimmedName": "GetCPUProfile",
|
|
"comments": [
|
|
"HandleGetCPUProfile",
|
|
"",
|
|
"\t@summary generates and returns a CPU profile.",
|
|
"\t@desc This generates a CPU profile for the specified duration (default 30 seconds).",
|
|
"\t@desc Query parameter: duration=30 for duration in seconds.",
|
|
"\t@route /api/v1/memory/cpu [GET]",
|
|
"\t@returns nil",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/status.go",
|
|
"filename": "status.go",
|
|
"api": {
|
|
"summary": "generates and returns a CPU profile.",
|
|
"descriptions": [
|
|
"This generates a CPU profile for the specified duration (default 30 seconds).",
|
|
"Query parameter: duration=30 for duration in seconds."
|
|
],
|
|
"endpoint": "/api/v1/memory/cpu",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "nil",
|
|
"returnGoType": "nil",
|
|
"returnTypescriptType": "null"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleForceGC",
|
|
"trimmedName": "ForceGC",
|
|
"comments": [
|
|
"HandleForceGC",
|
|
"",
|
|
"\t@summary forces garbage collection and returns memory stats.",
|
|
"\t@desc This forces a garbage collection cycle and returns the updated memory statistics.",
|
|
"\t@route /api/v1/memory/gc [POST]",
|
|
"\t@returns handlers.MemoryStatsResponse",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/status.go",
|
|
"filename": "status.go",
|
|
"api": {
|
|
"summary": "forces garbage collection and returns memory stats.",
|
|
"descriptions": [
|
|
"This forces a garbage collection cycle and returns the updated memory statistics."
|
|
],
|
|
"endpoint": "/api/v1/memory/gc",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "handlers.MemoryStatsResponse",
|
|
"returnGoType": "handlers.MemoryStatsResponse",
|
|
"returnTypescriptType": "MemoryStatsResponse"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetTheme",
|
|
"trimmedName": "GetTheme",
|
|
"comments": [
|
|
"HandleGetTheme",
|
|
"",
|
|
"\t@summary returns the theme settings.",
|
|
"\t@route /api/v1/theme [GET]",
|
|
"\t@returns models.Theme",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/theme.go",
|
|
"filename": "theme.go",
|
|
"api": {
|
|
"summary": "returns the theme settings.",
|
|
"descriptions": [],
|
|
"endpoint": "/api/v1/theme",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "models.Theme",
|
|
"returnGoType": "models.Theme",
|
|
"returnTypescriptType": "Models_Theme"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleUpdateTheme",
|
|
"trimmedName": "UpdateTheme",
|
|
"comments": [
|
|
"HandleUpdateTheme",
|
|
"",
|
|
"\t@summary updates the theme settings.",
|
|
"\t@desc The server status should be re-fetched after this on the client.",
|
|
"\t@route /api/v1/theme [PATCH]",
|
|
"\t@returns models.Theme",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/theme.go",
|
|
"filename": "theme.go",
|
|
"api": {
|
|
"summary": "updates the theme settings.",
|
|
"descriptions": [
|
|
"The server status should be re-fetched after this on the client."
|
|
],
|
|
"endpoint": "/api/v1/theme",
|
|
"methods": [
|
|
"PATCH"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Theme",
|
|
"jsonName": "theme",
|
|
"goType": "models.Theme",
|
|
"usedStructType": "models.Theme",
|
|
"typescriptType": "Models_Theme",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "models.Theme",
|
|
"returnGoType": "models.Theme",
|
|
"returnTypescriptType": "Models_Theme"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetActiveTorrentList",
|
|
"trimmedName": "GetActiveTorrentList",
|
|
"comments": [
|
|
"HandleGetActiveTorrentList",
|
|
"",
|
|
"\t@summary returns all active torrents.",
|
|
"\t@desc This handler is used by the client to display the active torrents.",
|
|
"",
|
|
"\t@route /api/v1/torrent-client/list [GET]",
|
|
"\t@returns []torrent_client.Torrent",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/torrent_client.go",
|
|
"filename": "torrent_client.go",
|
|
"api": {
|
|
"summary": "returns all active torrents.",
|
|
"descriptions": [
|
|
"This handler is used by the client to display the active torrents."
|
|
],
|
|
"endpoint": "/api/v1/torrent-client/list",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "[]torrent_client.Torrent",
|
|
"returnGoType": "torrent_client.Torrent",
|
|
"returnTypescriptType": "Array\u003cTorrentClient_Torrent\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleTorrentClientAction",
|
|
"trimmedName": "TorrentClientAction",
|
|
"comments": [
|
|
"HandleTorrentClientAction",
|
|
"",
|
|
"\t@summary performs an action on a torrent.",
|
|
"\t@desc This handler is used to pause, resume or remove a torrent.",
|
|
"\t@route /api/v1/torrent-client/action [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/torrent_client.go",
|
|
"filename": "torrent_client.go",
|
|
"api": {
|
|
"summary": "performs an action on a torrent.",
|
|
"descriptions": [
|
|
"This handler is used to pause, resume or remove a torrent."
|
|
],
|
|
"endpoint": "/api/v1/torrent-client/action",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Hash",
|
|
"jsonName": "hash",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Action",
|
|
"jsonName": "action",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Dir",
|
|
"jsonName": "dir",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleTorrentClientDownload",
|
|
"trimmedName": "TorrentClientDownload",
|
|
"comments": [
|
|
"HandleTorrentClientDownload",
|
|
"",
|
|
"\t@summary adds torrents to the torrent client.",
|
|
"\t@desc It fetches the magnets from the provided URLs and adds them to the torrent client.",
|
|
"\t@desc If smart select is enabled, it will try to select the best torrent based on the missing episodes.",
|
|
"\t@route /api/v1/torrent-client/download [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/torrent_client.go",
|
|
"filename": "torrent_client.go",
|
|
"api": {
|
|
"summary": "adds torrents to the torrent client.",
|
|
"descriptions": [
|
|
"It fetches the magnets from the provided URLs and adds them to the torrent client.",
|
|
"If smart select is enabled, it will try to select the best torrent based on the missing episodes."
|
|
],
|
|
"endpoint": "/api/v1/torrent-client/download",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Torrents",
|
|
"jsonName": "torrents",
|
|
"goType": "[]hibiketorrent.AnimeTorrent",
|
|
"usedStructType": "hibiketorrent.AnimeTorrent",
|
|
"typescriptType": "Array\u003cHibikeTorrent_AnimeTorrent\u003e",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Destination",
|
|
"jsonName": "destination",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "SmartSelect",
|
|
"jsonName": "smartSelect",
|
|
"goType": "__STRUCT__",
|
|
"inlineStructType": "struct{\nEnabled bool `json:\"enabled\"`\nMissingEpisodeNumbers []int `json:\"missingEpisodeNumbers\"`}",
|
|
"usedStructType": "",
|
|
"typescriptType": "{ enabled: boolean; missingEpisodeNumbers: Array\u003cnumber\u003e; }",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Media",
|
|
"jsonName": "media",
|
|
"goType": "anilist.BaseAnime",
|
|
"usedStructType": "anilist.BaseAnime",
|
|
"typescriptType": "AL_BaseAnime",
|
|
"required": false,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleTorrentClientAddMagnetFromRule",
|
|
"trimmedName": "TorrentClientAddMagnetFromRule",
|
|
"comments": [
|
|
"HandleTorrentClientAddMagnetFromRule",
|
|
"",
|
|
"\t@summary adds magnets to the torrent client based on the AutoDownloader item.",
|
|
"\t@desc This is used to download torrents that were queued by the AutoDownloader.",
|
|
"\t@desc The item will be removed from the queue if the magnet was added successfully.",
|
|
"\t@desc The AutoDownloader items should be re-fetched after this.",
|
|
"\t@route /api/v1/torrent-client/rule-magnet [POST]",
|
|
"\t@returns bool",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/torrent_client.go",
|
|
"filename": "torrent_client.go",
|
|
"api": {
|
|
"summary": "adds magnets to the torrent client based on the AutoDownloader item.",
|
|
"descriptions": [
|
|
"This is used to download torrents that were queued by the AutoDownloader.",
|
|
"The item will be removed from the queue if the magnet was added successfully.",
|
|
"The AutoDownloader items should be re-fetched after this."
|
|
],
|
|
"endpoint": "/api/v1/torrent-client/rule-magnet",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MagnetUrl",
|
|
"jsonName": "magnetUrl",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "RuleId",
|
|
"jsonName": "ruleId",
|
|
"goType": "uint",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "QueuedItemId",
|
|
"jsonName": "queuedItemId",
|
|
"goType": "uint",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleSearchTorrent",
|
|
"trimmedName": "SearchTorrent",
|
|
"comments": [
|
|
"HandleSearchTorrent",
|
|
"",
|
|
"\t@summary searches torrents and returns a list of torrents and their previews.",
|
|
"\t@desc This will search for torrents and return a list of torrents with previews.",
|
|
"\t@desc If smart search is enabled, it will filter the torrents based on search parameters.",
|
|
"\t@route /api/v1/torrent/search [POST]",
|
|
"\t@returns torrent.SearchData",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/torrent_search.go",
|
|
"filename": "torrent_search.go",
|
|
"api": {
|
|
"summary": "searches torrents and returns a list of torrents and their previews.",
|
|
"descriptions": [
|
|
"This will search for torrents and return a list of torrents with previews.",
|
|
"If smart search is enabled, it will filter the torrents based on search parameters."
|
|
],
|
|
"endpoint": "/api/v1/torrent/search",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Type",
|
|
"jsonName": "type",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": false,
|
|
"descriptions": [
|
|
"\"smart\" or \"simple\"",
|
|
"",
|
|
"\"smart\" or \"simple\""
|
|
]
|
|
},
|
|
{
|
|
"name": "Provider",
|
|
"jsonName": "provider",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Query",
|
|
"jsonName": "query",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "EpisodeNumber",
|
|
"jsonName": "episodeNumber",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Batch",
|
|
"jsonName": "batch",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Media",
|
|
"jsonName": "media",
|
|
"goType": "anilist.BaseAnime",
|
|
"usedStructType": "anilist.BaseAnime",
|
|
"typescriptType": "AL_BaseAnime",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "AbsoluteOffset",
|
|
"jsonName": "absoluteOffset",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Resolution",
|
|
"jsonName": "resolution",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "BestRelease",
|
|
"jsonName": "bestRelease",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": false,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "torrent.SearchData",
|
|
"returnGoType": "torrent.SearchData",
|
|
"returnTypescriptType": "Torrent_SearchData"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetTorrentstreamSettings",
|
|
"trimmedName": "GetTorrentstreamSettings",
|
|
"comments": [
|
|
"HandleGetTorrentstreamSettings",
|
|
"",
|
|
"\t@summary get torrentstream settings.",
|
|
"\t@desc This returns the torrentstream settings.",
|
|
"\t@returns models.TorrentstreamSettings",
|
|
"\t@route /api/v1/torrentstream/settings [GET]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/torrentstream.go",
|
|
"filename": "torrentstream.go",
|
|
"api": {
|
|
"summary": "get torrentstream settings.",
|
|
"descriptions": [
|
|
"This returns the torrentstream settings."
|
|
],
|
|
"endpoint": "/api/v1/torrentstream/settings",
|
|
"methods": [
|
|
"GET"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "models.TorrentstreamSettings",
|
|
"returnGoType": "models.TorrentstreamSettings",
|
|
"returnTypescriptType": "Models_TorrentstreamSettings"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleSaveTorrentstreamSettings",
|
|
"trimmedName": "SaveTorrentstreamSettings",
|
|
"comments": [
|
|
"HandleSaveTorrentstreamSettings",
|
|
"",
|
|
"\t@summary save torrentstream settings.",
|
|
"\t@desc This saves the torrentstream settings.",
|
|
"\t@desc The client should refetch the server status.",
|
|
"\t@returns models.TorrentstreamSettings",
|
|
"\t@route /api/v1/torrentstream/settings [PATCH]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/torrentstream.go",
|
|
"filename": "torrentstream.go",
|
|
"api": {
|
|
"summary": "save torrentstream settings.",
|
|
"descriptions": [
|
|
"This saves the torrentstream settings.",
|
|
"The client should refetch the server status."
|
|
],
|
|
"endpoint": "/api/v1/torrentstream/settings",
|
|
"methods": [
|
|
"PATCH"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Settings",
|
|
"jsonName": "settings",
|
|
"goType": "models.TorrentstreamSettings",
|
|
"usedStructType": "models.TorrentstreamSettings",
|
|
"typescriptType": "Models_TorrentstreamSettings",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "models.TorrentstreamSettings",
|
|
"returnGoType": "models.TorrentstreamSettings",
|
|
"returnTypescriptType": "Models_TorrentstreamSettings"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetTorrentstreamTorrentFilePreviews",
|
|
"trimmedName": "GetTorrentstreamTorrentFilePreviews",
|
|
"comments": [
|
|
"HandleGetTorrentstreamTorrentFilePreviews",
|
|
"",
|
|
"\t@summary get list of torrent files from a batch",
|
|
"\t@desc This returns a list of file previews from the torrent",
|
|
"\t@returns []torrentstream.FilePreview",
|
|
"\t@route /api/v1/torrentstream/torrent-file-previews [POST]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/torrentstream.go",
|
|
"filename": "torrentstream.go",
|
|
"api": {
|
|
"summary": "get list of torrent files from a batch",
|
|
"descriptions": [
|
|
"This returns a list of file previews from the torrent"
|
|
],
|
|
"endpoint": "/api/v1/torrentstream/torrent-file-previews",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "Torrent",
|
|
"jsonName": "torrent",
|
|
"goType": "hibiketorrent.AnimeTorrent",
|
|
"usedStructType": "hibiketorrent.AnimeTorrent",
|
|
"typescriptType": "HibikeTorrent_AnimeTorrent",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "EpisodeNumber",
|
|
"jsonName": "episodeNumber",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Media",
|
|
"jsonName": "media",
|
|
"goType": "anilist.BaseAnime",
|
|
"usedStructType": "anilist.BaseAnime",
|
|
"typescriptType": "AL_BaseAnime",
|
|
"required": false,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "[]torrentstream.FilePreview",
|
|
"returnGoType": "torrentstream.FilePreview",
|
|
"returnTypescriptType": "Array\u003cTorrentstream_FilePreview\u003e"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleTorrentstreamStartStream",
|
|
"trimmedName": "TorrentstreamStartStream",
|
|
"comments": [
|
|
"HandleTorrentstreamStartStream",
|
|
"",
|
|
"\t@summary starts a torrent stream.",
|
|
"\t@desc This starts the entire streaming process.",
|
|
"\t@returns bool",
|
|
"\t@route /api/v1/torrentstream/start [POST]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/torrentstream.go",
|
|
"filename": "torrentstream.go",
|
|
"api": {
|
|
"summary": "starts a torrent stream.",
|
|
"descriptions": [
|
|
"This starts the entire streaming process."
|
|
],
|
|
"endpoint": "/api/v1/torrentstream/start",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaId",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "EpisodeNumber",
|
|
"jsonName": "episodeNumber",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "AniDBEpisode",
|
|
"jsonName": "aniDBEpisode",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "AutoSelect",
|
|
"jsonName": "autoSelect",
|
|
"goType": "bool",
|
|
"usedStructType": "",
|
|
"typescriptType": "boolean",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "Torrent",
|
|
"jsonName": "torrent",
|
|
"goType": "hibiketorrent.AnimeTorrent",
|
|
"usedStructType": "hibiketorrent.AnimeTorrent",
|
|
"typescriptType": "HibikeTorrent_AnimeTorrent",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "FileIndex",
|
|
"jsonName": "fileIndex",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": false,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "PlaybackType",
|
|
"jsonName": "playbackType",
|
|
"goType": "torrentstream.PlaybackType",
|
|
"usedStructType": "torrentstream.PlaybackType",
|
|
"typescriptType": "Torrentstream_PlaybackType",
|
|
"required": true,
|
|
"descriptions": []
|
|
},
|
|
{
|
|
"name": "ClientId",
|
|
"jsonName": "clientId",
|
|
"goType": "string",
|
|
"usedStructType": "",
|
|
"typescriptType": "string",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleTorrentstreamStopStream",
|
|
"trimmedName": "TorrentstreamStopStream",
|
|
"comments": [
|
|
"HandleTorrentstreamStopStream",
|
|
"",
|
|
"\t@summary stop a torrent stream.",
|
|
"\t@desc This stops the entire streaming process and drops the torrent if it's below a threshold.",
|
|
"\t@desc This is made to be used while the stream is running.",
|
|
"\t@returns bool",
|
|
"\t@route /api/v1/torrentstream/stop [POST]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/torrentstream.go",
|
|
"filename": "torrentstream.go",
|
|
"api": {
|
|
"summary": "stop a torrent stream.",
|
|
"descriptions": [
|
|
"This stops the entire streaming process and drops the torrent if it's below a threshold.",
|
|
"This is made to be used while the stream is running."
|
|
],
|
|
"endpoint": "/api/v1/torrentstream/stop",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleTorrentstreamDropTorrent",
|
|
"trimmedName": "TorrentstreamDropTorrent",
|
|
"comments": [
|
|
"HandleTorrentstreamDropTorrent",
|
|
"",
|
|
"\t@summary drops a torrent stream.",
|
|
"\t@desc This stops the entire streaming process and drops the torrent completely.",
|
|
"\t@desc This is made to be used to force drop a torrent.",
|
|
"\t@returns bool",
|
|
"\t@route /api/v1/torrentstream/drop [POST]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/torrentstream.go",
|
|
"filename": "torrentstream.go",
|
|
"api": {
|
|
"summary": "drops a torrent stream.",
|
|
"descriptions": [
|
|
"This stops the entire streaming process and drops the torrent completely.",
|
|
"This is made to be used to force drop a torrent."
|
|
],
|
|
"endpoint": "/api/v1/torrentstream/drop",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleGetTorrentstreamBatchHistory",
|
|
"trimmedName": "GetTorrentstreamBatchHistory",
|
|
"comments": [
|
|
"HandleGetTorrentstreamBatchHistory",
|
|
"",
|
|
"\t@summary returns the most recent batch selected.",
|
|
"\t@desc This returns the most recent batch selected.",
|
|
"\t@returns torrentstream.BatchHistoryResponse",
|
|
"\t@route /api/v1/torrentstream/batch-history [POST]",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/torrentstream.go",
|
|
"filename": "torrentstream.go",
|
|
"api": {
|
|
"summary": "returns the most recent batch selected.",
|
|
"descriptions": [
|
|
"This returns the most recent batch selected."
|
|
],
|
|
"endpoint": "/api/v1/torrentstream/batch-history",
|
|
"methods": [
|
|
"POST"
|
|
],
|
|
"params": [],
|
|
"bodyFields": [
|
|
{
|
|
"name": "MediaID",
|
|
"jsonName": "mediaId",
|
|
"goType": "int",
|
|
"usedStructType": "",
|
|
"typescriptType": "number",
|
|
"required": true,
|
|
"descriptions": []
|
|
}
|
|
],
|
|
"returns": "torrentstream.BatchHistoryResponse",
|
|
"returnGoType": "torrentstream.BatchHistoryResponse",
|
|
"returnTypescriptType": "Torrentstream_BatchHistoryResponse"
|
|
}
|
|
},
|
|
{
|
|
"name": "HandleTorrentstreamServeStream",
|
|
"trimmedName": "TorrentstreamServeStream",
|
|
"comments": [
|
|
"route /api/v1/torrentstream/stream/*",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/torrentstream.go",
|
|
"filename": "torrentstream.go",
|
|
"api": {
|
|
"summary": "",
|
|
"descriptions": [],
|
|
"endpoint": "",
|
|
"methods": null,
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "webSocketEventHandler",
|
|
"trimmedName": "webSocketEventHandler",
|
|
"comments": [
|
|
"webSocketEventHandler creates a new websocket handler for real-time event communication",
|
|
""
|
|
],
|
|
"filepath": "internal/handlers/websocket.go",
|
|
"filename": "websocket.go",
|
|
"api": {
|
|
"summary": "",
|
|
"descriptions": [],
|
|
"endpoint": "",
|
|
"methods": null,
|
|
"params": [],
|
|
"bodyFields": [],
|
|
"returns": "bool",
|
|
"returnGoType": "bool",
|
|
"returnTypescriptType": "boolean"
|
|
}
|
|
}
|
|
]
|