Add Garmin Podcasts, improve doc

Added subscription API examples and note about that GUID is used for identification if present
This commit is contained in:
Jonathan Flueren 2022-09-19 00:51:48 +02:00 committed by thrillfall
parent ec78fc4f47
commit 7002208f3b

View File

@ -6,6 +6,7 @@ Nextcloud app that replicates basic gpodder.net api to sync podcast consumer app
| :- | :- | | :- | :- |
| [AntennaPod](https://antennapod.org) | Initial purpose for this project, as a synchronization endpoint for this client.<br> Support is available [as of version 2.5.1](https://github.com/AntennaPod/AntennaPod/pull/5243/). | | [AntennaPod](https://antennapod.org) | Initial purpose for this project, as a synchronization endpoint for this client.<br> Support is available [as of version 2.5.1](https://github.com/AntennaPod/AntennaPod/pull/5243/). |
| [KDE Kasts](https://apps.kde.org/de/kasts/) | Supported since version 21.12 | | [KDE Kasts](https://apps.kde.org/de/kasts/) | Supported since version 21.12 |
| [Garmin Podcasts](https://lucasasselli.github.io/garmin-podcasts/) | Only for [compatible Garmin watches](https://apps.garmin.com/en-US/apps/b5b85600-0625-43b6-89e9-1245bd44532c), supported since version 3.3.4 |
### Installation ### Installation
Either from the official Nextcloud app store ([link to app page](https://apps.nextcloud.com/apps/gpoddersync)) or by downloading the [latest release](https://github.com/thrillfall/nextcloud-gpodder/releases/latest) and extracting it into your Nextcloud apps/ directory. Either from the official Nextcloud app store ([link to app page](https://apps.nextcloud.com/apps/gpoddersync)) or by downloading the [latest release](https://github.com/thrillfall/nextcloud-gpodder/releases/latest) and extracting it into your Nextcloud apps/ directory.
@ -21,6 +22,35 @@ Either from the official Nextcloud app store ([link to app page](https://apps.ne
The API replicates this: https://gpoddernet.readthedocs.io/en/latest/api/reference/subscriptions.html The API replicates this: https://gpoddernet.readthedocs.io/en/latest/api/reference/subscriptions.html
#### Example requests:
```json
GET /index.php/apps/gpoddersync/subscriptions?since=1633240761
{
"add": [
"https://example.com/feed.xml",
"https://example.org/feed/"
],
"remove": [
"https://example.net/feed.rss"
],
"timestamp": 1663540502
}
```
```json
POST /index.php/apps/gpoddersync/subscription_change/create
{
"add": [
"https://example.com/feed.xml",
"https://example.org/feed/"
],
"remove": [
"https://example.net/feed.rss"
]
}
```
### episode action ### episode action
* **get episode actions**: `GET /index.php/apps/gpoddersync/episode_action` * **get episode actions**: `GET /index.php/apps/gpoddersync/episode_action`
* *(optional)* GET parameter `since` (UNIX time) * *(optional)* GET parameter `since` (UNIX time)
@ -28,12 +58,12 @@ The API replicates this: https://gpoddernet.readthedocs.io/en/latest/api/referen
* **create episode actions**: `POST /index.php/apps/gpoddersync/episode_action/create` * **create episode actions**: `POST /index.php/apps/gpoddersync/episode_action/create`
* fields: *podcast*, *episode*, *guid*, *action*, *timestamp*, *position*, *started*, *total* * fields: *podcast*, *episode*, *guid*, *action*, *timestamp*, *position*, *started*, *total*
* *position*, *started* and *total* are optional, default value is -1 * *position*, *started* and *total* are optional, default value is -1
* *guid* is also optional, but should be sent if available
* identification is done by *guid*, or *episode* if *guid* is missing
* returns JSON with current timestamp * returns JSON with current timestamp
The API replicates this: https://gpoddernet.readthedocs.io/en/latest/api/reference/events.html The API replicates this: https://gpoddernet.readthedocs.io/en/latest/api/reference/events.html
we also process the property `guid`
#### Example requests: #### Example requests:
```json ```json
GET /index.php/apps/gpoddersync/episode_action?since=1633240761 GET /index.php/apps/gpoddersync/episode_action?since=1633240761