mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2024-11-07 08:34:10 +01:00
Update: podcast opml endpoints
This commit is contained in:
parent
7af02ad2e2
commit
eb0f5b2e1b
@ -58,14 +58,12 @@ paths:
|
||||
404:
|
||||
description: Not found
|
||||
|
||||
/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:
|
||||
@ -73,20 +71,56 @@ paths:
|
||||
properties:
|
||||
opmlText:
|
||||
type: string
|
||||
description: The OPML text containing podcast feeds
|
||||
responses:
|
||||
200:
|
||||
description: Successfully retrieved feeds from OPML text
|
||||
'200':
|
||||
description: Successfully parsed OPML text and returned feeds
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: '../objects/mediaTypes/Podcast.yaml#/components/schemas/Podcast'
|
||||
400:
|
||||
description: Bad request
|
||||
403:
|
||||
description: Forbidden
|
||||
type: object
|
||||
properties:
|
||||
feeds:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
title:
|
||||
type: string
|
||||
feedUrl:
|
||||
type: string
|
||||
'400':
|
||||
description: Bad request, OPML text not provided
|
||||
'403':
|
||||
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: '../objects/Library.yaml#/components/schemas/libraryId'
|
||||
folderId:
|
||||
$ref: '../objects/Folder.yaml#/components/schemas/folderId'
|
||||
autoDownloadEpisodes:
|
||||
$ref: '../objects/mediaTypes/Podcast.yaml#/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
|
||||
|
||||
/api/podcasts/{id}/checknew:
|
||||
parameters:
|
||||
|
@ -11,6 +11,9 @@ components:
|
||||
nullable: true
|
||||
format: 'pod_[a-z0-9]{18}'
|
||||
example: pod_o78uaoeuh78h6aoeif
|
||||
autoDownloadEpisodes:
|
||||
type: boolean
|
||||
description: Whether episodes are automatically downloaded.
|
||||
|
||||
Podcast:
|
||||
type: object
|
||||
@ -37,8 +40,7 @@ components:
|
||||
items:
|
||||
$ref: '../entities/PodcastEpisode.yaml#/components/schemas/PodcastEpisode'
|
||||
autoDownloadEpisodes:
|
||||
type: boolean
|
||||
description: Whether episodes are automatically downloaded.
|
||||
$ref: '#/components/schemas/autoDownloadEpisodes'
|
||||
autoDownloadSchedule:
|
||||
type: string
|
||||
description: The schedule for automatic episode downloads, in cron format.
|
||||
|
@ -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",
|
||||
|
@ -57,8 +57,10 @@ paths:
|
||||
$ref: './controllers/PodcastController.yaml#/paths/~1api~1podcasts'
|
||||
/api/podcasts/feed:
|
||||
$ref: './controllers/PodcastController.yaml#/paths/~1api~1podcasts~1feed'
|
||||
/api/podcasts/opml:
|
||||
$ref: './controllers/PodcastController.yaml#/paths/~1api~1podcasts~1opml'
|
||||
/api/podcasts/opml/parse:
|
||||
$ref: './controllers/PodcastController.yaml#/paths/~1api~1podcasts~1opml~1parse'
|
||||
/api/podcasts/opml/create:
|
||||
$ref: './controllers/PodcastController.yaml#/paths/~1api~1podcasts~1opml~1create'
|
||||
/api/podcasts/{id}/checknew:
|
||||
$ref: './controllers/PodcastController.yaml#/paths/~1api~1podcasts~1{id}~1checknew'
|
||||
/api/podcasts/{id}/clear-queue:
|
||||
|
Loading…
Reference in New Issue
Block a user