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

View File

@ -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
@ -123,4 +127,3 @@
## 1.0.7 2021-07-13
### Changed
- 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 |
| [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.

View File

@ -5,7 +5,7 @@
<name>GPodder Sync</name>
<summary>replicate basic GPodder.net API</summary>
<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>
<author mail="thrillfall@disroot.org">Thrillfall</author>
<namespace>GPodderSync</namespace>
@ -18,7 +18,7 @@
</documentation>
<dependencies>
<php min-version="8.1"/>
<nextcloud min-version="27" max-version="29"/>
<nextcloud min-version="27" max-version="30"/>
</dependencies>
<repair-steps>
<post-migration>

View File

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