Merge branch 'main' into patch
This commit is contained in:
commit
4b7e4204bb
20
.github/workflows/ci.yml
vendored
20
.github/workflows/ci.yml
vendored
@ -5,7 +5,7 @@ on:
|
|||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
- 'ci-*'
|
- "ci-*"
|
||||||
|
|
||||||
env:
|
env:
|
||||||
APP_NAME: gpoddersync
|
APP_NAME: gpoddersync
|
||||||
@ -18,9 +18,9 @@ jobs:
|
|||||||
# do not stop on another job's failure
|
# do not stop on another job's failure
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
php-versions: ['8.1', '8.2']
|
php-versions: ["8.1", "8.2"]
|
||||||
databases: ['sqlite']
|
databases: ["sqlite"]
|
||||||
server-versions: ['stable27', 'stable28', 'stable29']
|
server-versions: ["stable27", "stable28", "stable29", "stable30"]
|
||||||
|
|
||||||
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
|
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
|
||||||
|
|
||||||
@ -75,9 +75,9 @@ jobs:
|
|||||||
# do not stop on another job's failure
|
# do not stop on another job's failure
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
php-versions: ['8.1', '8.2']
|
php-versions: ["8.1", "8.2"]
|
||||||
databases: ['mysql']
|
databases: ["mysql"]
|
||||||
server-versions: ['stable27', 'stable28', 'stable29']
|
server-versions: ["stable27", "stable28", "stable29", "stable30"]
|
||||||
|
|
||||||
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
|
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
|
||||||
|
|
||||||
@ -141,9 +141,9 @@ jobs:
|
|||||||
# do not stop on another job's failure
|
# do not stop on another job's failure
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
php-versions: ['8.1', '8.2']
|
php-versions: ["8.1", "8.2"]
|
||||||
databases: ['pgsql']
|
databases: ["pgsql"]
|
||||||
server-versions: ['stable27', 'stable28', 'stable29']
|
server-versions: ["stable27", "stable28", "stable29", "stable30"]
|
||||||
|
|
||||||
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
|
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
|
||||||
|
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
## 3.10.0 - 2024-09-23
|
||||||
|
### Changed
|
||||||
|
- Add support for Nextcloud 30
|
||||||
|
|
||||||
## 3.9.0 - 2024-05-21
|
## 3.9.0 - 2024-05-21
|
||||||
### Changed
|
### Changed
|
||||||
- Add support for Nextcloud 29
|
- Add support for Nextcloud 29
|
||||||
@ -26,12 +30,12 @@
|
|||||||
|
|
||||||
## 3.7.3 - 2023-02-24
|
## 3.7.3 - 2023-02-24
|
||||||
### Fixed
|
### Fixed
|
||||||
- If EpisodeAction is updated with new episode url and there is a conflicting EpisodeAction with that same episode url the later will be deleted
|
- If EpisodeAction is updated with new episode url and there is a conflicting EpisodeAction with that same episode url the later will be deleted
|
||||||
|
|
||||||
|
|
||||||
## 3.7.2 - 2023-02-24
|
## 3.7.2 - 2023-02-24
|
||||||
### Fixed
|
### Fixed
|
||||||
- EpisodeActions are explicitly searched in database by guid. Episode url is used as fallback. Combined search produces multiple results thus broke synchronization
|
- EpisodeActions are explicitly searched in database by guid. Episode url is used as fallback. Combined search produces multiple results thus broke synchronization
|
||||||
|
|
||||||
## 3.7.1 - 2022-11-11
|
## 3.7.1 - 2022-11-11
|
||||||
### Fixed
|
### Fixed
|
||||||
@ -123,4 +127,3 @@
|
|||||||
## 1.0.7 – 2021-07-13
|
## 1.0.7 – 2021-07-13
|
||||||
### Changed
|
### Changed
|
||||||
- accept only arrays on subscription change endpoint (thanks https://github.com/mattsches)
|
- accept only arrays on subscription change endpoint (thanks https://github.com/mattsches)
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@ Nextcloud app that replicates basic gpodder.net api to sync podcast consumer app
|
|||||||
| [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 |
|
||||||
| [Podcast Merlin](https://github.com/yoyoooooooooo/Podcast-Merlin--Nextcloud-Gpodder-Client-For-Windows) | Full sync support podcast client for Windows |
|
| [Podcast Merlin](https://github.com/yoyoooooooooo/Podcast-Merlin--Nextcloud-Gpodder-Client-For-Windows) | Full sync support podcast client for Windows |
|
||||||
| [RePod](https://apps.nextcloud.com/apps/repod) | Nextcloud app for playing and managing podcasts with sync support |
|
| [RePod](https://apps.nextcloud.com/apps/repod) | Nextcloud app for playing and managing podcasts with sync support |
|
||||||
|
| [Cardo](https://cardo-podcast.github.io/#/cardo) | Podcast client with sync support, for Windows, Mac and Linux |
|
||||||
| ~~[Garmin Podcasts](https://lucasasselli.github.io/garmin-podcasts/)~~ | Repository archived, app is [no longer available](https://apps.garmin.com/en-US/apps/b5b85600-0625-43b6-89e9-1245bd44532c) |
|
| ~~[Garmin Podcasts](https://lucasasselli.github.io/garmin-podcasts/)~~ | Repository archived, app is [no longer available](https://apps.garmin.com/en-US/apps/b5b85600-0625-43b6-89e9-1245bd44532c) |
|
||||||
### 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.
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<name>GPodder Sync</name>
|
<name>GPodder Sync</name>
|
||||||
<summary>replicate basic GPodder.net API</summary>
|
<summary>replicate basic GPodder.net API</summary>
|
||||||
<description><![CDATA[Expose GPodder API to sync podcast consumer apps like AntennaPod]]></description>
|
<description><![CDATA[Expose GPodder API to sync podcast consumer apps like AntennaPod]]></description>
|
||||||
<version>3.9.0</version>
|
<version>3.10.0</version>
|
||||||
<licence>agpl</licence>
|
<licence>agpl</licence>
|
||||||
<author mail="thrillfall@disroot.org">Thrillfall</author>
|
<author mail="thrillfall@disroot.org">Thrillfall</author>
|
||||||
<namespace>GPodderSync</namespace>
|
<namespace>GPodderSync</namespace>
|
||||||
@ -18,7 +18,7 @@
|
|||||||
</documentation>
|
</documentation>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<php min-version="8.1"/>
|
<php min-version="8.1"/>
|
||||||
<nextcloud min-version="27" max-version="29"/>
|
<nextcloud min-version="27" max-version="30"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<repair-steps>
|
<repair-steps>
|
||||||
<post-migration>
|
<post-migration>
|
||||||
|
@ -5,21 +5,21 @@ namespace OCA\GPodderSync\Migration;
|
|||||||
|
|
||||||
use OCP\IDBConnection;
|
use OCP\IDBConnection;
|
||||||
use OCP\Migration\IOutput;
|
use OCP\Migration\IOutput;
|
||||||
use Safe\DateTime;
|
use DateTime;
|
||||||
|
|
||||||
class TimestampMigration implements \OCP\Migration\IRepairStep
|
class TimestampMigration implements \OCP\Migration\IRepairStep
|
||||||
{
|
{
|
||||||
private IDBConnection $db;
|
private IDBConnection $db;
|
||||||
|
|
||||||
public function __construct(IDBConnection $db)
|
public function __construct(IDBConnection $db)
|
||||||
{
|
{
|
||||||
$this->db = $db;
|
$this->db = $db;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
public function getName() : string
|
public function getName(): string
|
||||||
{
|
{
|
||||||
return "Migrate timestamp values to integer to store unix epoch";
|
return "Migrate timestamp values to integer to store unix epoch";
|
||||||
}
|
}
|
||||||
@ -29,22 +29,27 @@ class TimestampMigration implements \OCP\Migration\IRepairStep
|
|||||||
*/
|
*/
|
||||||
public function run(IOutput $output)
|
public function run(IOutput $output)
|
||||||
{
|
{
|
||||||
$queryTimestamps = 'SELECT id, timestamp FROM `*PREFIX*gpodder_episode_action` WHERE timestamp_epoch = 0';
|
$queryTimestamps =
|
||||||
$timestamps = $this->db->executeQuery($queryTimestamps)->fetchAll();
|
"SELECT id, timestamp FROM `*PREFIX*gpodder_episode_action` WHERE timestamp_epoch = 0";
|
||||||
|
$timestamps = $this->db->executeQuery($queryTimestamps)->fetchAll();
|
||||||
|
|
||||||
$result = 0;
|
$result = 0;
|
||||||
|
|
||||||
foreach ($timestamps as $timestamp) {
|
foreach ($timestamps as $timestamp) {
|
||||||
$timestampEpoch = (new DateTime($timestamp["timestamp"]))->format("U");
|
$timestampEpoch = (new DateTime($timestamp["timestamp"]))->format(
|
||||||
$sql = 'UPDATE `*PREFIX*gpodder_episode_action` '
|
"U"
|
||||||
. 'SET `timestamp_epoch` = ' . $timestampEpoch . ' '
|
);
|
||||||
. 'WHERE `id` = ' . $timestamp["id"];
|
$sql =
|
||||||
|
"UPDATE `*PREFIX*gpodder_episode_action` " .
|
||||||
|
"SET `timestamp_epoch` = " .
|
||||||
|
$timestampEpoch .
|
||||||
|
" " .
|
||||||
|
"WHERE `id` = " .
|
||||||
|
$timestamp["id"];
|
||||||
|
|
||||||
$result += $this->db->executeUpdate($sql);
|
$result += $this->db->executeUpdate($sql);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
return $result;
|
||||||
|
|
||||||
return $result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user