Merge branch 'main' into patch

This commit is contained in:
Michel Roux 2024-10-17 10:50:52 +02:00
commit 4b7e4204bb
5 changed files with 45 additions and 36 deletions

View File

@ -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 }}

View File

@ -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)

View File

@ -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.

View File

@ -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>

View File

@ -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;
} }
} }