From 09d7225bd0079530d5e7bb4e4e1f726a6e59fabd Mon Sep 17 00:00:00 2001 From: fyksen Date: Mon, 23 Sep 2024 12:45:30 +0200 Subject: [PATCH 1/6] Update info.xml to support Nextcloud 30 Have had it run on Nextcloud 30 for some days now, without any problems. From the changelog on Nextcloud 30 it doesn't look like any changes are needed for this app? https://nextcloud.com/changelog/ --- appinfo/info.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appinfo/info.xml b/appinfo/info.xml index 26b0b09..b6f1a84 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -18,7 +18,7 @@ - + From df17366e0fe7befdca9ea3b1d8b933e6b70c1e1c Mon Sep 17 00:00:00 2001 From: JonOfUs Date: Mon, 23 Sep 2024 17:02:55 +0200 Subject: [PATCH 2/6] Add stable30 to CI tests --- .github/workflows/ci.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) 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 }} From e8611c6e9912291913e8548a9c73f1a8a3cc34ee Mon Sep 17 00:00:00 2001 From: JonOfUs Date: Mon, 23 Sep 2024 17:19:34 +0200 Subject: [PATCH 3/6] Remove usage of safe-library for compability --- lib/Migration/TimestampMigration.php | 47 +++++++++++++++------------- 1 file changed, 26 insertions(+), 21 deletions(-) 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; } - } From 009b5929908dc897d7bacbc37af10871fc5d55c8 Mon Sep 17 00:00:00 2001 From: JonOfUs Date: Mon, 23 Sep 2024 17:31:07 +0200 Subject: [PATCH 4/6] Prepare release of 3.10.0 --- CHANGELOG.md | 9 ++++++--- appinfo/info.xml | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) 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/appinfo/info.xml b/appinfo/info.xml index b6f1a84..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 From 1d430ba279c3569ab9c5b5602a3e51cfc72a71a0 Mon Sep 17 00:00:00 2001 From: n0vella Date: Tue, 27 Aug 2024 18:14:39 +0200 Subject: [PATCH 5/6] Added new Cardo podcast player to compatible clients --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bdb4f52..893322e 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://n0vella.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. From a7729b29b0c46082d61271f0cdfd24ee5587037c Mon Sep 17 00:00:00 2001 From: Cardo Date: Sat, 21 Sep 2024 16:57:10 +0200 Subject: [PATCH 6/6] Updated Cardo URL --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 893322e..b110a23 100644 --- a/README.md +++ b/README.md @@ -8,7 +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://n0vella.github.io/#/cardo) | Podcast client with sync support, for Windows, Mac and Linux | +| [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.