Compare commits

...

61 Commits
3.5.5 ... main

Author SHA1 Message Date
b5bb069198 Merge pull request 'chore(deps): update dependency @types/node to ~20.17.28' () from renovate/node-20.x into main
Reviewed-on: 
2025-03-28 08:07:56 +00:00
58b02ee2cd chore(deps): update dependency @types/node to ~20.17.28 2025-03-28 00:05:04 +00:00
324de85667 Merge pull request 'chore(deps): update dependency vite to ^6.2.3' () from renovate/vite-6.x into main
Reviewed-on: 
2025-03-26 09:19:52 +00:00
1b56e4385d Merge pull request 'chore(deps): update dependency eslint-plugin-prettier to ^5.2.5' () from renovate/eslint-plugin-prettier-5.x into main
Reviewed-on: 
2025-03-26 09:19:39 +00:00
0604528562 chore(deps): update dependency vite to ^6.2.3 2025-03-26 00:05:49 +00:00
84a2be8338 chore(deps): update dependency eslint-plugin-prettier to ^5.2.5 2025-03-26 00:05:43 +00:00
df3c31e23e Merge pull request 'chore(deps): update dependency eslint-plugin-prettier to ^5.2.4' () from renovate/eslint-plugin-prettier-5.x into main
Reviewed-on: 
2025-03-25 08:34:59 +00:00
391eb1f317 Merge pull request 'chore(deps): update dependency @types/node to ~20.17.27' () from renovate/node-20.x into main
Reviewed-on: 
2025-03-25 08:34:46 +00:00
6649a2e841 chore(deps): update dependency eslint-plugin-prettier to ^5.2.4 2025-03-25 00:05:29 +00:00
70209acb57 chore(deps): update dependency @types/node to ~20.17.27 2025-03-25 00:05:23 +00:00
2733206ae9 Merge pull request 'chore(deps): update dependency phpstan/phpstan to ~1.12.23' () from renovate/phpstan-phpstan-1.x into main
Reviewed-on: 
2025-03-24 08:12:02 +00:00
778220c9f1 Merge pull request 'chore(deps): update dependency @formatjs/intl-segmenter to ^11.7.10' () from renovate/formatjs-intl-segmenter-11.x into main
Reviewed-on: 
2025-03-24 08:10:51 +00:00
0c13fd2af6 chore(deps): update dependency phpstan/phpstan to ~1.12.23 2025-03-24 00:06:36 +00:00
2b0d4bf64e chore(deps): update dependency @formatjs/intl-segmenter to ^11.7.10 2025-03-24 00:06:10 +00:00
03312d4f8b chore: ⬆️ update locks 2025-03-22 00:05:50 +01:00
0bfbba130b Merge pull request 'chore(deps): update dependency nextcloud/ocp to ^31.0.2' () from renovate/nextcloud-ocp-31.x into main
Reviewed-on: 
2025-03-21 13:01:35 +00:00
0f3b47cb63 Merge pull request 'chore(deps): update dependency @types/node to ~20.17.25' () from renovate/node-20.x into main
Reviewed-on: 
2025-03-21 13:01:25 +00:00
1ed39f2d83 chore(deps): update dependency nextcloud/ocp to ^31.0.2 2025-03-21 11:37:37 +00:00
7045a9e517 chore(deps): update dependency @types/node to ~20.17.25 2025-03-21 11:37:24 +00:00
1e2baf04ef Merge pull request 'chore(deps): update dependency vite to ^6.2.2' () from renovate/vite-6.x into main
Reviewed-on: 
2025-03-15 12:24:35 +00:00
c1d6b3dd4d Merge pull request 'chore(deps): update dependency nextcloud/ocp to ^31.0.1' () from renovate/nextcloud-ocp-31.x into main
Reviewed-on: 
2025-03-15 12:24:25 +00:00
ee5d979d7f chore(deps): update dependency vite to ^6.2.2 2025-03-15 00:06:07 +00:00
9b99fd26a4 chore(deps): update dependency nextcloud/ocp to ^31.0.1 2025-03-15 00:05:56 +00:00
c44ba8fba6 Merge pull request 'chore(deps): update dependency @nextcloud/vite-config to ^2.3.2' () from renovate/nextcloud-vite-config-2.x into main
Reviewed-on: 
2025-03-12 00:57:08 +00:00
15a4862785 chore(deps): update dependency @nextcloud/vite-config to ^2.3.2 2025-03-12 00:04:52 +00:00
dd7fdfa638 Merge pull request 'chore(deps): update dependency phpstan/phpstan to ~1.12.21' () from renovate/phpstan-phpstan-1.x into main
Reviewed-on: 
2025-03-10 01:35:35 +00:00
15113de92a chore(deps): update dependency phpstan/phpstan to ~1.12.21 2025-03-10 00:04:23 +00:00
195b5a83e6 Merge pull request 'chore(deps): update dependency @types/node to ~20.17.24' () from renovate/node-20.x into main
Reviewed-on: 
2025-03-09 11:53:12 +00:00
82bea7dcf0 chore(deps): update dependency @types/node to ~20.17.24 2025-03-09 00:04:22 +00:00
6dd8bb4686 Merge pull request 'chore(deps): update dependency vite to ^6.2.1' () from renovate/vite-6.x into main
Reviewed-on: 
2025-03-08 00:26:28 +00:00
3f0d58469e Merge pull request 'chore(deps): update dependency eslint-config-prettier to ^10.1.1' () from renovate/eslint-config-prettier-10.x into main
Reviewed-on: 
2025-03-08 00:26:14 +00:00
6278c6f748 chore(deps): update dependency eslint-config-prettier to ^10.1.1 2025-03-08 00:06:24 +00:00
d80e73cee5 chore(deps): update dependency vite to ^6.2.1 2025-03-08 00:06:17 +00:00
3197873d0f fix: fix phpstan validation on responses 2025-03-06 18:36:38 +01:00
6d27ec4ac0 Merge pull request 'chore(deps): update dependency phpstan/phpstan to ~1.12.20' () from renovate/phpstan-phpstan-1.x into main
Reviewed-on: 
2025-03-06 09:49:36 +00:00
de622e8a78 chore(deps): update dependency phpstan/phpstan to ~1.12.20 2025-03-06 00:05:01 +00:00
f66a70e335 fix: 📝 fix changelog 2025-03-05 16:24:28 +01:00
a7cb4cc45c docs: 🔖 update changelog from 3.5.6 2025-03-05 16:23:03 +01:00
23051c75e2 fix: add missing dep @types/node 2025-03-05 11:09:13 +01:00
2a6a008e8f chore: ⬆️ upgrade deps 2025-03-05 10:52:27 +01:00
475732fce2 fix: 🐛 No pointer on play / stop icon on episodes list fix 2025-03-05 10:52:12 +01:00
2272cb5511 Merge pull request 'chore(deps): update dependency vue-tsc to ^2.2.8' () from renovate/vue-tsc-2.x into main
Reviewed-on: 
2025-03-03 06:42:19 +00:00
f4db651cc4 chore(deps): update dependency vue-tsc to ^2.2.8 2025-03-03 00:04:22 +00:00
cea8480359 Merge pull request 'chore(deps): update dependency vue-tsc to ^2.2.6' () from renovate/vue-tsc-2.x into main
Reviewed-on: 
2025-03-02 09:11:54 +00:00
e744ebd047 chore(deps): update dependency vue-tsc to ^2.2.6 2025-03-02 00:09:02 +00:00
ecdfededd2 Merge pull request 'chore(deps): update nextcloud docker tag to v31' () from renovate/nextcloud-31.x into main
Reviewed-on: 
2025-02-27 14:26:08 +00:00
4720835a0c Merge pull request 'chore(deps): update dependency eslint-config-prettier to ^10.0.2' () from renovate/eslint-config-prettier-10.x into main
Reviewed-on: 
2025-02-27 14:25:56 +00:00
a1695ff92c chore(deps): update nextcloud docker tag to v31 2025-02-27 00:04:49 +00:00
946a31ecb5 chore(deps): update dependency eslint-config-prettier to ^10.0.2 2025-02-27 00:04:46 +00:00
de8cba9d2d Merge pull request 'chore(deps): update dependency nextcloud/ocp to v31' () from renovate/nextcloud-ocp-31.x into main
Reviewed-on: 
2025-02-26 14:21:37 +00:00
b0a1280fd0 Merge pull request 'chore(deps): update dependency vite to ^6.2.0' () from renovate/vite-6.x into main
Reviewed-on: 
2025-02-26 14:17:26 +00:00
fbe935ef13 chore(deps): update dependency nextcloud/ocp to v31 2025-02-26 00:05:12 +00:00
44fdae5b2d chore(deps): update dependency vite to ^6.2.0 2025-02-26 00:04:59 +00:00
749c9639bf Merge pull request 'chore(deps): update dependency vue-tsc to ^2.2.4' () from renovate/vue-tsc-2.x into main
Reviewed-on: 
2025-02-24 08:44:23 +00:00
39fa1b8549 chore(deps): update dependency vue-tsc to ^2.2.4 2025-02-24 00:04:25 +00:00
592577086c Merge pull request 'chore(deps): update dependency vite to ^6.1.1' () from renovate/vite-6.x into main
Reviewed-on: 
2025-02-20 00:12:29 +00:00
705b49268e Merge pull request 'chore(deps): update dependency phpstan/phpstan to ~1.12.19' () from renovate/phpstan-phpstan-1.x into main
Reviewed-on: 
2025-02-20 00:12:22 +00:00
38d13e0f85 chore(deps): update dependency vite to ^6.1.1 2025-02-20 00:04:58 +00:00
cb76f10896 chore(deps): update dependency phpstan/phpstan to ~1.12.19 2025-02-20 00:04:50 +00:00
4e818db3d6 Merge pull request 'chore(deps): update dependency @nextcloud/eslint-config to ^8.4.2' () from renovate/nextcloud-eslint-config-8.x into main
Reviewed-on: 
2025-02-17 07:12:26 +00:00
b9d2fc5975 chore(deps): update dependency @nextcloud/eslint-config to ^8.4.2 2025-02-17 00:03:37 +00:00
16 changed files with 1508 additions and 610 deletions

@ -14,7 +14,7 @@ jobs:
php:
runs-on: ubuntu-latest
container: nextcloud:30
container: nextcloud:31
steps:
- run: apt-get update
- run: apt-get install -y git nodejs
@ -47,7 +47,7 @@ jobs:
release:
if: gitea.ref_type == 'tag'
runs-on: ubuntu-latest
container: nextcloud:30
container: nextcloud:31
steps:
- run: apt-get update
- run: apt-get install -y git nodejs

@ -1,3 +1,12 @@
## 3.5.6 - March comes in like a lion - 2025-03-05
## Changed
- ⬆️ Update @nextcloud/vue
## Fixed
- 🮰 No pointer on play / stop icon on episodes list
[#264](https://git.crystalyx.net/Xefir/repod/issues/264)
## 3.5.5 - Alone in the dark - 2025-02-14
## Changed

@ -1,4 +1,4 @@
FROM nextcloud:30
FROM nextcloud:31
ARG APP_NAME=repod
ENV NEXTCLOUD_UPDATE=1

@ -14,7 +14,7 @@
## Requirements
You need to have [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installed to use this app!]]></description>
<version>3.5.5</version>
<version>3.5.6</version>
<licence>agpl</licence>
<author mail="xefir@crystalyx.net" homepage="https://crystalyx.net">Michel Roux</author>
<namespace>RePod</namespace>

@ -21,9 +21,10 @@
},
"require-dev": {
"nextcloud/coding-standard": "^1.3.2",
"nextcloud/ocp": "^30.0.6",
"nextcloud/ocp": "^31.0.2",
"nextcloud/rector": "^0.3.1",
"phpstan/phpstan": "~1.12.18",
"phpstan/phpstan": "~1.12.23",
"phpstan/phpstan-deprecation-rules": "~1.2.1",
"rector/rector": "~1.2.10",
"roave/security-advisories": "dev-latest"
},

166
composer.lock generated

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "86cc7e94ea3eb4dc1a44d0d20fc81674",
"content-hash": "a5c5cbe8c8f58767bb5a924a57cb6c3a",
"packages": [],
"packages-dev": [
{
@ -97,29 +97,29 @@
},
{
"name": "nextcloud/ocp",
"version": "v30.0.6",
"version": "v31.0.2",
"source": {
"type": "git",
"url": "https://github.com/nextcloud-deps/ocp.git",
"reference": "850819a2bd061dca3c6a839d44bb6f22f188febc"
"reference": "d8f9b556898f11d26f5884ea6754b840fa02335e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/850819a2bd061dca3c6a839d44bb6f22f188febc",
"reference": "850819a2bd061dca3c6a839d44bb6f22f188febc",
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/d8f9b556898f11d26f5884ea6754b840fa02335e",
"reference": "d8f9b556898f11d26f5884ea6754b840fa02335e",
"shasum": ""
},
"require": {
"php": "~8.0 || ~8.1 || ~8.2 || ~8.3",
"php": "~8.1 || ~8.2 || ~8.3 || ~8.4",
"psr/clock": "^1.0",
"psr/container": "^2.0.2",
"psr/event-dispatcher": "^1.0",
"psr/log": "^2.0.0"
"psr/log": "^3.0.2"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-stable30": "30.0.0-dev"
"dev-stable31": "31.0.0-dev"
}
},
"notification-url": "https://packagist.org/downloads/",
@ -130,14 +130,18 @@
{
"name": "Christoph Wurst",
"email": "christoph@winzerhof-wurst.at"
},
{
"name": "Joas Schilling",
"email": "coding@schilljs.com"
}
],
"description": "Composer package containing Nextcloud's public API (classes, interfaces)",
"description": "Composer package containing Nextcloud's public OCP API and the unstable NCU API",
"support": {
"issues": "https://github.com/nextcloud-deps/ocp/issues",
"source": "https://github.com/nextcloud-deps/ocp/tree/v30.0.6"
"source": "https://github.com/nextcloud-deps/ocp/tree/v31.0.2"
},
"time": "2025-01-27T08:38:56+00:00"
"time": "2025-03-07T00:46:02+00:00"
},
{
"name": "nextcloud/rector",
@ -203,16 +207,16 @@
},
{
"name": "php-cs-fixer/shim",
"version": "v3.68.5",
"version": "v3.73.1",
"source": {
"type": "git",
"url": "https://github.com/PHP-CS-Fixer/shim.git",
"reference": "4a0a5cfd39b0677017a85f0fc252d3e8a6a6c02c"
"reference": "6bcfe9ff734019315cf9c6ea4f43cbcd87d1cc82"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHP-CS-Fixer/shim/zipball/4a0a5cfd39b0677017a85f0fc252d3e8a6a6c02c",
"reference": "4a0a5cfd39b0677017a85f0fc252d3e8a6a6c02c",
"url": "https://api.github.com/repos/PHP-CS-Fixer/shim/zipball/6bcfe9ff734019315cf9c6ea4f43cbcd87d1cc82",
"reference": "6bcfe9ff734019315cf9c6ea4f43cbcd87d1cc82",
"shasum": ""
},
"require": {
@ -249,22 +253,22 @@
"description": "A tool to automatically fix PHP code style",
"support": {
"issues": "https://github.com/PHP-CS-Fixer/shim/issues",
"source": "https://github.com/PHP-CS-Fixer/shim/tree/v3.68.5"
"source": "https://github.com/PHP-CS-Fixer/shim/tree/v3.73.1"
},
"time": "2025-01-30T17:01:41+00:00"
"time": "2025-03-19T23:42:33+00:00"
},
{
"name": "phpstan/phpstan",
"version": "1.12.18",
"version": "1.12.23",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
"reference": "fef9f07814a573399229304bb0046affdf558812"
"reference": "29201e7a743a6ab36f91394eab51889a82631428"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/fef9f07814a573399229304bb0046affdf558812",
"reference": "fef9f07814a573399229304bb0046affdf558812",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/29201e7a743a6ab36f91394eab51889a82631428",
"reference": "29201e7a743a6ab36f91394eab51889a82631428",
"shasum": ""
},
"require": {
@ -309,7 +313,54 @@
"type": "github"
}
],
"time": "2025-02-13T12:44:44+00:00"
"time": "2025-03-23T14:57:32+00:00"
},
{
"name": "phpstan/phpstan-deprecation-rules",
"version": "1.2.1",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan-deprecation-rules.git",
"reference": "f94d246cc143ec5a23da868f8f7e1393b50eaa82"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan-deprecation-rules/zipball/f94d246cc143ec5a23da868f8f7e1393b50eaa82",
"reference": "f94d246cc143ec5a23da868f8f7e1393b50eaa82",
"shasum": ""
},
"require": {
"php": "^7.2 || ^8.0",
"phpstan/phpstan": "^1.12"
},
"require-dev": {
"php-parallel-lint/php-parallel-lint": "^1.2",
"phpstan/phpstan-phpunit": "^1.0",
"phpunit/phpunit": "^9.5"
},
"type": "phpstan-extension",
"extra": {
"phpstan": {
"includes": [
"rules.neon"
]
}
},
"autoload": {
"psr-4": {
"PHPStan\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "PHPStan rules for detecting usage of deprecated classes, methods, properties, constants and traits.",
"support": {
"issues": "https://github.com/phpstan/phpstan-deprecation-rules/issues",
"source": "https://github.com/phpstan/phpstan-deprecation-rules/tree/1.2.1"
},
"time": "2024-09-11T15:52:35+00:00"
},
{
"name": "psr/clock",
@ -464,16 +515,16 @@
},
{
"name": "psr/log",
"version": "2.0.0",
"version": "3.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
"reference": "ef29f6d262798707a9edd554e2b82517ef3a9376"
"reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376",
"reference": "ef29f6d262798707a9edd554e2b82517ef3a9376",
"url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
"reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
"shasum": ""
},
"require": {
@ -482,7 +533,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
"dev-master": "3.x-dev"
}
},
"autoload": {
@ -508,9 +559,9 @@
"psr-3"
],
"support": {
"source": "https://github.com/php-fig/log/tree/2.0.0"
"source": "https://github.com/php-fig/log/tree/3.0.2"
},
"time": "2021-07-14T16:41:46+00:00"
"time": "2024-09-11T13:17:53+00:00"
},
{
"name": "rector/rector",
@ -577,12 +628,12 @@
"source": {
"type": "git",
"url": "https://github.com/Roave/SecurityAdvisories.git",
"reference": "3dafa2bcf6675854ed6410d1c84c0f71f819fc26"
"reference": "786548323f3a9452244ddf83672e34c260d6b717"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/3dafa2bcf6675854ed6410d1c84c0f71f819fc26",
"reference": "3dafa2bcf6675854ed6410d1c84c0f71f819fc26",
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/786548323f3a9452244ddf83672e34c260d6b717",
"reference": "786548323f3a9452244ddf83672e34c260d6b717",
"shasum": ""
},
"conflict": {
@ -674,22 +725,24 @@
"cesnet/simplesamlphp-module-proxystatistics": "<3.1",
"chriskacerguis/codeigniter-restserver": "<=2.7.1",
"civicrm/civicrm-core": ">=4.2,<4.2.9|>=4.3,<4.3.3",
"ckeditor/ckeditor": "<4.24",
"ckeditor/ckeditor": "<4.25",
"clickstorm/cs-seo": ">=6,<6.7|>=7,<7.4|>=8,<8.3|>=9,<9.2",
"cockpit-hq/cockpit": "<2.7|==2.7",
"codeception/codeception": "<3.1.3|>=4,<4.1.22",
"codeigniter/framework": "<3.1.9",
"codeigniter4/framework": "<4.5.8",
"codeigniter4/shield": "<1.0.0.0-beta8",
"codiad/codiad": "<=2.8.4",
"codingms/additional-tca": ">=1.7,<1.15.17|>=1.16,<1.16.9",
"components/jquery": ">=1.0.3,<3.5",
"composer/composer": "<1.10.27|>=2,<2.2.24|>=2.3,<2.7.7",
"concrete5/concrete5": "<9.3.4",
"concrete5/concrete5": "<9.4.0.0-RC1-dev",
"concrete5/core": "<8.5.8|>=9,<9.1",
"contao-components/mediaelement": ">=2.14.2,<2.21.1",
"contao/comments-bundle": ">=2,<4.13.40|>=5.0.0.0-RC1-dev,<5.3.4",
"contao/contao": "<=5.4.1",
"contao/core": "<3.5.39",
"contao/core-bundle": "<4.13.49|>=5,<5.3.15|>=5.4,<5.4.3",
"contao/core-bundle": "<4.13.54|>=5,<5.3.30|>=5.4,<5.5.6",
"contao/listing-bundle": ">=3,<=3.5.30|>=4,<4.4.8",
"contao/managed-edition": "<=1.5",
"corveda/phpsandbox": "<1.3.5",
@ -781,9 +834,9 @@
"fisharebest/webtrees": "<=2.1.18",
"fixpunkt/fp-masterquiz": "<2.2.1|>=3,<3.5.2",
"fixpunkt/fp-newsletter": "<1.1.1|>=2,<2.1.2|>=2.2,<3.2.6",
"flarum/core": "<1.8.5",
"flarum/core": "<1.8.10",
"flarum/flarum": "<0.1.0.0-beta8",
"flarum/framework": "<1.8.5",
"flarum/framework": "<1.8.10",
"flarum/mentions": "<1.6.3",
"flarum/sticky": ">=0.1.0.0-beta14,<=0.1.0.0-beta15",
"flarum/tags": "<=0.1.0.0-beta13",
@ -804,14 +857,14 @@
"friendsofsymfony1/symfony1": ">=1.1,<1.5.19",
"friendsoftypo3/mediace": ">=7.6.2,<7.6.5",
"friendsoftypo3/openid": ">=4.5,<4.5.31|>=4.7,<4.7.16|>=6,<6.0.11|>=6.1,<6.1.6",
"froala/wysiwyg-editor": "<3.2.7|>=4.0.1,<=4.1.3",
"froxlor/froxlor": "<=2.2.0.0-RC3",
"froala/wysiwyg-editor": "<=4.3",
"froxlor/froxlor": "<=2.2.5",
"frozennode/administrator": "<=5.0.12",
"fuel/core": "<1.8.1",
"funadmin/funadmin": "<=5.0.2",
"gaoming13/wechat-php-sdk": "<=1.10.2",
"genix/cms": "<=1.1.11",
"getformwork/formwork": "<1.13.1|==2.0.0.0-beta1",
"getformwork/formwork": "<1.13.1|>=2.0.0.0-beta1,<2.0.0.0-beta4",
"getgrav/grav": "<1.7.46",
"getkirby/cms": "<=3.6.6.5|>=3.7,<=3.7.5.4|>=3.8,<=3.8.4.3|>=3.9,<=3.9.8.1|>=3.10,<=3.10.1|>=4,<=4.3",
"getkirby/kirby": "<=2.5.12",
@ -910,7 +963,7 @@
"lara-zeus/artemis": ">=1,<=1.0.6",
"lara-zeus/dynamic-dashboard": ">=3,<=3.0.1",
"laravel/fortify": "<1.11.1",
"laravel/framework": "<6.20.45|>=7,<7.30.7|>=8,<8.83.28|>=9,<9.52.17|>=10,<10.48.23|>=11,<11.31",
"laravel/framework": "<10.48.29|>=11,<11.44.1|>=12,<12.1.1",
"laravel/laravel": ">=5.4,<5.4.22",
"laravel/pulse": "<1.3.1",
"laravel/reverb": "<1.4",
@ -921,6 +974,7 @@
"league/commonmark": "<2.6",
"league/flysystem": "<1.1.4|>=2,<2.1.1",
"league/oauth2-server": ">=8.3.2,<8.4.2|>=8.5,<8.5.3",
"leantime/leantime": "<3.3",
"lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3",
"libreform/libreform": ">=2,<=2.0.8",
"librenms/librenms": "<2017.08.18",
@ -929,9 +983,11 @@
"limesurvey/limesurvey": "<6.5.12",
"livehelperchat/livehelperchat": "<=3.91",
"livewire/livewire": "<2.12.7|>=3.0.0.0-beta1,<3.5.2",
"livewire/volt": "<1.7",
"lms/routes": "<2.1.1",
"localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2",
"luyadev/yii-helpers": "<1.2.1",
"macropay-solutions/laravel-crud-wizard-free": "<3.4.17",
"maestroerror/php-heic-to-jpg": "<1.0.5",
"magento/community-edition": "<2.4.5|==2.4.5|>=2.4.5.0-patch1,<2.4.5.0-patch11|==2.4.6|>=2.4.6.0-patch1,<2.4.6.0-patch9|>=2.4.7.0-beta1,<2.4.7.0-patch4|>=2.4.8.0-beta1,<2.4.8.0-beta2",
"magento/core": "<=1.9.4.5",
@ -945,7 +1001,7 @@
"mantisbt/mantisbt": "<=2.26.3",
"marcwillmann/turn": "<0.3.3",
"matyhtf/framework": "<3.0.6",
"mautic/core": "<4.4.13|>=5,<5.1.1",
"mautic/core": "<5.2.3",
"mautic/core-lib": ">=1.0.0.0-beta,<4.4.13|>=5.0.0.0-alpha,<5.1.1",
"maximebf/debugbar": "<1.19",
"mdanter/ecc": "<2",
@ -968,11 +1024,11 @@
"miniorange/miniorange-saml": "<1.4.3",
"mittwald/typo3_forum": "<1.2.1",
"mobiledetect/mobiledetectlib": "<2.8.32",
"modx/revolution": "<=2.8.3.0-patch",
"modx/revolution": "<=3.1",
"mojo42/jirafeau": "<4.4",
"mongodb/mongodb": ">=1,<1.9.2",
"monolog/monolog": ">=1.8,<1.12",
"moodle/moodle": "<4.3.8|>=4.4,<4.4.4",
"moodle/moodle": "<4.3.10|>=4.4,<4.4.6|>=4.5.0.0-beta,<4.5.2",
"mos/cimage": "<0.7.19",
"movim/moxl": ">=0.8,<=0.10",
"movingbytes/social-network": "<=1.2.1",
@ -1020,7 +1076,7 @@
"open-web-analytics/open-web-analytics": "<1.7.4",
"opencart/opencart": ">=0",
"openid/php-openid": "<2.3",
"openmage/magento-lts": "<20.10.1",
"openmage/magento-lts": "<20.12.3",
"opensolutions/vimbadmin": "<=3.0.15",
"opensource-workshop/connect-cms": "<1.8.7|>=2,<2.4.7",
"orchid/platform": ">=8,<14.43",
@ -1062,7 +1118,7 @@
"phpmyadmin/phpmyadmin": "<5.2.2",
"phpmyfaq/phpmyfaq": "<3.2.5|==3.2.5|>=3.2.10,<=4.0.1",
"phpoffice/common": "<0.2.9",
"phpoffice/phpexcel": "<1.8.1",
"phpoffice/phpexcel": "<=1.8.2",
"phpoffice/phpspreadsheet": "<1.29.9|>=2,<2.1.8|>=2.2,<2.3.7|>=3,<3.9",
"phpseclib/phpseclib": "<2.0.47|>=3,<3.0.36",
"phpservermon/phpservermon": "<3.6",
@ -1079,11 +1135,11 @@
"pimcore/demo": "<10.3",
"pimcore/ecommerce-framework-bundle": "<1.0.10",
"pimcore/perspective-editor": "<1.5.1",
"pimcore/pimcore": "<11.2.4|>=11.4.2,<11.5.3",
"pimcore/pimcore": "<11.5.4",
"pixelfed/pixelfed": "<0.11.11",
"plotly/plotly.js": "<2.25.2",
"pocketmine/bedrock-protocol": "<8.0.2",
"pocketmine/pocketmine-mp": "<5.11.2",
"pocketmine/pocketmine-mp": "<5.25.2",
"pocketmine/raklib": ">=0.14,<0.14.6|>=0.15,<0.15.1",
"pressbooks/pressbooks": "<5.18",
"prestashop/autoupgrade": ">=4,<4.10.1",
@ -1118,7 +1174,7 @@
"rap2hpoutre/laravel-log-viewer": "<0.13",
"react/http": ">=0.7,<1.9",
"really-simple-plugins/complianz-gdpr": "<6.4.2",
"redaxo/source": "<=5.18.1",
"redaxo/source": "<5.18.3",
"remdex/livehelperchat": "<4.29",
"reportico-web/reportico": "<=8.1",
"rhukster/dom-sanitizer": "<1.0.7",
@ -1131,7 +1187,7 @@
"s-cart/s-cart": "<6.9",
"sabberworm/php-css-parser": ">=1,<1.0.1|>=2,<2.0.1|>=3,<3.0.1|>=4,<4.0.1|>=5,<5.0.9|>=5.1,<5.1.3|>=5.2,<5.2.1|>=6,<6.0.2|>=7,<7.0.4|>=8,<8.0.1|>=8.1,<8.1.1|>=8.2,<8.2.1|>=8.3,<8.3.1",
"sabre/dav": ">=1.6,<1.7.11|>=1.8,<1.8.9",
"samwilson/unlinked-wikibase": "<1.39.6|>=1.40,<1.40.2|>=1.41,<1.41.1",
"samwilson/unlinked-wikibase": "<1.42",
"scheb/two-factor-bundle": "<3.26|>=4,<4.11",
"sensiolabs/connect": "<4.2.3",
"serluck/phpwhois": "<=4.2.6",
@ -1164,8 +1220,8 @@
"silverstripe/userforms": "<3|>=5,<5.4.2",
"silverstripe/versioned-admin": ">=1,<1.11.1",
"simple-updates/phpwhois": "<=1",
"simplesamlphp/saml2": "<4.6.14|==5.0.0.0-alpha12",
"simplesamlphp/saml2-legacy": "<4.6.14",
"simplesamlphp/saml2": "<=4.16.15|>=5.0.0.0-alpha1,<=5.0.0.0-alpha19",
"simplesamlphp/saml2-legacy": "<=4.16.15",
"simplesamlphp/simplesamlphp": "<1.18.6",
"simplesamlphp/simplesamlphp-module-infocard": "<1.0.1",
"simplesamlphp/simplesamlphp-module-openid": "<1",
@ -1208,7 +1264,7 @@
"sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2",
"sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1",
"sylius/grid-bundle": "<1.10.1",
"sylius/paypal-plugin": ">=1,<1.2.4|>=1.3,<1.3.1",
"sylius/paypal-plugin": "<1.6.2|>=1.7,<1.7.2|>=2,<2.0.2",
"sylius/resource-bundle": ">=1,<1.3.14|>=1.4,<1.4.7|>=1.5,<1.5.2|>=1.6,<1.6.4",
"sylius/sylius": "<1.12.19|>=1.13.0.0-alpha1,<1.13.4",
"symbiote/silverstripe-multivaluefield": ">=3,<3.1",
@ -1254,7 +1310,7 @@
"t3/dce": "<0.11.5|>=2.2,<2.6.2",
"t3g/svg-sanitizer": "<1.0.3",
"t3s/content-consent": "<1.0.3|>=2,<2.0.2",
"tastyigniter/tastyigniter": "<3.3",
"tastyigniter/tastyigniter": "<4",
"tcg/voyager": "<=1.8",
"tecnickcom/tc-lib-pdf-font": "<2.6.4",
"tecnickcom/tcpdf": "<6.8",
@ -1444,7 +1500,7 @@
"type": "tidelift"
}
],
"time": "2025-02-14T21:04:39+00:00"
"time": "2025-03-21T18:06:15+00:00"
}
],
"aliases": [],

@ -4,6 +4,7 @@ declare(strict_types=1);
namespace OCA\RePod\Controller;
use OCA\GPodderSync\Core\EpisodeAction\EpisodeAction;
use OCA\GPodderSync\Db\EpisodeAction\EpisodeActionRepository;
use OCA\RePod\AppInfo\Application;
use OCA\RePod\Core\EpisodeAction\EpisodeActionExtraData;
@ -15,9 +16,13 @@ use OCP\AppFramework\Http\Attribute\FrontpageRoute;
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
use OCP\AppFramework\Http\JSONResponse;
use OCP\AppFramework\Http\Response;
use OCP\Http\Client\IClientService;
use OCP\IRequest;
/**
* @phpstan-import-type EpisodeActionType from EpisodeAction
*/
class EpisodesController extends Controller
{
public function __construct(
@ -30,10 +35,13 @@ class EpisodesController extends Controller
parent::__construct(Application::APP_ID, $request);
}
/**
* @return JSONResponse<Http::STATUS_*, array<int, EpisodeActionExtraData>, array{}>
*/
#[NoAdminRequired]
#[NoCSRFRequired]
#[FrontpageRoute(verb: 'GET', url: '/episodes/list')]
public function list(string $url): JSONResponse {
public function list(string $url): Response {
$client = $this->clientService->newClient();
$feed = $client->get($url);
$episodes = $this->episodeActionReader->parseRssXml((string) $feed->getBody());
@ -46,16 +54,20 @@ class EpisodesController extends Controller
return new JSONResponse($episodes, $returnStatusCode);
}
/**
* @return JSONResponse<Http::STATUS_OK, EpisodeActionType, array{}>
*/
#[NoAdminRequired]
#[NoCSRFRequired]
#[FrontpageRoute(verb: 'GET', url: '/episodes/action')]
public function action(string $url): JSONResponse {
public function action(string $url): Response {
$action = $this->episodeActionRepository->findByEpisodeUrl($url, $this->userService->getUserUID());
if ($action) {
return new JSONResponse($action->toArray());
}
/** @phpstan-ignore-next-line */
return new JSONResponse([], Http::STATUS_NOT_FOUND);
}
}

@ -10,6 +10,7 @@ use OCA\GPodderSync\Core\SubscriptionChange\SubscriptionChangeSaver;
use OCA\RePod\AppInfo\Application;
use OCA\RePod\Service\UserService;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\Attribute\FrontpageRoute;
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
@ -31,10 +32,13 @@ class OpmlController extends Controller
parent::__construct(Application::APP_ID, $request);
}
/**
* @return DataDownloadResponse<Http::STATUS_OK, 'application/xml', array{}>
*/
#[NoAdminRequired]
#[NoCSRFRequired]
#[FrontpageRoute(verb: 'GET', url: '/opml/export')]
public function export(): DataDownloadResponse {
public function export(): Response {
// https://github.com/AntennaPod/AntennaPod/blob/master/core/src/main/java/de/danoeh/antennapod/core/export/opml/OpmlWriter.java
$xml = new \SimpleXMLElement('<opml/>', namespaceOrPrefix: 'http://xmlpull.org/v1/doc/features.html#indent-output');
$xml->addAttribute('version', '2.0');
@ -81,9 +85,12 @@ class OpmlController extends Controller
}
}
return new DataDownloadResponse((string) $xml->asXML(), 'repod-'.$dateCreated->getTimestamp().'.opml', ' application/xml');
return new DataDownloadResponse((string) $xml->asXML(), 'repod-'.$dateCreated->getTimestamp().'.opml', 'application/xml');
}
/**
* @return Response<Http::STATUS_OK, array{}>
*/
#[NoAdminRequired]
#[NoCSRFRequired]
#[FrontpageRoute(verb: 'POST', url: '/opml/import')]

@ -6,10 +6,12 @@ namespace OCA\RePod\Controller;
use OCA\RePod\AppInfo\Application;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\Attribute\FrontpageRoute;
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
use OCP\AppFramework\Http\ContentSecurityPolicy;
use OCP\AppFramework\Http\Response;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\IRequest;
@ -21,10 +23,13 @@ class PageController extends Controller
parent::__construct(Application::APP_ID, $request);
}
/**
* @return TemplateResponse<Http::STATUS_OK, array{}>
*/
#[NoAdminRequired]
#[NoCSRFRequired]
#[FrontpageRoute(verb: 'GET', url: '/')]
public function index(): TemplateResponse {
public function index(): Response {
$csp = new ContentSecurityPolicy();
$csp->addAllowedImageDomain('*');
$csp->addAllowedMediaDomain('*');
@ -35,17 +40,23 @@ class PageController extends Controller
return $response;
}
/**
* @return TemplateResponse<Http::STATUS_OK, array{}>
*/
#[NoAdminRequired]
#[NoCSRFRequired]
#[FrontpageRoute(verb: 'GET', url: '/discover')]
public function discover(): TemplateResponse {
public function discover(): Response {
return $this->index();
}
/**
* @return TemplateResponse<Http::STATUS_OK, array{}>
*/
#[NoAdminRequired]
#[NoCSRFRequired]
#[FrontpageRoute(verb: 'GET', url: '/feed/{path}', requirements: ['path' => '.+'])]
public function feed(): TemplateResponse {
public function feed(): Response {
return $this->index();
}
}

@ -13,6 +13,7 @@ use OCP\AppFramework\Http\Attribute\FrontpageRoute;
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
use OCP\AppFramework\Http\JSONResponse;
use OCP\AppFramework\Http\Response;
use OCP\Http\Client\IClientService;
use OCP\ICacheFactory;
use OCP\IRequest;
@ -28,10 +29,13 @@ class PodcastController extends Controller
parent::__construct(Application::APP_ID, $request);
}
/**
* @return JSONResponse<Http::STATUS_OK, PodcastData, array{}>
*/
#[NoAdminRequired]
#[NoCSRFRequired]
#[FrontpageRoute(verb: 'GET', url: '/podcast')]
public function index(string $url): JSONResponse {
public function index(string $url): Response {
$podcast = null;
if ($this->cacheFactory->isLocalCacheAvailable()) {
@ -59,6 +63,7 @@ class PodcastController extends Controller
/** @var Http::STATUS_* $returnStatusCode */
$returnStatusCode = $feed->getStatusCode();
/** @phpstan-ignore-next-line */
return new JSONResponse($podcast, $returnStatusCode);
}
}

@ -4,13 +4,16 @@ declare(strict_types=1);
namespace OCA\RePod\Controller;
use OCA\GPodderSync\Core\PodcastData\PodcastData;
use OCA\RePod\AppInfo\Application;
use OCA\RePod\Service\MultiPodService;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\Attribute\FrontpageRoute;
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
use OCP\AppFramework\Http\JSONResponse;
use OCP\AppFramework\Http\Response;
use OCP\IRequest;
class SearchController extends Controller
@ -22,10 +25,13 @@ class SearchController extends Controller
parent::__construct(Application::APP_ID, $request);
}
/**
* @return JSONResponse<Http::STATUS_OK, PodcastData[], array{}>
*/
#[NoAdminRequired]
#[NoCSRFRequired]
#[FrontpageRoute(verb: 'GET', url: '/search')]
public function index(string $q): JSONResponse {
public function index(string $q): Response {
return new JSONResponse($this->multiPodService->search($q));
}
}

@ -4,13 +4,16 @@ declare(strict_types=1);
namespace OCA\RePod\Controller;
use OCA\GPodderSync\Core\PodcastData\PodcastData;
use OCA\RePod\AppInfo\Application;
use OCA\RePod\Service\FyydService;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\Attribute\FrontpageRoute;
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
use OCP\AppFramework\Http\JSONResponse;
use OCP\AppFramework\Http\Response;
use OCP\IRequest;
class ToplistController extends Controller
@ -22,17 +25,23 @@ class ToplistController extends Controller
parent::__construct(Application::APP_ID, $request);
}
/**
* @return JSONResponse<Http::STATUS_OK, PodcastData[], array{}>
*/
#[NoAdminRequired]
#[NoCSRFRequired]
#[FrontpageRoute(verb: 'GET', url: '/toplist/hot')]
public function hot(): JSONResponse {
public function hot(): Response {
return new JSONResponse($this->fyydService->hot());
}
/**
* @return JSONResponse<Http::STATUS_OK, PodcastData[], array{}>
*/
#[NoAdminRequired]
#[NoCSRFRequired]
#[FrontpageRoute(verb: 'GET', url: '/toplist/new')]
public function new(): JSONResponse {
public function new(): Response {
return new JSONResponse($this->fyydService->latest());
}
}

1827
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -16,33 +16,34 @@
],
"prettier": "@nextcloud/prettier-config",
"dependencies": {
"@formatjs/intl-segmenter": "^11.7.9",
"@formatjs/intl-segmenter": "^11.7.10",
"@nextcloud/axios": "^2.5.1",
"@nextcloud/initial-state": "^2.2.0",
"@nextcloud/l10n": "~3.1.0",
"@nextcloud/l10n": "^3.2.0",
"@nextcloud/router": "^3.0.1",
"@nextcloud/vite-config": "^2.3.1",
"@nextcloud/vue": "9.0.0-alpha.6",
"@nextcloud/vite-config": "^2.3.2",
"@nextcloud/vue": "~9.0.0-alpha.7",
"dompurify": "^3.2.4",
"linkify-html": "^4.2.0",
"pinia": "^3.0.1",
"toastify-js": "^1.12.0",
"vite": "^6.1.0",
"vite": "^6.2.3",
"vue": "^3.5.13",
"vue-material-design-icons": "^5.3.1",
"vue-router": "^4.5.0"
},
"devDependencies": {
"@nextcloud/browserslist-config": "^3.0.1",
"@nextcloud/eslint-config": "^8.4.1",
"@nextcloud/eslint-config": "^8.4.2",
"@nextcloud/prettier-config": "^1.1.0",
"@nextcloud/stylelint-config": "^3.0.1",
"@types/node": "~20.17.28",
"@types/toastify-js": "^1.12.3",
"@vue/tsconfig": "^0.7.0",
"eslint-config-prettier": "^10.0.1",
"eslint-config-prettier": "^10.1.1",
"eslint-plugin-pinia": "^0.4.1",
"eslint-plugin-prettier": "^5.2.3",
"eslint-plugin-prettier": "^5.2.5",
"typescript": "~5.5.4",
"vue-tsc": "^2.2.2"
"vue-tsc": "^2.2.8"
}
}

@ -2,5 +2,5 @@ parameters:
level: 9
paths:
- lib
ignoreErrors:
- '#Method [a-zA-Z0-9:\(\)\\_]+ return type with generic class OCP\\AppFramework\\Http\\[a-zA-Z]+ does not specify its types#'
includes:
- vendor/phpstan/phpstan-deprecation-rules/rules.neon

@ -19,7 +19,7 @@
:title="t('repod', 'Play')"
@click="load(episode, url)">
<template #icon>
<PlayIcon :size="20" />
<PlayIcon class="pointer" :size="20" />
</template>
</NcActionButton>
<NcActionButton
@ -28,7 +28,7 @@
:title="t('repod', 'Stop')"
@click="load(null)">
<template #icon>
<StopIcon :size="20" />
<StopIcon class="pointer" :size="20" />
</template>
</NcActionButton>
</template>
@ -211,6 +211,10 @@ export default {
display: flex;
gap: 1rem;
}
.pointer {
cursor: pointer;
}
</style>
<style>