Compare commits

...

19 Commits
3.5.2 ... main

Author SHA1 Message Date
f96ec96f56 Merge pull request 'chore(deps): update dependency eslint-plugin-prettier to ^5.2.3' (#238) from renovate/eslint-plugin-prettier-5.x into main
All checks were successful
repod / xml (push) Successful in 29s
repod / php (push) Successful in 1m4s
repod / nodejs (push) Successful in 1m18s
repod / release (push) Has been skipped
Reviewed-on: #238
2025-01-20 08:16:41 +00:00
afbfbe8487 chore(deps): update dependency eslint-plugin-prettier to ^5.2.3
All checks were successful
repod / xml (push) Successful in 33s
repod / php (push) Successful in 58s
repod / nodejs (push) Successful in 1m4s
repod / release (push) Has been skipped
2025-01-20 00:04:26 +00:00
87ad98f341 fix: fix paslm
All checks were successful
repod / xml (push) Successful in 14s
repod / php (push) Successful in 1m1s
repod / nodejs (push) Successful in 1m0s
repod / release (push) Has been skipped
2025-01-18 10:14:08 +00:00
cc5434004e Merge pull request 'chore(deps): update dependency nextcloud/ocp to ^30.0.5' (#236) from renovate/nextcloud-ocp-30.x into main
Some checks failed
repod / xml (push) Successful in 32s
repod / php (push) Failing after 1m11s
repod / nodejs (push) Successful in 1m25s
repod / release (push) Has been skipped
Reviewed-on: #236
2025-01-18 10:02:10 +00:00
519cf82703 chore(deps): update dependency nextcloud/ocp to ^30.0.5
Some checks failed
repod / xml (push) Successful in 32s
repod / php (push) Failing after 1m36s
repod / nodejs (push) Successful in 1m10s
repod / release (push) Has been skipped
2025-01-18 00:04:45 +00:00
abfa1491fc chore: ⬆️ update lock
All checks were successful
repod / xml (push) Successful in 14s
repod / php (push) Successful in 1m6s
repod / nodejs (push) Successful in 1m2s
repod / release (push) Has been skipped
2025-01-15 08:45:13 +00:00
59c02ba994 Merge pull request 'chore(deps): update dependency eslint-config-prettier to v10' (#234) from renovate/eslint-config-prettier-10.x into main
All checks were successful
repod / xml (push) Successful in 34s
repod / php (push) Successful in 1m37s
repod / nodejs (push) Successful in 1m13s
repod / release (push) Has been skipped
Reviewed-on: #234
2025-01-15 08:34:57 +00:00
6cd74a9482 chore(deps): update dependency eslint-config-prettier to v10
All checks were successful
repod / xml (push) Successful in 48s
repod / php (push) Successful in 1m15s
repod / nodejs (push) Successful in 1m8s
repod / release (push) Has been skipped
2025-01-15 00:05:16 +00:00
Weblate
40f13d92aa Update translation files
All checks were successful
repod / xml (push) Successful in 9s
repod / php (push) Successful in 54s
repod / nodejs (push) Successful in 1m0s
repod / release (push) Has been skipped
Updated by "Update PO files to match POT (msgmerge)" add-on in Weblate.

Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.crystalyx.net/projects/repod/gitea/
Translation: RePod/Gitea
2025-01-10 22:55:55 +00:00
172085bf2d chore: 🌐 update de language
Some checks failed
repod / php (push) Waiting to run
repod / nodejs (push) Waiting to run
repod / release (push) Waiting to run
repod / xml (push) Has been cancelled
2025-01-10 23:55:48 +01:00
4a93cb9964 chore: ⬆️ update vite-config
Some checks failed
repod / nodejs (push) Waiting to run
repod / release (push) Waiting to run
repod / xml (push) Successful in 14s
repod / php (push) Has been cancelled
2025-01-10 23:54:58 +01:00
markus phi
cace2c5fb8 Translated using Weblate (German)
All checks were successful
repod / xml (push) Successful in 32s
repod / php (push) Successful in 58s
repod / nodejs (push) Successful in 1m15s
repod / release (push) Has been skipped
Currently translated at 98.3% (59 of 60 strings)

Co-authored-by: markus phi <repodtranslate@solinetcafe.org>
Translate-URL: https://translate.crystalyx.net/projects/repod/gitea/de/
Translation: RePod/Gitea
2025-01-04 19:02:52 +00:00
c6915193db fix: 🩹 fix blank bubble if no duration
All checks were successful
repod / xml (push) Successful in 26s
repod / php (push) Successful in 55s
repod / nodejs (push) Successful in 1m34s
repod / release (push) Has been skipped
2025-01-03 18:36:47 +01:00
2a3d30f018 feat: add notifications and author
All checks were successful
repod / xml (push) Successful in 12s
repod / php (push) Successful in 1m0s
repod / nodejs (push) Successful in 1m38s
repod / release (push) Successful in 1m16s
2025-01-03 16:17:12 +01:00
514a12d756 chore: ⬆️ update lock
All checks were successful
repod / xml (push) Successful in 13s
repod / php (push) Successful in 56s
repod / nodejs (push) Successful in 1m41s
repod / release (push) Successful in 1m27s
2025-01-03 14:24:07 +01:00
66e2406a81 chore: 🔖 update version and changelog
All checks were successful
repod / xml (push) Successful in 12s
repod / php (push) Successful in 1m11s
repod / nodejs (push) Successful in 1m36s
repod / release (push) Has been skipped
2025-01-03 14:19:53 +01:00
2546df30fc Revert "fix: 🎨 simplify undefined test for filters"
Some checks failed
repod / release (push) Waiting to run
repod / xml (push) Successful in 16s
repod / php (push) Successful in 1m16s
repod / nodejs (push) Has been cancelled
This reverts commit c37783d814a8d3dea2f8c12178cdd2f04fecad81.
2025-01-03 14:17:27 +01:00
b33a0fdb40 Merge pull request 'chore(deps): update dependency @formatjs/intl-segmenter to ^11.7.8' (#232) from renovate/formatjs-intl-segmenter-11.x into main
All checks were successful
repod / xml (push) Successful in 42s
repod / php (push) Successful in 1m21s
repod / nodejs (push) Successful in 1m44s
repod / release (push) Has been skipped
Reviewed-on: #232
2025-01-03 10:57:30 +00:00
c0ca6258bd chore(deps): update dependency @formatjs/intl-segmenter to ^11.7.8
All checks were successful
repod / xml (push) Successful in 12s
repod / php (push) Successful in 1m1s
repod / nodejs (push) Successful in 1m51s
repod / release (push) Has been skipped
2025-01-03 00:07:59 +00:00
22 changed files with 889 additions and 654 deletions

View File

@ -1,11 +1,9 @@
module.exports = {
extends: [
'@nextcloud',
'@vue/eslint-config-typescript/recommended',
'@nextcloud/eslint-config/vue3',
'plugin:pinia/recommended',
'plugin:prettier/recommended',
],
parser: 'vue-eslint-parser',
rules: {
'jsdoc/require-jsdoc': 'off',
'vue/first-attribute-linebreak': 'off',

View File

@ -1,5 +1,17 @@
## 3.5.4 - Under the spotlight - 2025-01-03
### Added
- 🧑‍🎤 Added the episode author on the list and modal
- ✨ Added cover image and episode infos on desktop and mobile notifications
## 3.5.3 - Hangover - 2025-01-03
### Fixed
- 🚑 Regression on filters
## 3.5.2 - Happy New Year - 2025-01-01
### Changed
- 🌐 Updated german language (thanks markus phi)
🎉 Happy new year !

View File

@ -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.2</version>
<version>3.5.4</version>
<licence>agpl</licence>
<author mail="xefir@crystalyx.net" homepage="https://crystalyx.net">Michel Roux</author>
<namespace>RePod</namespace>

View File

@ -19,7 +19,7 @@
"php": "^8.1"
},
"require-dev": {
"nextcloud/ocp": "^30.0.4",
"nextcloud/ocp": "^30.0.5",
"roave/security-advisories": "dev-latest",
"nextcloud/coding-standard": "^1.3.2",
"nextcloud/rector": "^0.2.1",

74
composer.lock generated
View File

@ -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": "8985893a48af49654e50784bda34fb89",
"content-hash": "413d85cb041646dc7aa0da4bcdf8f65c",
"packages": [],
"packages-dev": [
{
@ -778,16 +778,16 @@
},
{
"name": "nextcloud/ocp",
"version": "v30.0.4",
"version": "v30.0.5",
"source": {
"type": "git",
"url": "https://github.com/nextcloud-deps/ocp.git",
"reference": "6f98dac2ddd6c42e605bc453e5328c0a61f75b8d"
"reference": "8f9f1452b564a514938d0e7361479bb9afacab27"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/6f98dac2ddd6c42e605bc453e5328c0a61f75b8d",
"reference": "6f98dac2ddd6c42e605bc453e5328c0a61f75b8d",
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/8f9f1452b564a514938d0e7361479bb9afacab27",
"reference": "8f9f1452b564a514938d0e7361479bb9afacab27",
"shasum": ""
},
"require": {
@ -816,9 +816,9 @@
"description": "Composer package containing Nextcloud's public API (classes, interfaces)",
"support": {
"issues": "https://github.com/nextcloud-deps/ocp/issues",
"source": "https://github.com/nextcloud-deps/ocp/tree/v30.0.4"
"source": "https://github.com/nextcloud-deps/ocp/tree/v30.0.5"
},
"time": "2024-11-29T00:46:59+00:00"
"time": "2025-01-08T10:49:45+00:00"
},
{
"name": "nextcloud/rector",
@ -940,16 +940,16 @@
},
{
"name": "php-cs-fixer/shim",
"version": "v3.66.0",
"version": "v3.68.1",
"source": {
"type": "git",
"url": "https://github.com/PHP-CS-Fixer/shim.git",
"reference": "6824b91b16d2e123afed9bf9c96ec283882346c9"
"reference": "eca7a809b6b5d35d0a033c63a14881107e22a7b6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHP-CS-Fixer/shim/zipball/6824b91b16d2e123afed9bf9c96ec283882346c9",
"reference": "6824b91b16d2e123afed9bf9c96ec283882346c9",
"url": "https://api.github.com/repos/PHP-CS-Fixer/shim/zipball/eca7a809b6b5d35d0a033c63a14881107e22a7b6",
"reference": "eca7a809b6b5d35d0a033c63a14881107e22a7b6",
"shasum": ""
},
"require": {
@ -986,9 +986,9 @@
"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.66.0"
"source": "https://github.com/PHP-CS-Fixer/shim/tree/v3.68.1"
},
"time": "2024-12-29T13:46:48+00:00"
"time": "2025-01-17T09:21:08+00:00"
},
{
"name": "phpdocumentor/reflection-common",
@ -1214,16 +1214,16 @@
},
{
"name": "phpstan/phpstan",
"version": "1.12.14",
"version": "1.12.15",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
"reference": "e73868f809e68fff33be961ad4946e2e43ec9e38"
"reference": "c91d4e8bc056f46cf653656e6f71004b254574d1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/e73868f809e68fff33be961ad4946e2e43ec9e38",
"reference": "e73868f809e68fff33be961ad4946e2e43ec9e38",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/c91d4e8bc056f46cf653656e6f71004b254574d1",
"reference": "c91d4e8bc056f46cf653656e6f71004b254574d1",
"shasum": ""
},
"require": {
@ -1268,7 +1268,7 @@
"type": "github"
}
],
"time": "2024-12-31T07:26:13+00:00"
"time": "2025-01-05T16:40:22+00:00"
},
{
"name": "psr/clock",
@ -1536,12 +1536,12 @@
"source": {
"type": "git",
"url": "https://github.com/Roave/SecurityAdvisories.git",
"reference": "1b5fbfd0ff8484f7cc650978bfce4b8273633341"
"reference": "e7a38fcc13e4ddfe9a28d5c7bf50aa9a9da758ec"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/1b5fbfd0ff8484f7cc650978bfce4b8273633341",
"reference": "1b5fbfd0ff8484f7cc650978bfce4b8273633341",
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/e7a38fcc13e4ddfe9a28d5c7bf50aa9a9da758ec",
"reference": "e7a38fcc13e4ddfe9a28d5c7bf50aa9a9da758ec",
"shasum": ""
},
"conflict": {
@ -1777,6 +1777,7 @@
"gilacms/gila": "<=1.15.4",
"gleez/cms": "<=1.3|==2",
"globalpayments/php-sdk": "<2",
"goalgorilla/open_social": "<12.3.8|>=12.4,<12.4.5|>=13.0.0.0-alpha1,<13.0.0.0-alpha11",
"gogentooss/samlbase": "<1.2.7",
"google/protobuf": "<3.15",
"gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3",
@ -1785,6 +1786,7 @@
"grumpydictator/firefly-iii": "<6.1.17",
"gugoan/economizzer": "<=0.9.0.0-beta1",
"guzzlehttp/guzzle": "<6.5.8|>=7,<7.4.5",
"guzzlehttp/oauth-subscriber": "<0.8.1",
"guzzlehttp/psr7": "<1.9.1|>=2,<2.4.5",
"haffner/jh_captcha": "<=2.1.3|>=3,<=3.0.2",
"harvesthq/chosen": "<1.8.7",
@ -1823,6 +1825,7 @@
"intelliants/subrion": "<4.2.2",
"inter-mediator/inter-mediator": "==5.5",
"ipl/web": "<0.10.1",
"islandora/crayfish": "<4.1",
"islandora/islandora": ">=2,<2.4.1",
"ivankristianto/phpwhois": "<=4.3",
"jackalope/jackalope-doctrine-dbal": "<1.7.4",
@ -1905,6 +1908,7 @@
"mediawiki/abuse-filter": "<1.39.9|>=1.40,<1.41.3|>=1.42,<1.42.2",
"mediawiki/cargo": "<3.6.1",
"mediawiki/core": "<1.39.5|==1.40",
"mediawiki/data-transfer": ">=1.39,<1.39.11|>=1.41,<1.41.3|>=1.42,<1.42.2",
"mediawiki/matomo": "<2.4.3",
"mediawiki/semantic-media-wiki": "<4.0.2",
"melisplatform/melis-asset-manager": "<5.0.1",
@ -1945,6 +1949,8 @@
"neos/media-browser": "<7.3.19|>=8,<8.0.16|>=8.1,<8.1.11|>=8.2,<8.2.11|>=8.3,<8.3.9",
"neos/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<5.3.10|>=7,<7.0.9|>=7.1,<7.1.7|>=7.2,<7.2.6|>=7.3,<7.3.4|>=8,<8.0.2",
"neos/swiftmailer": "<5.4.5",
"nesbot/carbon": "<2.72.6|>=3,<3.8.4",
"netcarver/textile": "<=4.1.2",
"netgen/tagsbundle": ">=3.4,<3.4.11|>=4,<4.0.15",
"nette/application": ">=2,<2.0.19|>=2.1,<2.1.13|>=2.2,<2.2.10|>=2.3,<2.3.14|>=2.4,<2.4.16|>=3,<3.0.6",
"nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13",
@ -2009,10 +2015,10 @@
"phpmailer/phpmailer": "<6.5",
"phpmussel/phpmussel": ">=1,<1.6",
"phpmyadmin/phpmyadmin": "<5.2.1",
"phpmyfaq/phpmyfaq": "<3.2.5|==3.2.5",
"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/phpspreadsheet": "<1.29.4|>=2,<2.1.3|>=2.2,<2.3.2|>=3.3,<3.4",
"phpoffice/phpspreadsheet": "<=1.29.6|>=2,<=2.1.5|>=2.2,<=2.3.4|>=3,<3.7",
"phpseclib/phpseclib": "<2.0.47|>=3,<3.0.36",
"phpservermon/phpservermon": "<3.6",
"phpsysinfo/phpsysinfo": "<3.4.3",
@ -2098,7 +2104,7 @@
"silverstripe/cms": "<4.11.3",
"silverstripe/comments": ">=1.3,<3.1.1",
"silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3",
"silverstripe/framework": "<5.2.16",
"silverstripe/framework": "<5.3.8",
"silverstripe/graphql": ">=2,<2.0.5|>=3,<3.8.2|>=4,<4.3.7|>=5,<5.1.3",
"silverstripe/hybridsessions": ">=1,<2.4.1|>=2.5,<2.5.1",
"silverstripe/recipe-cms": ">=4.5,<4.5.3",
@ -2138,6 +2144,7 @@
"squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1",
"ssddanbrown/bookstack": "<24.05.1",
"starcitizentools/citizen-skin": ">=2.6.3,<2.31",
"starcitizentools/tabber-neue": ">=1.9.1,<2.7.2",
"statamic/cms": "<=5.16",
"stormpath/sdk": "<9.9.99",
"studio-42/elfinder": "<=2.1.64",
@ -2209,7 +2216,7 @@
"thelia/thelia": ">=2.1,<2.1.3",
"theonedemon/phpwhois": "<=4.2.5",
"thinkcmf/thinkcmf": "<6.0.8",
"thorsten/phpmyfaq": "<4",
"thorsten/phpmyfaq": "<=4.0.1",
"tikiwiki/tiki-manager": "<=17.1",
"timber/timber": ">=0.16.6,<1.23.1|>=1.24,<1.24.1|>=2,<2.1",
"tinymce/tinymce": "<7.2",
@ -2229,13 +2236,20 @@
"twig/twig": "<3.11.2|>=3.12,<3.14.1",
"typo3/cms": "<9.5.29|>=10,<10.4.35|>=11,<11.5.23|>=12,<12.2",
"typo3/cms-backend": "<4.1.14|>=4.2,<4.2.15|>=4.3,<4.3.7|>=4.4,<4.4.4|>=7,<=7.6.50|>=8,<=8.7.39|>=9,<=9.5.24|>=10,<10.4.46|>=11,<11.5.40|>=12,<12.4.21|>=13,<13.3.1",
"typo3/cms-core": "<=8.7.56|>=9,<=9.5.47|>=10,<=10.4.44|>=11,<=11.5.36|>=12,<=12.4.14|>=13,<=13.1",
"typo3/cms-belog": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2",
"typo3/cms-beuser": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2",
"typo3/cms-core": "<=8.7.56|>=9,<=9.5.48|>=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2",
"typo3/cms-dashboard": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2",
"typo3/cms-extbase": "<6.2.24|>=7,<7.6.8|==8.1.1",
"typo3/cms-extensionmanager": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2",
"typo3/cms-fluid": "<4.3.4|>=4.4,<4.4.1",
"typo3/cms-form": ">=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1",
"typo3/cms-form": ">=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2",
"typo3/cms-frontend": "<4.3.9|>=4.4,<4.4.5",
"typo3/cms-install": "<4.1.14|>=4.2,<4.2.16|>=4.3,<4.3.9|>=4.4,<4.4.5|>=12.2,<12.4.8",
"typo3/cms-indexed-search": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2",
"typo3/cms-install": "<4.1.14|>=4.2,<4.2.16|>=4.3,<4.3.9|>=4.4,<4.4.5|>=12.2,<12.4.8|==13.4.2",
"typo3/cms-lowlevel": ">=11,<=11.5.41",
"typo3/cms-rte-ckeditor": ">=9.5,<9.5.42|>=10,<10.4.39|>=11,<11.5.30",
"typo3/cms-scheduler": ">=11,<=11.5.41",
"typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6",
"typo3/html-sanitizer": ">=1,<=1.5.2|>=2,<=2.1.3",
"typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.3.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<3.3.23|>=4,<4.0.17|>=4.1,<4.1.16|>=4.2,<4.2.12|>=4.3,<4.3.3",
@ -2293,7 +2307,7 @@
"xpressengine/xpressengine": "<3.0.15",
"yab/quarx": "<2.4.5",
"yeswiki/yeswiki": "<=4.4.4",
"yetiforce/yetiforce-crm": "<=6.4",
"yetiforce/yetiforce-crm": "<6.5",
"yidashi/yii2cmf": "<=2",
"yii2mod/yii2-cms": "<1.9.2",
"yiisoft/yii": "<1.1.29",
@ -2383,7 +2397,7 @@
"type": "tidelift"
}
],
"time": "2024-12-30T19:04:40+00:00"
"time": "2025-01-15T23:05:13+00:00"
},
{
"name": "sebastian/diff",

View File

@ -19,9 +19,9 @@ OC.L10N.register(
"Link copied to the clipboard" : "Link in die Zwischenablage kopiert",
"Play" : "Abspielen",
"Stop" : "Stopp",
"Read" : "Gelesen",
"Read" : "gehört",
"Open website" : "Webseite aufrufen",
"Select" : "Wählen",
"Select" : "Auswählen",
"Could not change the status of the episode" : "Kann den Status der Folge nicht ändern",
"Read all" : "Alles lesen",
"Unread all" : "Ungelesen",
@ -58,7 +58,7 @@ OC.L10N.register(
"Error loading feed" : "Fehler beim Laden des Feeds",
"Missing required app" : "Benötigte App fehlt",
"Install GPodder Sync" : "Installiere GPodder Sync",
"Pin some subscriptions to see their latest updates" : "Pinne einige Abonnements, um ihre neuesten Updates zu sehen",
"Pin some subscriptions to see their latest updates" : "Markiere Abonnements, um die neuesten Updates zu sehen",
"No favorites" : "Keine Favoriten",
"A browser extension conflict with RePod" : "Ein Browser-Plugin Problem mit RePod"
},

View File

@ -17,9 +17,9 @@
"Link copied to the clipboard" : "Link in die Zwischenablage kopiert",
"Play" : "Abspielen",
"Stop" : "Stopp",
"Read" : "Gelesen",
"Read" : "gehört",
"Open website" : "Webseite aufrufen",
"Select" : "Wählen",
"Select" : "Auswählen",
"Could not change the status of the episode" : "Kann den Status der Folge nicht ändern",
"Read all" : "Alles lesen",
"Unread all" : "Ungelesen",
@ -56,7 +56,7 @@
"Error loading feed" : "Fehler beim Laden des Feeds",
"Missing required app" : "Benötigte App fehlt",
"Install GPodder Sync" : "Installiere GPodder Sync",
"Pin some subscriptions to see their latest updates" : "Pinne einige Abonnements, um ihre neuesten Updates zu sehen",
"Pin some subscriptions to see their latest updates" : "Markiere Abonnements, um die neuesten Updates zu sehen",
"No favorites" : "Keine Favoriten",
"A browser extension conflict with RePod" : "Ein Browser-Plugin Problem mit RePod"
},"pluralForm" :"nplurals=2; plural=n != 1;"

View File

@ -40,7 +40,10 @@ class EpisodesController extends Controller
usort($episodes, fn (EpisodeActionExtraData $a, EpisodeActionExtraData $b): int => $b->getPubDate() <=> $a->getPubDate());
$episodes = array_values(array_intersect_key($episodes, array_unique(array_map(fn (EpisodeActionExtraData $episode): string => $episode->getGuid(), $episodes))));
return new JSONResponse($episodes, $feed->getStatusCode());
/** @var Http::STATUS_* $returnStatusCode */
$returnStatusCode = $feed->getStatusCode();
return new JSONResponse($episodes, $returnStatusCode);
}
#[NoAdminRequired]

View File

@ -8,6 +8,7 @@ use OCA\GPodderSync\Core\PodcastData\PodcastData;
use OCA\GPodderSync\Core\PodcastData\PodcastDataReader;
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;
@ -55,6 +56,9 @@ class PodcastController extends Controller
}
}
return new JSONResponse($podcast, $feed->getStatusCode());
/** @var Http::STATUS_* $returnStatusCode */
$returnStatusCode = $feed->getStatusCode();
return new JSONResponse($podcast, $returnStatusCode);
}
}

View File

@ -18,6 +18,7 @@ use OCA\GPodderSync\Core\EpisodeAction\EpisodeAction;
* name: string,
* link: ?string,
* image: ?string,
* author: ?string,
* description: ?string,
* fetchedAtUnix: int,
* guid: string,
@ -36,6 +37,7 @@ class EpisodeActionExtraData implements \JsonSerializable, \Stringable
private readonly string $name,
private readonly ?string $link,
private readonly ?string $image,
private readonly ?string $author,
private readonly ?string $description,
private readonly int $fetchedAtUnix,
private readonly string $guid,
@ -70,6 +72,10 @@ class EpisodeActionExtraData implements \JsonSerializable, \Stringable
return $this->image;
}
public function getAuthor(): ?string {
return $this->author;
}
public function getDescription(): ?string {
return $this->description;
}
@ -113,6 +119,7 @@ class EpisodeActionExtraData implements \JsonSerializable, \Stringable
'name' => $this->name,
'link' => $this->link,
'image' => $this->image,
'author' => $this->author,
'description' => $this->description,
'fetchedAtUnix' => $this->fetchedAtUnix,
'guid' => $this->guid,

View File

@ -81,6 +81,13 @@ class EpisodeActionReader extends CoreEpisodeActionReader
}
}
// Get episode author
if (isset($iTunesItemChildren)) {
$author = $this->stringOrNull($iTunesItemChildren->author);
} else {
$author = $this->stringOrNull($item->author);
}
// Get episode description
$itemContent = $item->children('content', true);
if (isset($itemContent)) {
@ -116,6 +123,7 @@ class EpisodeActionReader extends CoreEpisodeActionReader
$name,
$link,
$image,
$author,
$description,
$fetchedAtUnix ?? (new \DateTime())->getTimestamp(),
$guid,

1318
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -16,12 +16,12 @@
],
"prettier": "@nextcloud/prettier-config",
"dependencies": {
"@formatjs/intl-segmenter": "^11.7.7",
"@formatjs/intl-segmenter": "^11.7.8",
"@nextcloud/axios": "^2.5.1",
"@nextcloud/initial-state": "^2.2.0",
"@nextcloud/l10n": "^3.1.0",
"@nextcloud/router": "^3.0.1",
"@nextcloud/vite-config": "^2.2.2",
"@nextcloud/vite-config": "^2.3.0",
"@nextcloud/vue": "9.0.0-alpha.5",
"dompurify": "^3.2.3",
"linkify-html": "^4.2.0",
@ -38,11 +38,10 @@
"@nextcloud/prettier-config": "^1.1.0",
"@nextcloud/stylelint-config": "^3.0.1",
"@types/toastify-js": "^1.12.3",
"@vue/eslint-config-typescript": "~13.0.0",
"@vue/tsconfig": "^0.7.0",
"eslint-config-prettier": "^9.1.0",
"eslint-config-prettier": "^10.0.1",
"eslint-plugin-pinia": "^0.4.1",
"eslint-plugin-prettier": "^5.2.1",
"eslint-plugin-prettier": "^5.2.3",
"typescript": "~5.5.4",
"vue-tsc": "^2.2.0"
}

View File

@ -6,6 +6,8 @@
:size="256"
:url="episode.image" />
<h2>{{ episode.name }}</h2>
<i v-if="episode.author">{{ episode.author }}</i>
<br />
<SafeHtml :source="episode.description || ''" />
<div class="flex">
<NcButton v-if="episode.link" :href="episode.link" target="_blank">

View File

@ -2,6 +2,7 @@
<NcListItem
:active="isCurrentEpisode(episode)"
class="episode"
:counter-number="episode.duration ?? 0"
:details="
!oneLine && episode.pubDate
? formatLocaleDate(new Date(episode.pubDate?.date))
@ -92,7 +93,7 @@
:value="(episode.action.position * 100) / episode.action.total" />
</template>
<template #subname>
{{ episode.duration }}
{{ !oneLine ? episode.author : '' }}
</template>
</NcListItem>
</template>
@ -218,4 +219,13 @@ export default {
flex-basis: auto;
flex-grow: 0;
}
.episode .list-item-details__extra {
flex-direction: row-reverse;
gap: 1rem;
}
.episode .list-item-details__counter {
max-width: fit-content;
}
</style>

View File

@ -9,7 +9,7 @@
:model-value="feed?.isFavorite"
:name="t('repod', 'Favorite')"
:title="t('repod', 'Favorite')"
@update:modelValue="switchFavorite($event)">
@update:model-value="switchFavorite($event)">
<template #icon>
<StarPlusIcon v-if="!feed?.isFavorite" :size="20" />
<StarRemoveIcon v-if="feed?.isFavorite" :size="20" />

View File

@ -48,6 +48,34 @@ export const usePlayer = defineStore('player', {
conflict() {
this.playCount = 0
},
metadatas(episode: EpisodeInterface) {
// https://developer.mozilla.org/en-US/docs/Web/API/Media_Session_API
navigator.mediaSession.metadata = new MediaMetadata({
title: episode.name,
artist: episode.author,
album: episode.title,
artwork: episode.image ? [{ src: episode.image }] : [],
})
navigator.mediaSession.setActionHandler('play', this.play)
navigator.mediaSession.setActionHandler('pause', this.pause)
navigator.mediaSession.setActionHandler('stop', this.stop)
navigator.mediaSession.setActionHandler(
'seekbackward',
(details: MediaSessionActionDetails) =>
this.seek(audio.currentTime - (details.seekOffset || 10)),
)
navigator.mediaSession.setActionHandler(
'seekforward',
(details: MediaSessionActionDetails) =>
this.seek(audio.currentTime + (details.seekOffset || 30)),
)
navigator.mediaSession.setActionHandler(
'seekto',
(details: MediaSessionActionDetails) =>
!details.fastSeek && this.seek(details.seekTime || 0),
)
},
async load(episode: EpisodeInterface | null, podcastUrl?: string) {
this.episode = episode
this.podcastUrl = podcastUrl || null
@ -75,6 +103,7 @@ export const usePlayer = defineStore('player', {
}
audio.play()
this.metadatas(this.episode)
} else {
this.loaded = false
this.podcastUrl = null

View File

@ -9,9 +9,12 @@ export const useSettings = defineStore('settings', {
return {
filters: {
listened: !!filters.listened,
listening: !!filters.listening,
unlistened: !!filters.unlistened,
listened:
filters.listened === undefined ? true : filters.listened,
listening:
filters.listening === undefined ? true : filters.listening,
unlistened:
filters.unlistened === undefined ? true : filters.unlistened,
},
}
} catch {

View File

@ -16,6 +16,7 @@ export interface EpisodeInterface {
name: string
link?: string
image?: string
author?: string
description?: string
fetchedAtUnix: number
guid: string

View File

@ -3,13 +3,13 @@
# This file is distributed under the same license as the Nextcloud package.
# OiledAmoeba <florian+crystalyx@ruhnke.cloud>, 2024.
# Michel Roux <xefir@crystalyx.net>, 2024.
# markus phi <repodtranslate@solinetcafe.org>, 2024.
# markus phi <repodtranslate@solinetcafe.org>, 2024, 2025.
msgid ""
msgstr ""
"Project-Id-Version: Nextcloud 3.14159\n"
"Report-Msgid-Bugs-To: translations\\@example.com\n"
"POT-Creation-Date: 2024-12-11 20:03+0000\n"
"PO-Revision-Date: 2024-12-25 21:02+0000\n"
"POT-Creation-Date: 2025-01-10 22:55+0000\n"
"PO-Revision-Date: 2025-01-04 19:02+0000\n"
"Last-Translator: markus phi <repodtranslate@solinetcafe.org>\n"
"Language-Team: German <https://translate.crystalyx.net/projects/repod/gitea/"
"de/>\n"
@ -58,8 +58,8 @@ msgstr ""
"## Funktionen\n"
"- 🔍 Durchsuchen und abonnieren einer großen Sammlung von Podcasts\n"
"- 🔊 Episoden direkt in Nextcloud anhören\n"
"- 🌐 Synchronisiere deine Aktivität mit [AntennaPod](https://antennapod.org/)"
"\n"
"- 🌐 Synchronisiere deine Aktivität mit [AntennaPod](https://antennapod."
"org/)\n"
"- 📱 Handy-freundliche Schnittstelle\n"
"- 📡 Importieren und Exportieren Ihrer Abonnements\n"
"- ➡️ Vollständiger Funktionsvergleich [hier](https://git.crystalyx.net/Xefir/"
@ -133,9 +133,8 @@ msgstr "Stopp"
#: /app/specialVueFakeDummyForL10nScript.js:20
#: /app/specialVueFakeDummyForL10nScript.js:21
#: /app/specialVueFakeDummyForL10nScript.js:22
#, fuzzy
msgid "Read"
msgstr "Gelesen"
msgstr "gehört"
#: /app/specialVueFakeDummyForL10nScript.js:23
#: /app/specialVueFakeDummyForL10nScript.js:24
@ -143,9 +142,8 @@ msgid "Open website"
msgstr "Webseite aufrufen"
#: /app/specialVueFakeDummyForL10nScript.js:27
#, fuzzy
msgid "Select"
msgstr "Wählen"
msgstr "Auswählen"
#: /app/specialVueFakeDummyForL10nScript.js:28
#: /app/specialVueFakeDummyForL10nScript.js:38
@ -309,14 +307,13 @@ msgid "Install GPodder Sync"
msgstr "Installiere GPodder Sync"
#: /app/specialVueFakeDummyForL10nScript.js:75
#, fuzzy
msgid "Pin some subscriptions to see their latest updates"
msgstr "Pinne einige Abonnements, um ihre neuesten Updates zu sehen"
msgstr "Markiere Abonnements, um die neuesten Updates zu sehen"
#: /app/specialVueFakeDummyForL10nScript.js:76
msgid "No favorites"
msgstr "Keine Favoriten"
#: /app/src/store/player.ts:93
#: /app/src/store/player.ts:122
msgid "A browser extension conflict with RePod"
msgstr "Ein Browser-Plugin Problem mit RePod"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Nextcloud 3.14159\n"
"Report-Msgid-Bugs-To: translations\\@example.com\n"
"POT-Creation-Date: 2024-12-11 20:03+0000\n"
"POT-Creation-Date: 2025-01-10 22:55+0000\n"
"PO-Revision-Date: 2024-12-11 20:06+0000\n"
"Last-Translator: Michel Roux <xefir@crystalyx.net>\n"
"Language-Team: French <https://translate.crystalyx.net/projects/repod/gitea/"
@ -313,6 +313,6 @@ msgstr ""
msgid "No favorites"
msgstr "Aucun favoris"
#: /app/src/store/player.ts:93
#: /app/src/store/player.ts:122
msgid "A browser extension conflict with RePod"
msgstr "Une extension de votre navigateur entre en conflit avec RePod"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Nextcloud 3.14159\n"
"Report-Msgid-Bugs-To: translations\\@example.com\n"
"POT-Creation-Date: 2024-12-11 20:03+0000\n"
"POT-Creation-Date: 2025-01-10 22:55+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -298,6 +298,6 @@ msgstr ""
msgid "No favorites"
msgstr ""
#: /app/src/store/player.ts:93
#: /app/src/store/player.ts:122
msgid "A browser extension conflict with RePod"
msgstr ""