Update: podcast opml endpoints

This commit is contained in:
Nicholas Wallace 2024-07-20 02:38:56 +00:00
parent 7af02ad2e2
commit eb0f5b2e1b
4 changed files with 129 additions and 33 deletions

View file

@ -1589,23 +1589,19 @@
}
}
},
"/api/podcasts/opml": {
"/api/podcasts/opml/parse": {
"post": {
"summary": "Get feeds from OPML text",
"description": "Parse OPML text and return an array of feeds",
"operationId": "getFeedsFromOPMLText",
"tags": [
"Podcasts"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"opmlText": {
"type": "string",
"description": "The OPML text containing podcast feeds"
"type": "string"
}
}
}
@ -1614,23 +1610,82 @@
},
"responses": {
"200": {
"description": "Successfully retrieved feeds from OPML text",
"description": "Successfully parsed OPML text and returned feeds",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Podcast"
"type": "object",
"properties": {
"feeds": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"feedUrl": {
"type": "string"
}
}
}
}
}
}
}
}
},
"400": {
"description": "Bad request"
"description": "Bad request, OPML text not provided"
},
"403": {
"description": "Forbidden"
"description": "Forbidden, user is not admin"
}
}
}
},
"/api/podcasts/opml/create": {
"post": {
"summary": "Bulk create podcasts from OPML feed URLs",
"operationId": "bulkCreatePodcastsFromOpmlFeedUrls",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"feeds": {
"type": "array",
"items": {
"type": "string"
}
},
"libraryId": {
"$ref": "#/components/schemas/libraryId"
},
"folderId": {
"$ref": "#/components/schemas/folderId"
},
"autoDownloadEpisodes": {
"$ref": "#/components/schemas/autoDownloadEpisodes"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Successfully created podcasts from feed URLs"
},
"400": {
"description": "Bad request, invalid request body"
},
"403": {
"description": "Forbidden, user is not admin"
},
"404": {
"description": "Folder not found"
}
}
}
@ -3856,6 +3911,10 @@
}
}
},
"autoDownloadEpisodes": {
"type": "boolean",
"description": "Whether episodes are automatically downloaded."
},
"Podcast": {
"type": "object",
"description": "A podcast containing multiple episodes.",
@ -3889,8 +3948,7 @@
}
},
"autoDownloadEpisodes": {
"type": "boolean",
"description": "Whether episodes are automatically downloaded."
"$ref": "#/components/schemas/autoDownloadEpisodes"
},
"autoDownloadSchedule": {
"type": "string",