Compare commits

...

24 Commits
3.5.1 ... 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
8b2de1e523 chore: 🔖 first release of 2025 o/
All checks were successful
repod / xml (push) Successful in 11s
repod / php (push) Successful in 58s
repod / nodejs (push) Successful in 1m5s
repod / release (push) Successful in 1m11s
2025-01-01 14:50:29 +01:00
b2aaee7d25 chore: 🌐 update lang files
All checks were successful
repod / xml (push) Successful in 26s
repod / php (push) Successful in 1m16s
repod / nodejs (push) Successful in 1m31s
repod / release (push) Has been skipped
2024-12-26 22:07:02 +01:00
markus phi
b47cbbe9be Translated using Weblate (German)
All checks were successful
repod / xml (push) Successful in 41s
repod / php (push) Successful in 1m29s
repod / nodejs (push) Successful in 2m35s
repod / release (push) Has been skipped
Currently translated at 93.3% (56 of 60 strings)

Co-authored-by: markus phi <repodtranslate@solinetcafe.org>
Translate-URL: https://translate.crystalyx.net/projects/repod/gitea/de/
Translation: RePod/Gitea
2024-12-25 21:02:54 +00:00
c37783d814 fix: 🎨 simplify undefined test for filters
All checks were successful
repod / xml (push) Successful in 24s
repod / php (push) Successful in 54s
repod / nodejs (push) Successful in 1m9s
repod / release (push) Has been skipped
2024-12-25 11:30:17 +01:00
46443321d4 docs: 📝 missing thanks to @nolan on changelog
All checks were successful
repod / xml (push) Successful in 19s
repod / php (push) Successful in 52s
repod / nodejs (push) Successful in 1m14s
repod / release (push) Has been skipped
2024-12-24 20:00:49 +01:00
21 changed files with 982 additions and 718 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,9 +1,28 @@
## 3.5.1 - Happy Christmas - 2024-12-24
## 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 !
## 3.5.1 - Merry Christmas - 2024-12-24
### Fixed
- 🐛 Filters reseted on page reload, now working.
[#231](https://git.crystalyx.net/Xefir/repod/issues/231) reported by @nolan
🎁 Happy Christmas everyone !
🎁 Merry Christmas everyone !
## 3.5.0 - Select all peaceful moments, unselect sadness - 2024-12-11

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.1</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",

112
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.65.0",
"version": "v3.68.1",
"source": {
"type": "git",
"url": "https://github.com/PHP-CS-Fixer/shim.git",
"reference": "4983ec79b9dee926695ac324ea6e8d291935525d"
"reference": "eca7a809b6b5d35d0a033c63a14881107e22a7b6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHP-CS-Fixer/shim/zipball/4983ec79b9dee926695ac324ea6e8d291935525d",
"reference": "4983ec79b9dee926695ac324ea6e8d291935525d",
"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.65.0"
"source": "https://github.com/PHP-CS-Fixer/shim/tree/v3.68.1"
},
"time": "2024-11-25T00:39:41+00:00"
"time": "2025-01-17T09:21:08+00:00"
},
{
"name": "phpdocumentor/reflection-common",
@ -1214,16 +1214,16 @@
},
{
"name": "phpstan/phpstan",
"version": "1.12.13",
"version": "1.12.15",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
"reference": "9b469068840cfa031e1deaf2fa1886d00e20680f"
"reference": "c91d4e8bc056f46cf653656e6f71004b254574d1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/9b469068840cfa031e1deaf2fa1886d00e20680f",
"reference": "9b469068840cfa031e1deaf2fa1886d00e20680f",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/c91d4e8bc056f46cf653656e6f71004b254574d1",
"reference": "c91d4e8bc056f46cf653656e6f71004b254574d1",
"shasum": ""
},
"require": {
@ -1268,7 +1268,7 @@
"type": "github"
}
],
"time": "2024-12-17T17:00:20+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": "5a88337185d08d54ac102bc6eb137fc432ea70fb"
"reference": "e7a38fcc13e4ddfe9a28d5c7bf50aa9a9da758ec"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/5a88337185d08d54ac102bc6eb137fc432ea70fb",
"reference": "5a88337185d08d54ac102bc6eb137fc432ea70fb",
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/e7a38fcc13e4ddfe9a28d5c7bf50aa9a9da758ec",
"reference": "e7a38fcc13e4ddfe9a28d5c7bf50aa9a9da758ec",
"shasum": ""
},
"conflict": {
@ -1663,7 +1663,7 @@
"datatables/datatables": "<1.10.10",
"david-garcia/phpwhois": "<=4.3.1",
"dbrisinajumi/d2files": "<1",
"dcat/laravel-admin": "<=2.1.3",
"dcat/laravel-admin": "<=2.1.3|==2.2.0.0-beta|==2.2.2.0-beta",
"derhansen/fe_change_pwd": "<2.0.5|>=3,<3.0.3",
"derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1|>=7,<7.4",
"desperado/xml-bundle": "<=0.1.7",
@ -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",
@ -1830,7 +1833,7 @@
"james-heinrich/phpthumb": "<1.7.12",
"jasig/phpcas": "<1.3.3",
"jcbrand/converse.js": "<3.3.3",
"joelbutcher/socialstream": "<6.2",
"joelbutcher/socialstream": "<5.6|>=6,<6.2",
"johnbillion/wp-crontrol": "<1.16.2",
"joomla/application": "<1.0.13",
"joomla/archive": "<1.1.12|>=2,<2.0.1",
@ -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,10 +1949,12 @@
"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",
"nilsteampassnet/teampass": "<3.0.10",
"nilsteampassnet/teampass": "<3.1.3.1-dev",
"nonfiction/nterchange": "<4.1.1",
"notrinos/notrinos-erp": "<=0.7",
"noumo/easyii": "<=0.9",
@ -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",
@ -2202,18 +2209,20 @@
"t3s/content-consent": "<1.0.3|>=2,<2.0.2",
"tastyigniter/tastyigniter": "<3.3",
"tcg/voyager": "<=1.4",
"tecnickcom/tcpdf": "<=6.7.5",
"tecnickcom/tc-lib-pdf-font": "<2.6.4",
"tecnickcom/tcpdf": "<6.8",
"terminal42/contao-tablelookupwizard": "<3.3.5",
"thelia/backoffice-default-template": ">=2.1,<2.1.2",
"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",
"tinymighty/wiki-seo": "<1.2.2",
"titon/framework": "<9.9.99",
"tltneon/lgsl": "<7",
"tobiasbg/tablepress": "<=2.0.0.0-RC1",
"topthink/framework": "<6.0.17|>=6.1,<=8.0.4",
"topthink/think": "<=6.1.1",
@ -2227,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",
@ -2291,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",
@ -2381,7 +2397,7 @@
"type": "tidelift"
}
],
"time": "2024-12-23T19:04:22+00:00"
"time": "2025-01-15T23:05:13+00:00"
},
{
"name": "sebastian/diff",
@ -2520,16 +2536,16 @@
},
{
"name": "symfony/console",
"version": "v6.4.15",
"version": "v6.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd"
"reference": "799445db3f15768ecc382ac5699e6da0520a0a04"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/f1fc6f47283e27336e7cebb9e8946c8de7bff9bd",
"reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd",
"url": "https://api.github.com/repos/symfony/console/zipball/799445db3f15768ecc382ac5699e6da0520a0a04",
"reference": "799445db3f15768ecc382ac5699e6da0520a0a04",
"shasum": ""
},
"require": {
@ -2594,7 +2610,7 @@
"terminal"
],
"support": {
"source": "https://github.com/symfony/console/tree/v6.4.15"
"source": "https://github.com/symfony/console/tree/v6.4.17"
},
"funding": [
{
@ -2610,7 +2626,7 @@
"type": "tidelift"
}
],
"time": "2024-11-06T14:19:14+00:00"
"time": "2024-12-07T12:07:30+00:00"
},
{
"name": "symfony/deprecation-contracts",
@ -2631,12 +2647,12 @@
},
"type": "library",
"extra": {
"thanks": {
"url": "https://github.com/symfony/contracts",
"name": "symfony/contracts"
},
"branch-alias": {
"dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
"url": "https://github.com/symfony/contracts"
}
},
"autoload": {
@ -3087,12 +3103,12 @@
},
"type": "library",
"extra": {
"thanks": {
"url": "https://github.com/symfony/contracts",
"name": "symfony/contracts"
},
"branch-alias": {
"dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
"url": "https://github.com/symfony/contracts"
}
},
"autoload": {

View File

@ -5,9 +5,9 @@ OC.L10N.register(
"Podcast" : "Podcast",
"RePod" : "RePod",
"🔊 Browse, manage and listen to podcasts" : "🔊 Suchen, Verwalten und Anhören von Podcasts",
"## Features\n- 🔍 Browse and subscribe huge collection of podcasts\n- 🔊 Listen to episodes directly in Nextcloud\n- 🌐 Sync your activity with [AntennaPod](https://antennapod.org/) and [other apps](https://git.crystalyx.net/Xefir/repod#clients-supporting-sync-of-gpoddersync)\n- 📱 Mobile friendly interface\n- 📡 Import and export your subscriptions\n- ➡️ Full features comparison [here](https://git.crystalyx.net/Xefir/repod#comparaison-with-similar-apps-for-nextcloud)\n\n## Requirements\nYou need to have [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installed to use this app!" : "## 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- 📱 Mobile-freundliche Schnittstelle\n- 📡 Importieren und Exportieren Ihrer Abonnements\n- ➡️ Vollständiger Funktionsvergleich [hier](https://git.crystalyx.net/Xefir/repod#comparaison-with-similar-apps-for-nextcloud)\n\n## Voraussetzungen\nDu musst [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installiert haben, um diese App zu benutzen!",
"## Features\n- 🔍 Browse and subscribe huge collection of podcasts\n- 🔊 Listen to episodes directly in Nextcloud\n- 🌐 Sync your activity with [AntennaPod](https://antennapod.org/) and [other apps](https://git.crystalyx.net/Xefir/repod#clients-supporting-sync-of-gpoddersync)\n- 📱 Mobile friendly interface\n- 📡 Import and export your subscriptions\n- ➡️ Full features comparison [here](https://git.crystalyx.net/Xefir/repod#comparaison-with-similar-apps-for-nextcloud)\n\n## Requirements\nYou need to have [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installed to use this app!" : "## 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- 📱 Handy-freundliche Schnittstelle\n- 📡 Importieren und Exportieren Ihrer Abonnements\n- ➡️ Vollständiger Funktionsvergleich [hier](https://git.crystalyx.net/Xefir/repod#comparaison-with-similar-apps-for-nextcloud)\n\n## Voraussetzungen\nDu musst [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installiert haben, um diese App zu benutzen!",
"Download" : "Herunterladen",
"Skip to {match}" : "Springen zu {match}",
"Skip to {match}" : "Springe zu {match}",
"Add a RSS link" : "Einen RSS-Link hinzufügen",
"Subscribe" : "Abonnieren",
"Error while adding the feed" : "Fehler beim Hinzufügen des Feeds",
@ -16,24 +16,24 @@ OC.L10N.register(
"Hot podcasts" : "Beliebte Podcasts",
"Could not fetch tops" : "Titel können nicht abgerufen werden",
"Copy feed" : "Feed kopieren",
"Link copied to the clipboard" : "Der Link des Feeds wurde in die Zwischenablage kopiert",
"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" : "Ungelesene alle",
"Unread all" : "Ungelesen",
"Select all" : "Alle auswählen",
"Unselect all" : "Auswahl aufheben",
"Unselect all" : "Alles abwählen",
"Could not fetch episodes" : "Folgen können nicht abgerufen werden",
"_%n episode selected_::_%n episodes selected_" : ["%n Folge ausgewählt","%n Folgen ausgewählt"],
"Rewind 10 seconds" : "10 Sekunden zurückspulen",
"Rewind 10 seconds" : "10 Sekunden zurück",
"Pause" : "Pause",
"Fast forward 30 seconds" : "30 Sekunden vorspulen",
"Fast forward 30 seconds" : "30 Sekunden vor",
"Mute" : "Stumm",
"Unmute" : "Stummschalten",
"Unmute" : "Stummschalten aufheben",
"Export subscriptions" : "Abonnements exportieren",
"Filtering episodes" : "Folgen filtern",
"Show all" : "Zeige alles",
@ -45,21 +45,21 @@ OC.L10N.register(
"Rate RePod ❤️" : "Bewerte RePod ❤️",
"Sleep timer" : "Einschlaftimer",
"Minutes" : "Minuten",
"_%n min_::_%n mins_" : ["%n min","%n mins"],
"_%n min_::_%n mins_" : ["%n Minute","%n Minuten"],
"_%n sec_::_%n secs_" : ["%n sec","%n secs"],
"Playback speed" : "Wiedergabegeschwindigkeit",
"Favorite" : "Favorit",
"Are you sure you want to delete this subscription?" : "Bist Du sicher, dass Du das Abonnement löschen möchtest?",
"Error while removing the feed" : "Fehler beim Löschen des Feeds",
"You can only have 10 favorites" : "Du kannst nur 10 Favoriten haben",
"You can only have 10 favorites" : "Du kannst nur max. 10 Favoriten haben",
"Add a podcast" : "Einen Podcast hinzufügen",
"Could not fetch subscriptions" : "Abonnements können nicht abgerufen werden",
"Find a podcast" : "Finde einen Podcast",
"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-Erweiterungskonflikt mit RePod"
"A browser extension conflict with RePod" : "Ein Browser-Plugin Problem mit RePod"
},
"nplurals=2; plural=n != 1;");

View File

@ -3,9 +3,9 @@
"Podcast" : "Podcast",
"RePod" : "RePod",
"🔊 Browse, manage and listen to podcasts" : "🔊 Suchen, Verwalten und Anhören von Podcasts",
"## Features\n- 🔍 Browse and subscribe huge collection of podcasts\n- 🔊 Listen to episodes directly in Nextcloud\n- 🌐 Sync your activity with [AntennaPod](https://antennapod.org/) and [other apps](https://git.crystalyx.net/Xefir/repod#clients-supporting-sync-of-gpoddersync)\n- 📱 Mobile friendly interface\n- 📡 Import and export your subscriptions\n- ➡️ Full features comparison [here](https://git.crystalyx.net/Xefir/repod#comparaison-with-similar-apps-for-nextcloud)\n\n## Requirements\nYou need to have [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installed to use this app!" : "## 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- 📱 Mobile-freundliche Schnittstelle\n- 📡 Importieren und Exportieren Ihrer Abonnements\n- ➡️ Vollständiger Funktionsvergleich [hier](https://git.crystalyx.net/Xefir/repod#comparaison-with-similar-apps-for-nextcloud)\n\n## Voraussetzungen\nDu musst [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installiert haben, um diese App zu benutzen!",
"## Features\n- 🔍 Browse and subscribe huge collection of podcasts\n- 🔊 Listen to episodes directly in Nextcloud\n- 🌐 Sync your activity with [AntennaPod](https://antennapod.org/) and [other apps](https://git.crystalyx.net/Xefir/repod#clients-supporting-sync-of-gpoddersync)\n- 📱 Mobile friendly interface\n- 📡 Import and export your subscriptions\n- ➡️ Full features comparison [here](https://git.crystalyx.net/Xefir/repod#comparaison-with-similar-apps-for-nextcloud)\n\n## Requirements\nYou need to have [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installed to use this app!" : "## 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- 📱 Handy-freundliche Schnittstelle\n- 📡 Importieren und Exportieren Ihrer Abonnements\n- ➡️ Vollständiger Funktionsvergleich [hier](https://git.crystalyx.net/Xefir/repod#comparaison-with-similar-apps-for-nextcloud)\n\n## Voraussetzungen\nDu musst [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installiert haben, um diese App zu benutzen!",
"Download" : "Herunterladen",
"Skip to {match}" : "Springen zu {match}",
"Skip to {match}" : "Springe zu {match}",
"Add a RSS link" : "Einen RSS-Link hinzufügen",
"Subscribe" : "Abonnieren",
"Error while adding the feed" : "Fehler beim Hinzufügen des Feeds",
@ -14,24 +14,24 @@
"Hot podcasts" : "Beliebte Podcasts",
"Could not fetch tops" : "Titel können nicht abgerufen werden",
"Copy feed" : "Feed kopieren",
"Link copied to the clipboard" : "Der Link des Feeds wurde in die Zwischenablage kopiert",
"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" : "Ungelesene alle",
"Unread all" : "Ungelesen",
"Select all" : "Alle auswählen",
"Unselect all" : "Auswahl aufheben",
"Unselect all" : "Alles abwählen",
"Could not fetch episodes" : "Folgen können nicht abgerufen werden",
"_%n episode selected_::_%n episodes selected_" : ["%n Folge ausgewählt","%n Folgen ausgewählt"],
"Rewind 10 seconds" : "10 Sekunden zurückspulen",
"Rewind 10 seconds" : "10 Sekunden zurück",
"Pause" : "Pause",
"Fast forward 30 seconds" : "30 Sekunden vorspulen",
"Fast forward 30 seconds" : "30 Sekunden vor",
"Mute" : "Stumm",
"Unmute" : "Stummschalten",
"Unmute" : "Stummschalten aufheben",
"Export subscriptions" : "Abonnements exportieren",
"Filtering episodes" : "Folgen filtern",
"Show all" : "Zeige alles",
@ -43,21 +43,21 @@
"Rate RePod ❤️" : "Bewerte RePod ❤️",
"Sleep timer" : "Einschlaftimer",
"Minutes" : "Minuten",
"_%n min_::_%n mins_" : ["%n min","%n mins"],
"_%n min_::_%n mins_" : ["%n Minute","%n Minuten"],
"_%n sec_::_%n secs_" : ["%n sec","%n secs"],
"Playback speed" : "Wiedergabegeschwindigkeit",
"Favorite" : "Favorit",
"Are you sure you want to delete this subscription?" : "Bist Du sicher, dass Du das Abonnement löschen möchtest?",
"Error while removing the feed" : "Fehler beim Löschen des Feeds",
"You can only have 10 favorites" : "Du kannst nur 10 Favoriten haben",
"You can only have 10 favorites" : "Du kannst nur max. 10 Favoriten haben",
"Add a podcast" : "Einen Podcast hinzufügen",
"Could not fetch subscriptions" : "Abonnements können nicht abgerufen werden",
"Find a podcast" : "Finde einen Podcast",
"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-Erweiterungskonflikt mit RePod"
"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,

1355
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

@ -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-12 23: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"
@ -18,7 +18,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.8.4\n"
"X-Generator: Weblate 5.9.2\n"
#: /app/lib/Controller/OpmlController.php:46
msgid "RePod Subscriptions"
@ -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
@ -162,19 +160,16 @@ msgstr "Alles lesen"
#: /app/specialVueFakeDummyForL10nScript.js:32
#: /app/specialVueFakeDummyForL10nScript.js:33
#: /app/specialVueFakeDummyForL10nScript.js:34
#, fuzzy
msgid "Unread all"
msgstr "Ungelesene alle"
msgstr "Ungelesen"
#: /app/specialVueFakeDummyForL10nScript.js:35
#, fuzzy
msgid "Select all"
msgstr "Alle auswählen"
#: /app/specialVueFakeDummyForL10nScript.js:36
#, fuzzy
msgid "Unselect all"
msgstr "Auswahl aufheben"
msgstr "Alles abwählen"
#: /app/specialVueFakeDummyForL10nScript.js:37
#: /app/specialVueFakeDummyForL10nScript.js:40
@ -182,37 +177,32 @@ msgid "Could not fetch episodes"
msgstr "Folgen können nicht abgerufen werden"
#: /app/specialVueFakeDummyForL10nScript.js:39
#, fuzzy
msgid "%n episode selected"
msgid_plural "%n episodes selected"
msgstr[0] "%n Folge ausgewählt"
msgstr[1] "%n Folgen ausgewählt"
#: /app/specialVueFakeDummyForL10nScript.js:41
#, fuzzy
msgid "Rewind 10 seconds"
msgstr "10 Sekunden zurückspulen"
msgstr "10 Sekunden zurück"
#: /app/specialVueFakeDummyForL10nScript.js:42
msgid "Pause"
msgstr "Pause"
#: /app/specialVueFakeDummyForL10nScript.js:44
#, fuzzy
msgid "Fast forward 30 seconds"
msgstr "30 Sekunden vorspulen"
msgstr "30 Sekunden vor"
#: /app/specialVueFakeDummyForL10nScript.js:45
#: /app/specialVueFakeDummyForL10nScript.js:46
#: /app/specialVueFakeDummyForL10nScript.js:47
#, fuzzy
msgid "Mute"
msgstr "Stumm"
#: /app/specialVueFakeDummyForL10nScript.js:48
#, fuzzy
msgid "Unmute"
msgstr "Stummschalten"
msgstr "Stummschalten aufheben"
#: /app/specialVueFakeDummyForL10nScript.js:49
msgid "Export subscriptions"
@ -251,21 +241,18 @@ msgid "Rate RePod ❤️"
msgstr "Bewerte RePod ❤️"
#: /app/specialVueFakeDummyForL10nScript.js:58
#, fuzzy
msgid "Sleep timer"
msgstr "Einschlaftimer"
#: /app/specialVueFakeDummyForL10nScript.js:59
#, fuzzy
msgid "Minutes"
msgstr "Minuten"
#: /app/specialVueFakeDummyForL10nScript.js:60
#, fuzzy
msgid "%n min"
msgid_plural "%n mins"
msgstr[0] "%n min"
msgstr[1] "%n mins"
msgstr[0] "%n Minute"
msgstr[1] "%n Minuten"
#: /app/specialVueFakeDummyForL10nScript.js:61
msgid "%n sec"
@ -274,14 +261,12 @@ msgstr[0] "%n sec"
msgstr[1] "%n secs"
#: /app/specialVueFakeDummyForL10nScript.js:62
#, fuzzy
msgid "Playback speed"
msgstr "Wiedergabegeschwindigkeit"
#: /app/specialVueFakeDummyForL10nScript.js:63
#: /app/specialVueFakeDummyForL10nScript.js:64
#: /app/specialVueFakeDummyForL10nScript.js:65
#, fuzzy
msgid "Favorite"
msgstr "Favorit"
@ -294,9 +279,8 @@ msgid "Error while removing the feed"
msgstr "Fehler beim Löschen des Feeds"
#: /app/specialVueFakeDummyForL10nScript.js:68
#, fuzzy
msgid "You can only have 10 favorites"
msgstr "Du kannst nur 10 Favoriten haben"
msgstr "Du kannst nur max. 10 Favoriten haben"
#: /app/specialVueFakeDummyForL10nScript.js:69
msgid "Add a podcast"
@ -323,16 +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
#, fuzzy
msgid "No favorites"
msgstr "Keine Favoriten"
#: /app/src/store/player.ts:93
#, fuzzy
#: /app/src/store/player.ts:122
msgid "A browser extension conflict with RePod"
msgstr "Ein Browser-Erweiterungskonflikt mit 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 ""