diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 89a420a..4dfedd9 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -5,7 +5,7 @@ on:
push:
branches:
- main
- - 'ci-*'
+ - "ci-*"
env:
APP_NAME: gpoddersync
@@ -18,9 +18,9 @@ jobs:
# do not stop on another job's failure
fail-fast: false
matrix:
- php-versions: ['8.1', '8.2']
- databases: ['sqlite']
- server-versions: ['stable27', 'stable28', 'stable29']
+ php-versions: ["8.1", "8.2"]
+ databases: ["sqlite"]
+ server-versions: ["stable27", "stable28", "stable29", "stable30"]
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
@@ -75,9 +75,9 @@ jobs:
# do not stop on another job's failure
fail-fast: false
matrix:
- php-versions: ['8.1', '8.2']
- databases: ['mysql']
- server-versions: ['stable27', 'stable28', 'stable29']
+ php-versions: ["8.1", "8.2"]
+ databases: ["mysql"]
+ server-versions: ["stable27", "stable28", "stable29", "stable30"]
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
@@ -141,9 +141,9 @@ jobs:
# do not stop on another job's failure
fail-fast: false
matrix:
- php-versions: ['8.1', '8.2']
- databases: ['pgsql']
- server-versions: ['stable27', 'stable28', 'stable29']
+ php-versions: ["8.1", "8.2"]
+ databases: ["pgsql"]
+ server-versions: ["stable27", "stable28", "stable29", "stable30"]
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2708f19..c95a0a0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,8 @@
# Changelog
+## 3.10.0 - 2024-09-23
+### Changed
+- Add support for Nextcloud 30
+
## 3.9.0 - 2024-05-21
### Changed
- Add support for Nextcloud 29
@@ -26,12 +30,12 @@
## 3.7.3 - 2023-02-24
### 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
### 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
### Fixed
@@ -123,4 +127,3 @@
## 1.0.7 – 2021-07-13
### Changed
- accept only arrays on subscription change endpoint (thanks https://github.com/mattsches)
-
diff --git a/README.md b/README.md
index bdb4f52..b110a23 100644
--- a/README.md
+++ b/README.md
@@ -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 |
| [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 |
+| [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) |
### 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.
diff --git a/appinfo/info.xml b/appinfo/info.xml
index 26b0b09..3e9b7b3 100644
--- a/appinfo/info.xml
+++ b/appinfo/info.xml
@@ -5,7 +5,7 @@
GPodder Sync
replicate basic GPodder.net API
- 3.9.0
+ 3.10.0
agpl
Thrillfall
GPodderSync
@@ -18,7 +18,7 @@
-
+
diff --git a/lib/Migration/TimestampMigration.php b/lib/Migration/TimestampMigration.php
index dc6fb5f..3350657 100644
--- a/lib/Migration/TimestampMigration.php
+++ b/lib/Migration/TimestampMigration.php
@@ -5,21 +5,21 @@ namespace OCA\GPodderSync\Migration;
use OCP\IDBConnection;
use OCP\Migration\IOutput;
-use Safe\DateTime;
+use DateTime;
class TimestampMigration implements \OCP\Migration\IRepairStep
{
- private IDBConnection $db;
+ private IDBConnection $db;
- public function __construct(IDBConnection $db)
- {
- $this->db = $db;
- }
+ public function __construct(IDBConnection $db)
+ {
+ $this->db = $db;
+ }
- /**
+ /**
* @inheritDoc
*/
- public function getName() : string
+ public function getName(): string
{
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)
{
- $queryTimestamps = 'SELECT id, timestamp FROM `*PREFIX*gpodder_episode_action` WHERE timestamp_epoch = 0';
- $timestamps = $this->db->executeQuery($queryTimestamps)->fetchAll();
+ $queryTimestamps =
+ "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) {
- $timestampEpoch = (new DateTime($timestamp["timestamp"]))->format("U");
- $sql = 'UPDATE `*PREFIX*gpodder_episode_action` '
- . 'SET `timestamp_epoch` = ' . $timestampEpoch . ' '
- . 'WHERE `id` = ' . $timestamp["id"];
+ foreach ($timestamps as $timestamp) {
+ $timestampEpoch = (new DateTime($timestamp["timestamp"]))->format(
+ "U"
+ );
+ $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;
}
-
}