Compare commits
92 Commits
Author | SHA1 | Date | |
---|---|---|---|
8cb58fe388 | |||
a9be73b88d | |||
0c26182721 | |||
e439730a4d | |||
f0a2d199f9 | |||
8fe01c2222 | |||
03baaa9875 | |||
d455385382 | |||
|
08ce645960 | ||
a2e14d65f2 | |||
f247b83b90 | |||
|
c7f07e4562 | ||
e4f0ae8f83 | |||
0648f90768 | |||
|
0514ce24ce | ||
|
70bd8c191c | ||
c5b3434b31 | |||
|
921b14b2d3 | ||
f79a19116d | |||
34ad127a0b | |||
697586e4de | |||
|
98011122b5 | ||
|
a4f2151ebe | ||
|
6b44189f07 | ||
b606a239bc | |||
|
9823a1eadf | ||
d11f8d41c0 | |||
de52f111c5 | |||
407c93ae49 | |||
17ef77ea6e | |||
|
20a9a9f14d | ||
676b1e0ea2 | |||
0edf8d2634 | |||
56c9102284 | |||
75aad7baab | |||
668c377c33 | |||
3aa5a6020e | |||
5b0b1dcc81 | |||
4f412c23c0 | |||
c34646b72c | |||
43692a233c | |||
6e289b02b4 | |||
5a58b253d2 | |||
7b4c39499a | |||
427c6b2ee8 | |||
cbe8750fd2 | |||
|
bc6c22e3c5 | ||
785e6c7832 | |||
b9f254f561 | |||
|
b182f7e752 | ||
ee48860a47 | |||
64dcfe36fe | |||
1a65befeed | |||
082964d4e2 | |||
3a503e1969 | |||
0024507ed5 | |||
3232723602 | |||
c3d6319402 | |||
|
bf40156f68 | ||
2dd9578257 | |||
7cd45d3539 | |||
8fd3eada75 | |||
|
3ebfbf6df7 | ||
133a8e8a09 | |||
|
d00e72439e | ||
4108ae57bc | |||
|
92ad21d49b | ||
761b3f1079 | |||
fb586e7115 | |||
|
11e0e0e675 | ||
|
f2de304d60 | ||
cf298db3d7 | |||
|
749fc6e628 | ||
bfebf4996f | |||
|
2a88b0d392 | ||
b8035a21ee | |||
a51fefb321 | |||
f1442c6c5f | |||
13515c3141 | |||
|
d53f9216c5 | ||
|
f4093378a9 | ||
|
6992ce6e50 | ||
|
f6630f91d8 | ||
70184c79b0 | |||
|
9e934e6ca6 | ||
0d017bbc68 | |||
|
3b2981d201 | ||
25949e98c9 | |||
b002e3bab8 | |||
d80044934f | |||
|
4d88f485fb | ||
|
ae66036a82 |
@ -9,5 +9,6 @@
|
||||
|
||||
/node_modules/
|
||||
/js/
|
||||
/css/
|
||||
|
||||
/build/
|
||||
|
@ -14,7 +14,7 @@ jobs:
|
||||
|
||||
php:
|
||||
runs-on: ubuntu-latest
|
||||
container: nextcloud:29
|
||||
container: nextcloud:30
|
||||
steps:
|
||||
- run: apt-get update
|
||||
- run: apt-get install -y git nodejs
|
||||
@ -30,15 +30,9 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: skjnldsv/read-package-engines-version-actions@v3
|
||||
id: versions
|
||||
with:
|
||||
fallbackNode: '^20'
|
||||
fallbackNpm: '^10'
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
- run: npm i -g npm@${{ steps.versions.outputs.npmVersion }}
|
||||
node-version: "^20"
|
||||
- run: npm ci
|
||||
- run: npm run lint
|
||||
- run: npm run stylelint
|
||||
@ -47,22 +41,16 @@ jobs:
|
||||
release:
|
||||
if: gitea.ref_type == 'tag'
|
||||
runs-on: ubuntu-latest
|
||||
container: nextcloud:29
|
||||
container: nextcloud:30
|
||||
steps:
|
||||
- run: apt-get update
|
||||
- run: apt-get install -y git nodejs
|
||||
- uses: actions/checkout@v4
|
||||
- run: curl -sSLo /usr/local/bin/composer https://getcomposer.org/download/latest-stable/composer.phar
|
||||
- run: chmod +x /usr/local/bin/composer
|
||||
- uses: skjnldsv/read-package-engines-version-actions@v3
|
||||
id: versions
|
||||
with:
|
||||
fallbackNode: '^20'
|
||||
fallbackNpm: '^10'
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
- run: npm i -g npm@${{ steps.versions.outputs.npmVersion }}
|
||||
node-version: "^20"
|
||||
- run: make dist
|
||||
- uses: akkuman/gitea-release-action@v1
|
||||
with:
|
||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -9,5 +9,6 @@
|
||||
|
||||
/node_modules/
|
||||
/js/
|
||||
/css/
|
||||
|
||||
/build/
|
||||
|
@ -9,5 +9,6 @@ tests/.phpunit.cache
|
||||
|
||||
node_modules/
|
||||
js/
|
||||
css/
|
||||
|
||||
build/
|
||||
|
@ -15,7 +15,6 @@ class MyConfig extends Config
|
||||
$rules['curly_braces_position']['classes_opening_brace'] = 'next_line_unless_newline_at_signature_end';
|
||||
$rules['phpdoc_separation'] = false;
|
||||
$rules['phpdoc_to_comment'] = false;
|
||||
$rules['single_line_comment_style'] = false;
|
||||
return $rules;
|
||||
}
|
||||
}
|
||||
|
29
CHANGELOG.md
29
CHANGELOG.md
@ -1,3 +1,32 @@
|
||||
## 3.3.2 - What a Nightmare - 2024-10-24
|
||||
|
||||
### Fixed
|
||||
- 🚑 Revert [#178](https://git.crystalyx.net/Xefir/repod/issues/178) not working on big subscriptions lists
|
||||
[#182](https://git.crystalyx.net/Xefir/repod/issues/182) reported by @SteveDinn
|
||||
|
||||
## 3.3.1 - Breaking the Loop - 2024-10-24
|
||||
|
||||
### Changed
|
||||
- ⚡ Speed up the loading time of subscriptions
|
||||
[#178](https://git.crystalyx.net/Xefir/repod/issues/178) reported by @MikeAndrews
|
||||
|
||||
### Fixed
|
||||
- 🐛 Prevent Firefox for going nuts when having Plasma Integration addon installed
|
||||
[#164](https://git.crystalyx.net/Xefir/repod/issues/164) reported by @cichy1173, @Share1440 and @mark.collins
|
||||
|
||||
## 3.3.0 - Into The Jet Lag - 2024-10-18
|
||||
|
||||
### Changed
|
||||
- 🧑💻 CSS isn't mixed in the main JS file anymore
|
||||
|
||||
### Fixed
|
||||
- 🐛 App won't load on Firefox 115
|
||||
[#158](https://git.crystalyx.net/Xefir/repod/issues/158) reported by @Jaunty and @mark.collins
|
||||
- 🔇 Volume slider didn't work properly
|
||||
|
||||
### Deprecated
|
||||
- 💣 Require Nextcloud 29 or more
|
||||
|
||||
## 3.2.0 - Typing fast - 2024-09-15
|
||||
|
||||
### Added
|
||||
|
@ -1,4 +1,4 @@
|
||||
FROM nextcloud:29
|
||||
FROM nextcloud:30
|
||||
|
||||
ENV NEXTCLOUD_UPDATE=1
|
||||
ENV NEXTCLOUD_ADMIN_USER=repod
|
||||
|
@ -58,12 +58,16 @@ You need to have [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) inst
|
||||
| [AntennaPod](https://antennapod.org) | Initial purpose for this project, as a synchronization endpoint for this client.<br> Support is available [as of version 2.5.1](https://github.com/AntennaPod/AntennaPod/pull/5243/). |
|
||||
| [KDE Kasts](https://apps.kde.org/de/kasts/) | Supported since version 21.12 |
|
||||
| [Podcast Merlin](https://github.com/yoyoooooooooo/Podcast-Merlin--Nextcloud-Gpodder-Client-For-Windows) | Full sync support podcast client for Windows |
|
||||
| [Cardo](https://n0vella.github.io/#/cardo) | Podcast client with sync support, for Windows, Mac and Linux |
|
||||
| [Cardo](https://cardo-podcast.github.io/#/cardo) | Podcast client with sync support, for Windows, Mac and Linux |
|
||||
|
||||
## Installation
|
||||
|
||||
Either from the official Nextcloud [app store](https://apps.nextcloud.com/apps/repod) or by downloading the [latest release](https://git.crystalyx.net/Xefir/repod/releases/latest) and extracting it into your Nextcloud `apps/` directory.
|
||||
|
||||
## Known issues
|
||||
|
||||
- Conflict with Plasma Integration Firefox addon ([#164](https://git.crystalyx.net/Xefir/repod/issues/164))
|
||||
|
||||
## Credits
|
||||
|
||||
- [GPodder Sync](https://github.com/thrillfall/nextcloud-gpodder) for the database API
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
## Requirements
|
||||
You need to have [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installed to use this app!]]></description>
|
||||
<version>3.2.0</version>
|
||||
<version>3.3.2</version>
|
||||
<licence>agpl</licence>
|
||||
<author mail="xefir@crystalyx.net" homepage="https://crystalyx.net">Michel Roux</author>
|
||||
<namespace>RePod</namespace>
|
||||
@ -29,12 +29,15 @@ You need to have [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) inst
|
||||
<screenshot>https://git.crystalyx.net/Xefir/repod/raw/branch/main/screens/modal.png</screenshot>
|
||||
<dependencies>
|
||||
<php min-version="8.1"/>
|
||||
<nextcloud min-version="27" max-version="30"/>
|
||||
<nextcloud min-version="29" max-version="30"/>
|
||||
</dependencies>
|
||||
<navigations>
|
||||
<navigation>
|
||||
<id>repod</id>
|
||||
<name>Podcast</name>
|
||||
<route>repod.page.index</route>
|
||||
<icon>app.svg</icon>
|
||||
<type>link</type>
|
||||
</navigation>
|
||||
</navigations>
|
||||
</info>
|
||||
|
@ -1,27 +0,0 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* Create your routes in here. The name is the lowercase name of the controller
|
||||
* without the controller part, the stuff after the hash is the method.
|
||||
* e.g. page#index -> OCA\RePod\Controller\PageController->index().
|
||||
*
|
||||
* The controller class has to be registered in the application.php file since
|
||||
* it's instantiated in there
|
||||
*/
|
||||
return [
|
||||
'routes' => [
|
||||
['name' => 'page#index', 'url' => '/', 'verb' => 'GET'],
|
||||
['name' => 'page#feed', 'url' => '/feed/{path}', 'verb' => 'GET', 'requirements' => ['path' => '.+']],
|
||||
['name' => 'page#discover', 'url' => '/discover', 'verb' => 'GET'],
|
||||
['name' => 'episodes#action', 'url' => '/episodes/action', 'verb' => 'GET'],
|
||||
['name' => 'episodes#list', 'url' => '/episodes/list', 'verb' => 'GET'],
|
||||
['name' => 'opml#export', 'url' => '/opml/export', 'verb' => 'GET'],
|
||||
['name' => 'opml#import', 'url' => '/opml/import', 'verb' => 'POST'],
|
||||
['name' => 'podcast#index', 'url' => '/podcast', 'verb' => 'GET'],
|
||||
['name' => 'search#index', 'url' => '/search', 'verb' => 'GET'],
|
||||
['name' => 'toplist#hot', 'url' => '/toplist/hot', 'verb' => 'GET'],
|
||||
['name' => 'toplist#new', 'url' => '/toplist/new', 'verb' => 'GET'],
|
||||
],
|
||||
];
|
@ -15,9 +15,9 @@
|
||||
"psalm": "psalm --threads=1 --no-cache --show-info=true"
|
||||
},
|
||||
"require-dev": {
|
||||
"nextcloud/ocp": "^30.0.0",
|
||||
"nextcloud/ocp": "^30.0.2",
|
||||
"roave/security-advisories": "dev-latest",
|
||||
"nextcloud/coding-standard": "^1.2.3",
|
||||
"nextcloud/coding-standard": "^1.3.2",
|
||||
"vimeo/psalm": "^5.26.1"
|
||||
},
|
||||
"config": {
|
||||
|
326
composer.lock
generated
326
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": "f21708cb7d3f7f4033053536e295e633",
|
||||
"content-hash": "2bded493404c793fc0cfceedfeccc38c",
|
||||
"packages": [],
|
||||
"packages-dev": [
|
||||
{
|
||||
@ -248,24 +248,24 @@
|
||||
},
|
||||
{
|
||||
"name": "composer/semver",
|
||||
"version": "3.4.2",
|
||||
"version": "3.4.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/composer/semver.git",
|
||||
"reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6"
|
||||
"reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/composer/semver/zipball/c51258e759afdb17f1fd1fe83bc12baaef6309d6",
|
||||
"reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6",
|
||||
"url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
|
||||
"reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.3.2 || ^7.0 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpstan/phpstan": "^1.4",
|
||||
"symfony/phpunit-bridge": "^4.2 || ^5"
|
||||
"phpstan/phpstan": "^1.11",
|
||||
"symfony/phpunit-bridge": "^3 || ^7"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@ -309,7 +309,7 @@
|
||||
"support": {
|
||||
"irc": "ircs://irc.libera.chat:6697/composer",
|
||||
"issues": "https://github.com/composer/semver/issues",
|
||||
"source": "https://github.com/composer/semver/tree/3.4.2"
|
||||
"source": "https://github.com/composer/semver/tree/3.4.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -325,7 +325,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-07-12T11:35:52+00:00"
|
||||
"time": "2024-09-19T14:15:21+00:00"
|
||||
},
|
||||
{
|
||||
"name": "composer/xdebug-handler",
|
||||
@ -524,16 +524,16 @@
|
||||
},
|
||||
{
|
||||
"name": "felixfbecker/language-server-protocol",
|
||||
"version": "v1.5.2",
|
||||
"version": "v1.5.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/felixfbecker/php-language-server-protocol.git",
|
||||
"reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842"
|
||||
"reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/6e82196ffd7c62f7794d778ca52b69feec9f2842",
|
||||
"reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842",
|
||||
"url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/a9e113dbc7d849e35b8776da39edaf4313b7b6c9",
|
||||
"reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -574,9 +574,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/felixfbecker/php-language-server-protocol/issues",
|
||||
"source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.2"
|
||||
"source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.3"
|
||||
},
|
||||
"time": "2022-03-02T22:36:06+00:00"
|
||||
"time": "2024-04-30T00:40:11+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fidry/cpu-core-counter",
|
||||
@ -639,6 +639,52 @@
|
||||
],
|
||||
"time": "2024-08-06T10:04:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "kubawerlos/php-cs-fixer-custom-fixers",
|
||||
"version": "v3.22.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers.git",
|
||||
"reference": "8701394f0c7cd450ac4fa577d24589122c1d5d5e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/kubawerlos/php-cs-fixer-custom-fixers/zipball/8701394f0c7cd450ac4fa577d24589122c1d5d5e",
|
||||
"reference": "8701394f0c7cd450ac4fa577d24589122c1d5d5e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-filter": "*",
|
||||
"ext-tokenizer": "*",
|
||||
"friendsofphp/php-cs-fixer": "^3.61.1",
|
||||
"php": "^7.4 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^9.6.4 || ^10.5.29"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"PhpCsFixerCustomFixers\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Kuba Werłos",
|
||||
"email": "werlos@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "A set of custom fixers for PHP CS Fixer",
|
||||
"support": {
|
||||
"issues": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers/issues",
|
||||
"source": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers/tree/v3.22.0"
|
||||
},
|
||||
"time": "2024-08-16T20:44:35+00:00"
|
||||
},
|
||||
{
|
||||
"name": "netresearch/jsonmapper",
|
||||
"version": "v4.5.0",
|
||||
@ -692,19 +738,20 @@
|
||||
},
|
||||
{
|
||||
"name": "nextcloud/coding-standard",
|
||||
"version": "v1.2.3",
|
||||
"version": "v1.3.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nextcloud/coding-standard.git",
|
||||
"reference": "bc9c53a5306114b60c4363057aff9c2ed10a54da"
|
||||
"reference": "9c719c4747fa26efc12f2e8b21c14a9a75c6ba6d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nextcloud/coding-standard/zipball/bc9c53a5306114b60c4363057aff9c2ed10a54da",
|
||||
"reference": "bc9c53a5306114b60c4363057aff9c2ed10a54da",
|
||||
"url": "https://api.github.com/repos/nextcloud/coding-standard/zipball/9c719c4747fa26efc12f2e8b21c14a9a75c6ba6d",
|
||||
"reference": "9c719c4747fa26efc12f2e8b21c14a9a75c6ba6d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"kubawerlos/php-cs-fixer-custom-fixers": "^3.22",
|
||||
"php": "^7.3|^8.0",
|
||||
"php-cs-fixer/shim": "^3.17"
|
||||
},
|
||||
@ -727,22 +774,22 @@
|
||||
"description": "Nextcloud coding standards for the php cs fixer",
|
||||
"support": {
|
||||
"issues": "https://github.com/nextcloud/coding-standard/issues",
|
||||
"source": "https://github.com/nextcloud/coding-standard/tree/v1.2.3"
|
||||
"source": "https://github.com/nextcloud/coding-standard/tree/v1.3.2"
|
||||
},
|
||||
"time": "2024-08-23T14:32:32+00:00"
|
||||
"time": "2024-10-14T16:49:05+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nextcloud/ocp",
|
||||
"version": "v30.0.0",
|
||||
"version": "v30.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nextcloud-deps/ocp.git",
|
||||
"reference": "a26b4e1f75983f359bd835c2529ce37b5599d58f"
|
||||
"reference": "2b439efc6c7b3684c3e2ea64a46122d9e6f8e797"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/a26b4e1f75983f359bd835c2529ce37b5599d58f",
|
||||
"reference": "a26b4e1f75983f359bd835c2529ce37b5599d58f",
|
||||
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/2b439efc6c7b3684c3e2ea64a46122d9e6f8e797",
|
||||
"reference": "2b439efc6c7b3684c3e2ea64a46122d9e6f8e797",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -750,7 +797,7 @@
|
||||
"psr/clock": "^1.0",
|
||||
"psr/container": "^2.0.2",
|
||||
"psr/event-dispatcher": "^1.0",
|
||||
"psr/log": "^1.1.4"
|
||||
"psr/log": "^2.0.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@ -771,22 +818,22 @@
|
||||
"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.0"
|
||||
"source": "https://github.com/nextcloud-deps/ocp/tree/v30.0.2"
|
||||
},
|
||||
"time": "2024-09-13T00:40:45+00:00"
|
||||
"time": "2024-10-19T00:42:39+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nikic/php-parser",
|
||||
"version": "v4.19.1",
|
||||
"version": "v4.19.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nikic/PHP-Parser.git",
|
||||
"reference": "4e1b88d21c69391150ace211e9eaf05810858d0b"
|
||||
"reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4e1b88d21c69391150ace211e9eaf05810858d0b",
|
||||
"reference": "4e1b88d21c69391150ace211e9eaf05810858d0b",
|
||||
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/715f4d25e225bc47b293a8b997fe6ce99bf987d2",
|
||||
"reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -795,7 +842,7 @@
|
||||
},
|
||||
"require-dev": {
|
||||
"ircmaxell/php-yacc": "^0.0.7",
|
||||
"phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
|
||||
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
|
||||
},
|
||||
"bin": [
|
||||
"bin/php-parse"
|
||||
@ -827,9 +874,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/nikic/PHP-Parser/issues",
|
||||
"source": "https://github.com/nikic/PHP-Parser/tree/v4.19.1"
|
||||
"source": "https://github.com/nikic/PHP-Parser/tree/v4.19.4"
|
||||
},
|
||||
"time": "2024-03-17T08:10:35+00:00"
|
||||
"time": "2024-09-29T15:01:53+00:00"
|
||||
},
|
||||
{
|
||||
"name": "php-cs-fixer/shim",
|
||||
@ -938,16 +985,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phpdocumentor/reflection-docblock",
|
||||
"version": "5.4.1",
|
||||
"version": "5.5.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
|
||||
"reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c"
|
||||
"reference": "0c70d2c566e899666f367ab7b80986beb3581e6f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c",
|
||||
"reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c",
|
||||
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/0c70d2c566e899666f367ab7b80986beb3581e6f",
|
||||
"reference": "0c70d2c566e899666f367ab7b80986beb3581e6f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -960,13 +1007,13 @@
|
||||
"webmozart/assert": "^1.9.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "~1.3.5",
|
||||
"mockery/mockery": "~1.3.5 || ~1.6.0",
|
||||
"phpstan/extension-installer": "^1.1",
|
||||
"phpstan/phpstan": "^1.8",
|
||||
"phpstan/phpstan-mockery": "^1.1",
|
||||
"phpstan/phpstan-webmozart-assert": "^1.2",
|
||||
"phpunit/phpunit": "^9.5",
|
||||
"vimeo/psalm": "^5.13"
|
||||
"psalm/phar": "^5.26"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@ -996,29 +1043,29 @@
|
||||
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
|
||||
"support": {
|
||||
"issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
|
||||
"source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.4.1"
|
||||
"source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.5.1"
|
||||
},
|
||||
"time": "2024-05-21T05:55:05+00:00"
|
||||
"time": "2024-11-06T11:58:54+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpdocumentor/type-resolver",
|
||||
"version": "1.8.2",
|
||||
"version": "1.9.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpDocumentor/TypeResolver.git",
|
||||
"reference": "153ae662783729388a584b4361f2545e4d841e3c"
|
||||
"reference": "1fb5ba8d045f5dd984ebded5b1cc66f29459422d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/153ae662783729388a584b4361f2545e4d841e3c",
|
||||
"reference": "153ae662783729388a584b4361f2545e4d841e3c",
|
||||
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/1fb5ba8d045f5dd984ebded5b1cc66f29459422d",
|
||||
"reference": "1fb5ba8d045f5dd984ebded5b1cc66f29459422d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/deprecations": "^1.0",
|
||||
"php": "^7.3 || ^8.0",
|
||||
"phpdocumentor/reflection-common": "^2.0",
|
||||
"phpstan/phpdoc-parser": "^1.13"
|
||||
"phpstan/phpdoc-parser": "^1.18"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-tokenizer": "*",
|
||||
@ -1054,22 +1101,22 @@
|
||||
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
|
||||
"support": {
|
||||
"issues": "https://github.com/phpDocumentor/TypeResolver/issues",
|
||||
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.2"
|
||||
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.9.0"
|
||||
},
|
||||
"time": "2024-02-23T11:10:43+00:00"
|
||||
"time": "2024-11-03T20:11:34+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpstan/phpdoc-parser",
|
||||
"version": "1.30.1",
|
||||
"version": "1.33.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpstan/phpdoc-parser.git",
|
||||
"reference": "51b95ec8670af41009e2b2b56873bad96682413e"
|
||||
"reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/51b95ec8670af41009e2b2b56873bad96682413e",
|
||||
"reference": "51b95ec8670af41009e2b2b56873bad96682413e",
|
||||
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/82a311fd3690fb2bf7b64d5c98f912b3dd746140",
|
||||
"reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -1101,9 +1148,9 @@
|
||||
"description": "PHPDoc parser with support for nullable, intersection and generic types",
|
||||
"support": {
|
||||
"issues": "https://github.com/phpstan/phpdoc-parser/issues",
|
||||
"source": "https://github.com/phpstan/phpdoc-parser/tree/1.30.1"
|
||||
"source": "https://github.com/phpstan/phpdoc-parser/tree/1.33.0"
|
||||
},
|
||||
"time": "2024-09-07T20:13:05+00:00"
|
||||
"time": "2024-10-13T11:25:22+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/clock",
|
||||
@ -1258,30 +1305,30 @@
|
||||
},
|
||||
{
|
||||
"name": "psr/log",
|
||||
"version": "1.1.4",
|
||||
"version": "2.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/log.git",
|
||||
"reference": "d49695b909c3b7628b6289db5479a1c204601f11"
|
||||
"reference": "ef29f6d262798707a9edd554e2b82517ef3a9376"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
|
||||
"reference": "d49695b909c3b7628b6289db5479a1c204601f11",
|
||||
"url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376",
|
||||
"reference": "ef29f6d262798707a9edd554e2b82517ef3a9376",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
"php": ">=8.0.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.1.x-dev"
|
||||
"dev-master": "2.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Log\\": "Psr/Log/"
|
||||
"Psr\\Log\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
@ -1302,9 +1349,9 @@
|
||||
"psr-3"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/php-fig/log/tree/1.1.4"
|
||||
"source": "https://github.com/php-fig/log/tree/2.0.0"
|
||||
},
|
||||
"time": "2021-05-03T11:20:27+00:00"
|
||||
"time": "2021-07-14T16:41:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "roave/security-advisories",
|
||||
@ -1312,23 +1359,23 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Roave/SecurityAdvisories.git",
|
||||
"reference": "fb263701a24214c3176ef23bfa98a7cbc59aa659"
|
||||
"reference": "e63317470a1b96346be224a68f9e64567e1001c3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/fb263701a24214c3176ef23bfa98a7cbc59aa659",
|
||||
"reference": "fb263701a24214c3176ef23bfa98a7cbc59aa659",
|
||||
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/e63317470a1b96346be224a68f9e64567e1001c3",
|
||||
"reference": "e63317470a1b96346be224a68f9e64567e1001c3",
|
||||
"shasum": ""
|
||||
},
|
||||
"conflict": {
|
||||
"3f/pygmentize": "<1.2",
|
||||
"admidio/admidio": "<4.3.10",
|
||||
"admidio/admidio": "<4.3.12",
|
||||
"adodb/adodb-php": "<=5.20.20|>=5.21,<=5.21.3",
|
||||
"aheinze/cockpit": "<2.2",
|
||||
"aimeos/ai-admin-graphql": ">=2022.04.1,<2022.10.10|>=2023.04.1,<2023.10.6|>=2024.04.1,<2024.04.6",
|
||||
"aimeos/ai-admin-graphql": ">=2022.04.1,<2022.10.10|>=2023.04.1,<2023.10.6|>=2024.04.1,<2024.07.2",
|
||||
"aimeos/ai-admin-jsonadm": "<2020.10.13|>=2021.04.1,<2021.10.6|>=2022.04.1,<2022.10.3|>=2023.04.1,<2023.10.4|==2024.04.1",
|
||||
"aimeos/ai-client-html": ">=2020.04.1,<2020.10.27|>=2021.04.1,<2021.10.22|>=2022.04.1,<2022.10.13|>=2023.04.1,<2023.10.15|>=2024.04.1,<2024.04.7",
|
||||
"aimeos/ai-controller-frontend": "<2020.10.15|>=2021.04.1,<2021.10.8|>=2022.04.1,<2022.10.8|>=2023.04.1,<2023.10.9",
|
||||
"aimeos/ai-controller-frontend": "<2020.10.15|>=2021.04.1,<2021.10.8|>=2022.04.1,<2022.10.8|>=2023.04.1,<2023.10.9|==2024.04.1",
|
||||
"aimeos/aimeos-core": ">=2022.04.1,<2022.10.17|>=2023.04.1,<2023.10.17|>=2024.04.1,<2024.04.7",
|
||||
"aimeos/aimeos-typo3": "<19.10.12|>=20,<20.10.5",
|
||||
"airesvsg/acf-to-rest-api": "<=3.1",
|
||||
@ -1337,6 +1384,7 @@
|
||||
"alextselegidis/easyappointments": "<1.5",
|
||||
"alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1",
|
||||
"amazing/media2click": ">=1,<1.3.3",
|
||||
"ameos/ameos_tarteaucitron": "<1.2.23",
|
||||
"amphp/artax": "<1.0.6|>=2,<2.0.6",
|
||||
"amphp/http": "<=1.7.2|>=2,<=2.1",
|
||||
"amphp/http-client": ">=4,<4.4",
|
||||
@ -1369,7 +1417,7 @@
|
||||
"barrelstrength/sprout-forms": "<3.9",
|
||||
"barryvdh/laravel-translation-manager": "<0.6.2",
|
||||
"barzahlen/barzahlen-php": "<2.0.1",
|
||||
"baserproject/basercms": "<5.0.9",
|
||||
"baserproject/basercms": "<=5.1.1",
|
||||
"bassjobsen/bootstrap-3-typeahead": ">4.0.2",
|
||||
"bbpress/bbpress": "<2.6.5",
|
||||
"bcosca/fatfree": "<3.7.2",
|
||||
@ -1414,13 +1462,13 @@
|
||||
"codeigniter4/shield": "<1.0.0.0-beta8",
|
||||
"codiad/codiad": "<=2.8.4",
|
||||
"composer/composer": "<1.10.27|>=2,<2.2.24|>=2.3,<2.7.7",
|
||||
"concrete5/concrete5": "<9.3.3",
|
||||
"concrete5/concrete5": "<9.3.4",
|
||||
"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": ">=3,<3.5.37|>=4,<4.4.56|>=4.5,<4.9.40|>=4.10,<4.11.7|>=4.13,<4.13.21|>=5.1,<5.1.4",
|
||||
"contao/contao": "<=5.4.1",
|
||||
"contao/core": "<3.5.39",
|
||||
"contao/core-bundle": "<4.13.40|>=5,<5.3.4",
|
||||
"contao/core-bundle": "<4.13.49|>=5,<5.3.15|>=5.4,<5.4.3",
|
||||
"contao/listing-bundle": ">=3,<=3.5.30|>=4,<4.4.8",
|
||||
"contao/managed-edition": "<=1.5",
|
||||
"corveda/phpsandbox": "<1.3.5",
|
||||
@ -1428,8 +1476,9 @@
|
||||
"craftcms/cms": "<4.6.2|>=5,<=5.2.2",
|
||||
"croogo/croogo": "<4",
|
||||
"cuyz/valinor": "<0.12",
|
||||
"czim/file-handling": "<1.5|>=2,<2.3",
|
||||
"czproject/git-php": "<4.0.3",
|
||||
"damienharper/auditor-bundle": "<6",
|
||||
"damienharper/auditor-bundle": "<5.2.6",
|
||||
"dapphp/securimage": "<3.6.6",
|
||||
"darylldoyle/safe-svg": "<1.9.10",
|
||||
"datadog/dd-trace": ">=0.30,<0.30.2",
|
||||
@ -1440,6 +1489,7 @@
|
||||
"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",
|
||||
"dev-lancer/minecraft-motd-parser": "<=1.0.5",
|
||||
"devgroup/dotplant": "<2020.09.14-dev",
|
||||
"directmailteam/direct-mail": "<6.0.3|>=7,<7.0.3|>=8,<9.5.2",
|
||||
"doctrine/annotations": "<1.2.7",
|
||||
@ -1454,9 +1504,9 @@
|
||||
"dolibarr/dolibarr": "<19.0.2",
|
||||
"dompdf/dompdf": "<2.0.4",
|
||||
"doublethreedigital/guest-entries": "<3.1.2",
|
||||
"drupal/core": ">=6,<6.38|>=7,<7.96|>=8,<10.1.8|>=10.2,<10.2.2|==11.9999999.9999999.9999999-dev",
|
||||
"drupal/core-recommended": "==11.9999999.9999999.9999999-dev",
|
||||
"drupal/drupal": ">=5,<5.11|>=6,<6.38|>=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4|==11.9999999.9999999.9999999-dev",
|
||||
"drupal/core": ">=6,<6.38|>=7,<7.96|>=8,<10.2.9|>=10.3,<10.3.6|>=11,<11.0.5",
|
||||
"drupal/core-recommended": ">=8,<10.2.9|>=10.3,<10.3.6|>=11,<11.0.5",
|
||||
"drupal/drupal": ">=5,<5.11|>=6,<6.38|>=7,<7.80|>=8,<10.2.9|>=10.3,<10.3.6|>=11,<11.0.5",
|
||||
"duncanmcclean/guest-entries": "<3.1.2",
|
||||
"dweeves/magmi": "<=0.7.24",
|
||||
"ec-cube/ec-cube": "<2.4.4|>=2.11,<=2.17.1|>=3,<=3.0.18.0-patch4|>=4,<=4.1.2",
|
||||
@ -1492,13 +1542,16 @@
|
||||
"ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.6,<=2019.03.5.1",
|
||||
"ezsystems/platform-ui-assets-bundle": ">=4.2,<4.2.3",
|
||||
"ezsystems/repository-forms": ">=2.3,<2.3.2.1-dev|>=2.5,<2.5.15",
|
||||
"ezyang/htmlpurifier": "<4.1.1",
|
||||
"ezyang/htmlpurifier": "<=4.2",
|
||||
"facade/ignition": "<1.16.15|>=2,<2.4.2|>=2.5,<2.5.2",
|
||||
"facturascripts/facturascripts": "<=2022.08",
|
||||
"fastly/magento2": "<1.2.26",
|
||||
"feehi/cms": "<=2.1.1",
|
||||
"feehi/feehicms": "<=2.1.1",
|
||||
"fenom/fenom": "<=2.12.1",
|
||||
"filament/actions": ">=3.2,<3.2.123",
|
||||
"filament/infolists": ">=3,<3.2.115",
|
||||
"filament/tables": ">=3,<3.2.115",
|
||||
"filegator/filegator": "<7.8",
|
||||
"filp/whoops": "<2.1.13",
|
||||
"fineuploader/php-traditional-server": "<=1.2.2",
|
||||
@ -1533,7 +1586,7 @@
|
||||
"froxlor/froxlor": "<=2.2.0.0-RC3",
|
||||
"frozennode/administrator": "<=5.0.12",
|
||||
"fuel/core": "<1.8.1",
|
||||
"funadmin/funadmin": "<=3.2|>=3.3.2,<=3.3.3",
|
||||
"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",
|
||||
@ -1585,7 +1638,7 @@
|
||||
"in2code/femanager": "<5.5.3|>=6,<6.3.4|>=7,<7.2.3",
|
||||
"in2code/ipandlanguageredirect": "<5.1.2",
|
||||
"in2code/lux": "<17.6.1|>=18,<24.0.2",
|
||||
"in2code/powermail": "<7.5|>=8,<8.5|>=9,<10.9|>=11,<12.4",
|
||||
"in2code/powermail": "<7.5.1|>=8,<8.5.1|>=9,<10.9.1|>=11,<12.4.1",
|
||||
"innologi/typo3-appointments": "<2.0.6",
|
||||
"intelliants/subrion": "<4.2.2",
|
||||
"inter-mediator/inter-mediator": "==5.5",
|
||||
@ -1615,21 +1668,24 @@
|
||||
"kelvinmo/simplexrd": "<3.1.1",
|
||||
"kevinpapst/kimai2": "<1.16.7",
|
||||
"khodakhah/nodcms": "<=3",
|
||||
"kimai/kimai": "<2.16",
|
||||
"kimai/kimai": "<=2.20.1",
|
||||
"kitodo/presentation": "<3.2.3|>=3.3,<3.3.4",
|
||||
"klaviyo/magento2-extension": ">=1,<3",
|
||||
"knplabs/knp-snappy": "<=1.4.2",
|
||||
"kohana/core": "<3.3.3",
|
||||
"krayin/laravel-crm": "<1.2.2",
|
||||
"krayin/laravel-crm": "<=1.3",
|
||||
"kreait/firebase-php": ">=3.2,<3.8.1",
|
||||
"kumbiaphp/kumbiapp": "<=1.1.1",
|
||||
"la-haute-societe/tcpdf": "<6.2.22",
|
||||
"laminas/laminas-diactoros": "<2.18.1|==2.19|==2.20|==2.21|==2.22|==2.23|>=2.24,<2.24.2|>=2.25,<2.25.2",
|
||||
"laminas/laminas-form": "<2.17.1|>=3,<3.0.2|>=3.1,<3.1.1",
|
||||
"laminas/laminas-http": "<2.14.2",
|
||||
"lara-zeus/artemis": ">=1,<=1.0.6",
|
||||
"lara-zeus/dynamic-dashboard": ">=3,<=3.0.1",
|
||||
"laravel/fortify": "<1.11.1",
|
||||
"laravel/framework": "<6.20.44|>=7,<7.30.6|>=8,<8.75",
|
||||
"laravel/laravel": ">=5.4,<5.4.22",
|
||||
"laravel/reverb": "<1.4",
|
||||
"laravel/socialite": ">=1,<2.0.10",
|
||||
"latte/latte": "<2.10.8",
|
||||
"lavalite/cms": "<=9|==10.1",
|
||||
@ -1642,13 +1698,14 @@
|
||||
"librenms/librenms": "<2017.08.18",
|
||||
"liftkit/database": "<2.13.2",
|
||||
"lightsaml/lightsaml": "<1.3.5",
|
||||
"limesurvey/limesurvey": "<3.27.19",
|
||||
"limesurvey/limesurvey": "<6.5.12",
|
||||
"livehelperchat/livehelperchat": "<=3.91",
|
||||
"livewire/livewire": ">2.2.4,<2.2.6|>=3.3.5,<3.4.9",
|
||||
"livewire/livewire": "<2.12.7|>=3.0.0.0-beta1,<3.5.2",
|
||||
"lms/routes": "<2.1.1",
|
||||
"localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2",
|
||||
"luyadev/yii-helpers": "<1.2.1",
|
||||
"magento/community-edition": "<2.4.5|==2.4.5|>=2.4.5.0-patch1,<2.4.5.0-patch8|==2.4.6|>=2.4.6.0-patch1,<2.4.6.0-patch6|==2.4.7",
|
||||
"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-patch10|==2.4.6|>=2.4.6.0-patch1,<2.4.6.0-patch8|>=2.4.7.0-beta1,<2.4.7.0-patch3",
|
||||
"magento/core": "<=1.9.4.5",
|
||||
"magento/magento1ce": "<1.9.4.3-dev",
|
||||
"magento/magento1ee": ">=1,<1.14.4.3-dev",
|
||||
@ -1656,12 +1713,15 @@
|
||||
"magneto/core": "<1.9.4.4-dev",
|
||||
"maikuolan/phpmussel": ">=1,<1.6",
|
||||
"mainwp/mainwp": "<=4.4.3.3",
|
||||
"mantisbt/mantisbt": "<2.26.2",
|
||||
"mantisbt/mantisbt": "<=2.26.3",
|
||||
"marcwillmann/turn": "<0.3.3",
|
||||
"matyhtf/framework": "<3.0.6",
|
||||
"mautic/core": "<4.4.12|>=5.0.0.0-alpha,<5.0.4",
|
||||
"mautic/core": "<4.4.13|>=5,<5.1.1",
|
||||
"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",
|
||||
"mediawiki/core": "<1.36.2",
|
||||
"mediawiki/cargo": "<3.6.1",
|
||||
"mediawiki/core": "<1.39.5|==1.40",
|
||||
"mediawiki/matomo": "<2.4.3",
|
||||
"mediawiki/semantic-media-wiki": "<4.0.2",
|
||||
"melisplatform/melis-asset-manager": "<5.0.1",
|
||||
@ -1681,7 +1741,7 @@
|
||||
"mojo42/jirafeau": "<4.4",
|
||||
"mongodb/mongodb": ">=1,<1.9.2",
|
||||
"monolog/monolog": ">=1.8,<1.12",
|
||||
"moodle/moodle": "<4.3.5|>=4.4.0.0-beta,<4.4.1",
|
||||
"moodle/moodle": "<4.3.6|>=4.4.0.0-beta,<4.4.2",
|
||||
"mos/cimage": "<0.7.19",
|
||||
"movim/moxl": ">=0.8,<=0.10",
|
||||
"movingbytes/social-network": "<=1.2.1",
|
||||
@ -1717,7 +1777,7 @@
|
||||
"nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1",
|
||||
"october/backend": "<1.1.2",
|
||||
"october/cms": "<1.0.469|==1.0.469|==1.0.471|==1.1.1",
|
||||
"october/october": "<=3.4.4",
|
||||
"october/october": "<=3.6.4",
|
||||
"october/rain": "<1.0.472|>=1.1,<1.1.2",
|
||||
"october/system": "<1.0.476|>=1.1,<1.1.12|>=2,<2.2.34|>=3,<3.5.15",
|
||||
"omeka/omeka-s": "<4.0.3",
|
||||
@ -1760,7 +1820,7 @@
|
||||
"phenx/php-svg-lib": "<0.5.2",
|
||||
"php-censor/php-censor": "<2.0.13|>=2.1,<2.1.5",
|
||||
"php-mod/curl": "<2.3.2",
|
||||
"phpbb/phpbb": "<3.2.10|>=3.3,<3.3.1",
|
||||
"phpbb/phpbb": "<3.3.11",
|
||||
"phpems/phpems": ">=6,<=6.1.3",
|
||||
"phpfastcache/phpfastcache": "<6.1.5|>=7,<7.1.2|>=8,<8.0.7",
|
||||
"phpmailer/phpmailer": "<6.5",
|
||||
@ -1768,8 +1828,8 @@
|
||||
"phpmyadmin/phpmyadmin": "<5.2.1",
|
||||
"phpmyfaq/phpmyfaq": "<3.2.5|==3.2.5",
|
||||
"phpoffice/common": "<0.2.9",
|
||||
"phpoffice/phpexcel": "<1.8",
|
||||
"phpoffice/phpspreadsheet": "<1.29.1|>=2,<2.1.1|>=2.2,<2.2.1",
|
||||
"phpoffice/phpexcel": "<1.8.1",
|
||||
"phpoffice/phpspreadsheet": "<1.29.2|>=2,<2.1.1|>=2.2,<2.3",
|
||||
"phpseclib/phpseclib": "<2.0.47|>=3,<3.0.36",
|
||||
"phpservermon/phpservermon": "<3.6",
|
||||
"phpsysinfo/phpsysinfo": "<3.4.3",
|
||||
@ -1806,13 +1866,13 @@
|
||||
"processwire/processwire": "<=3.0.229",
|
||||
"propel/propel": ">=2.0.0.0-alpha1,<=2.0.0.0-alpha7",
|
||||
"propel/propel1": ">=1,<=1.7.1",
|
||||
"pterodactyl/panel": "<1.11.6",
|
||||
"pterodactyl/panel": "<1.11.8",
|
||||
"ptheofan/yii2-statemachine": ">=2.0.0.0-RC1-dev,<=2",
|
||||
"ptrofimov/beanstalk_console": "<1.7.14",
|
||||
"pubnub/pubnub": "<6.1",
|
||||
"pusher/pusher-php-server": "<2.2.1",
|
||||
"pwweb/laravel-core": "<=0.3.6.0-beta",
|
||||
"pxlrbt/filament-excel": "<2.3.3",
|
||||
"pxlrbt/filament-excel": "<1.1.14|>=2.0.0.0-alpha,<2.3.3",
|
||||
"pyrocms/pyrocms": "<=3.9.1",
|
||||
"qcubed/qcubed": "<=3.1.1",
|
||||
"quickapps/cms": "<=2.0.0.0-beta2",
|
||||
@ -1823,7 +1883,7 @@
|
||||
"rap2hpoutre/laravel-log-viewer": "<0.13",
|
||||
"react/http": ">=0.7,<1.9",
|
||||
"really-simple-plugins/complianz-gdpr": "<6.4.2",
|
||||
"redaxo/source": "<=5.15.1",
|
||||
"redaxo/source": "<=5.17.1",
|
||||
"remdex/livehelperchat": "<4.29",
|
||||
"reportico-web/reportico": "<=8.1",
|
||||
"rhukster/dom-sanitizer": "<1.0.7",
|
||||
@ -1879,7 +1939,7 @@
|
||||
"slim/slim": "<2.6",
|
||||
"slub/slub-events": "<3.0.3",
|
||||
"smarty/smarty": "<4.5.3|>=5,<5.1.1",
|
||||
"snipe/snipe-it": "<6.4.2",
|
||||
"snipe/snipe-it": "<7.0.10",
|
||||
"socalnick/scn-social-auth": "<1.15.2",
|
||||
"socialiteproviders/steam": "<1.1",
|
||||
"spatie/browsershot": "<3.57.4",
|
||||
@ -1889,6 +1949,7 @@
|
||||
"spoonity/tcpdf": "<6.2.22",
|
||||
"squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1",
|
||||
"ssddanbrown/bookstack": "<24.05.1",
|
||||
"starcitizentools/citizen-skin": ">=2.6.3,<2.31",
|
||||
"statamic/cms": "<4.46|>=5.3,<5.6.2",
|
||||
"stormpath/sdk": "<9.9.99",
|
||||
"studio-42/elfinder": "<=2.1.64",
|
||||
@ -1896,7 +1957,7 @@
|
||||
"subhh/libconnect": "<7.0.8|>=8,<8.1",
|
||||
"sukohi/surpass": "<1",
|
||||
"sulu/form-bundle": ">=2,<2.5.3",
|
||||
"sulu/sulu": "<1.6.44|>=2,<2.4.17|>=2.5,<2.5.13",
|
||||
"sulu/sulu": "<1.6.44|>=2,<2.5.21|>=2.6,<2.6.5",
|
||||
"sumocoders/framework-user-bundle": "<1.4",
|
||||
"superbig/craft-audit": "<3.0.2",
|
||||
"swag/paypal": "<5.4.4",
|
||||
@ -1918,7 +1979,8 @@
|
||||
"symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4",
|
||||
"symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1",
|
||||
"symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<5.3.15|>=5.4.3,<5.4.4|>=6.0.3,<6.0.4",
|
||||
"symfony/http-foundation": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7",
|
||||
"symfony/http-client": ">=4.3,<5.4.46|>=6,<6.4.14|>=7,<7.1.7",
|
||||
"symfony/http-foundation": "<5.4.46|>=6,<6.4.14|>=7,<7.1.7",
|
||||
"symfony/http-kernel": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6",
|
||||
"symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13",
|
||||
"symfony/maker-bundle": ">=1.27,<1.29.2|>=1.30,<1.31.1",
|
||||
@ -1926,20 +1988,22 @@
|
||||
"symfony/phpunit-bridge": ">=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7",
|
||||
"symfony/polyfill": ">=1,<1.10",
|
||||
"symfony/polyfill-php55": ">=1,<1.10",
|
||||
"symfony/process": "<5.4.46|>=6,<6.4.14|>=7,<7.1.7",
|
||||
"symfony/proxy-manager-bridge": ">=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7",
|
||||
"symfony/routing": ">=2,<2.0.19",
|
||||
"symfony/runtime": ">=5.3,<5.4.46|>=6,<6.4.14|>=7,<7.1.7",
|
||||
"symfony/security": ">=2,<2.7.51|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.8",
|
||||
"symfony/security-bundle": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6",
|
||||
"symfony/security-bundle": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.4.10|>=7,<7.0.10|>=7.1,<7.1.3",
|
||||
"symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.9",
|
||||
"symfony/security-csrf": ">=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11",
|
||||
"symfony/security-guard": ">=2.8,<3.4.48|>=4,<4.4.23|>=5,<5.2.8",
|
||||
"symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7|>=5.1,<5.2.8|>=5.3,<5.3.2|>=5.4,<5.4.31|>=6,<6.3.8",
|
||||
"symfony/serializer": ">=2,<2.0.11|>=4.1,<4.4.35|>=5,<5.3.12",
|
||||
"symfony/symfony": ">=2,<4.4.51|>=5,<5.4.31|>=6,<6.3.8",
|
||||
"symfony/symfony": "<5.4.46|>=6,<6.4.14|>=7,<7.1.7",
|
||||
"symfony/translation": ">=2,<2.0.17",
|
||||
"symfony/twig-bridge": ">=2,<4.4.51|>=5,<5.4.31|>=6,<6.3.8",
|
||||
"symfony/ux-autocomplete": "<2.11.2",
|
||||
"symfony/validator": ">=2,<2.0.24|>=2.1,<2.1.12|>=2.2,<2.2.5|>=2.3,<2.3.3",
|
||||
"symfony/validator": "<5.4.43|>=6,<6.4.11|>=7,<7.1.4",
|
||||
"symfony/var-exporter": ">=4.2,<4.2.12|>=4.3,<4.3.8",
|
||||
"symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4",
|
||||
"symfony/webhook": ">=6.3,<6.3.8",
|
||||
@ -1965,16 +2029,16 @@
|
||||
"tobiasbg/tablepress": "<=2.0.0.0-RC1",
|
||||
"topthink/framework": "<6.0.17|>=6.1,<=8.0.4",
|
||||
"topthink/think": "<=6.1.1",
|
||||
"topthink/thinkphp": "<=3.2.3",
|
||||
"topthink/thinkphp": "<=3.2.3|>=6.1.3,<=8.0.4",
|
||||
"torrentpier/torrentpier": "<=2.4.3",
|
||||
"tpwd/ke_search": "<4.0.3|>=4.1,<4.6.6|>=5,<5.0.2",
|
||||
"tribalsystems/zenario": "<9.5.60602",
|
||||
"tribalsystems/zenario": "<=9.7.61188",
|
||||
"truckersmp/phpwhois": "<=4.3.1",
|
||||
"ttskch/pagination-service-provider": "<1",
|
||||
"twbs/bootstrap": "<=3.4.1|>=4,<=4.6.2",
|
||||
"twig/twig": "<1.44.8|>=2,<2.16.1|>=3,<3.11.1|>=3.12,<3.14",
|
||||
"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.13|>=11,<=11.1",
|
||||
"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-extbase": "<6.2.24|>=7,<7.6.8|==8.1.1",
|
||||
"typo3/cms-fluid": "<4.3.4|>=4.4,<4.4.1",
|
||||
@ -1991,6 +2055,7 @@
|
||||
"ua-parser/uap-php": "<3.8",
|
||||
"uasoft-indonesia/badaso": "<=2.9.7",
|
||||
"unisharp/laravel-filemanager": "<2.6.4",
|
||||
"unopim/unopim": "<0.1.4",
|
||||
"userfrosting/userfrosting": ">=0.3.1,<4.6.3",
|
||||
"usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2",
|
||||
"uvdesk/community-skeleton": "<=1.1.1",
|
||||
@ -2024,6 +2089,7 @@
|
||||
"winter/wn-dusk-plugin": "<2.1",
|
||||
"winter/wn-system-module": "<1.2.4",
|
||||
"wintercms/winter": "<=1.2.3",
|
||||
"wireui/wireui": "<1.19.3|>=2,<2.1.3",
|
||||
"woocommerce/woocommerce": "<6.6|>=8.8,<8.8.5|>=8.9,<8.9.3",
|
||||
"wp-cli/wp-cli": ">=0.12,<2.5",
|
||||
"wp-graphql/wp-graphql": "<=1.14.5",
|
||||
@ -2035,7 +2101,7 @@
|
||||
"xataface/xataface": "<3",
|
||||
"xpressengine/xpressengine": "<3.0.15",
|
||||
"yab/quarx": "<2.4.5",
|
||||
"yeswiki/yeswiki": "<4.1",
|
||||
"yeswiki/yeswiki": "<=4.4.4",
|
||||
"yetiforce/yetiforce-crm": "<=6.4",
|
||||
"yidashi/yii2cmf": "<=2",
|
||||
"yii2mod/yii2-cms": "<1.9.2",
|
||||
@ -2126,7 +2192,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-09-13T14:04:35+00:00"
|
||||
"time": "2024-11-07T19:04:57+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/diff",
|
||||
@ -2265,16 +2331,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/console",
|
||||
"version": "v6.4.11",
|
||||
"version": "v6.4.14",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/console.git",
|
||||
"reference": "42686880adaacdad1835ee8fc2a9ec5b7bd63998"
|
||||
"reference": "897c2441ed4eec8a8a2c37b943427d24dba3f26b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/42686880adaacdad1835ee8fc2a9ec5b7bd63998",
|
||||
"reference": "42686880adaacdad1835ee8fc2a9ec5b7bd63998",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/897c2441ed4eec8a8a2c37b943427d24dba3f26b",
|
||||
"reference": "897c2441ed4eec8a8a2c37b943427d24dba3f26b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -2339,7 +2405,7 @@
|
||||
"terminal"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/console/tree/v6.4.11"
|
||||
"source": "https://github.com/symfony/console/tree/v6.4.14"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -2355,7 +2421,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-08-15T22:48:29+00:00"
|
||||
"time": "2024-11-05T15:34:40+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/deprecation-contracts",
|
||||
@ -2426,16 +2492,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/filesystem",
|
||||
"version": "v6.4.9",
|
||||
"version": "v6.4.13",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/filesystem.git",
|
||||
"reference": "b51ef8059159330b74a4d52f68e671033c0fe463"
|
||||
"reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/filesystem/zipball/b51ef8059159330b74a4d52f68e671033c0fe463",
|
||||
"reference": "b51ef8059159330b74a4d52f68e671033c0fe463",
|
||||
"url": "https://api.github.com/repos/symfony/filesystem/zipball/4856c9cf585d5a0313d8d35afd681a526f038dd3",
|
||||
"reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -2472,7 +2538,7 @@
|
||||
"description": "Provides basic utilities for the filesystem",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/filesystem/tree/v6.4.9"
|
||||
"source": "https://github.com/symfony/filesystem/tree/v6.4.13"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -2488,7 +2554,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-06-28T09:49:33+00:00"
|
||||
"time": "2024-10-25T15:07:50+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
@ -2893,16 +2959,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/string",
|
||||
"version": "v6.4.11",
|
||||
"version": "v6.4.13",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/string.git",
|
||||
"reference": "5bc3eb632cf9c8dbfd6529d89be9950d1518883b"
|
||||
"reference": "38371c60c71c72b3d64d8d76f6b1bb81a2cc3627"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/string/zipball/5bc3eb632cf9c8dbfd6529d89be9950d1518883b",
|
||||
"reference": "5bc3eb632cf9c8dbfd6529d89be9950d1518883b",
|
||||
"url": "https://api.github.com/repos/symfony/string/zipball/38371c60c71c72b3d64d8d76f6b1bb81a2cc3627",
|
||||
"reference": "38371c60c71c72b3d64d8d76f6b1bb81a2cc3627",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -2959,7 +3025,7 @@
|
||||
"utf8"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/string/tree/v6.4.11"
|
||||
"source": "https://github.com/symfony/string/tree/v6.4.13"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -2975,7 +3041,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-08-12T09:55:28+00:00"
|
||||
"time": "2024-09-25T14:18:03+00:00"
|
||||
},
|
||||
{
|
||||
"name": "vimeo/psalm",
|
||||
@ -3153,8 +3219,8 @@
|
||||
},
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": [],
|
||||
"platform-dev": [],
|
||||
"platform": {},
|
||||
"platform-dev": {},
|
||||
"platform-overrides": {
|
||||
"php": "8.1"
|
||||
},
|
||||
|
@ -22,6 +22,11 @@ OC.L10N.register(
|
||||
"Open website" : "Webseite aufrufen",
|
||||
"Could not change the status of the episode" : "Kann den Status der Folge nicht ändern",
|
||||
"Could not fetch episodes" : "Folgen können nicht abgerufen werden",
|
||||
"Rewind 10 seconds" : "10 Sekunden zurückspulen",
|
||||
"Pause" : "Pause",
|
||||
"Fast forward 30 seconds" : "30 Sekunden vorspulen",
|
||||
"Mute" : "Stumm",
|
||||
"Unmute" : "Stummschalten",
|
||||
"Export subscriptions" : "Abonnements exportieren",
|
||||
"Filtering episodes" : "Folgen filtern",
|
||||
"Show all" : "Zeige alles",
|
||||
@ -43,6 +48,7 @@ OC.L10N.register(
|
||||
"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",
|
||||
"No favorites" : "Keine Favoriten"
|
||||
"No favorites" : "Keine Favoriten",
|
||||
"A browser extension conflict with RePod" : "Ein Browser-Erweiterungskonflikt mit RePod"
|
||||
},
|
||||
"");
|
||||
|
@ -20,6 +20,11 @@
|
||||
"Open website" : "Webseite aufrufen",
|
||||
"Could not change the status of the episode" : "Kann den Status der Folge nicht ändern",
|
||||
"Could not fetch episodes" : "Folgen können nicht abgerufen werden",
|
||||
"Rewind 10 seconds" : "10 Sekunden zurückspulen",
|
||||
"Pause" : "Pause",
|
||||
"Fast forward 30 seconds" : "30 Sekunden vorspulen",
|
||||
"Mute" : "Stumm",
|
||||
"Unmute" : "Stummschalten",
|
||||
"Export subscriptions" : "Abonnements exportieren",
|
||||
"Filtering episodes" : "Folgen filtern",
|
||||
"Show all" : "Zeige alles",
|
||||
@ -41,6 +46,7 @@
|
||||
"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",
|
||||
"No favorites" : "Keine Favoriten"
|
||||
"No favorites" : "Keine Favoriten",
|
||||
"A browser extension conflict with RePod" : "Ein Browser-Erweiterungskonflikt mit RePod"
|
||||
},"pluralForm" :""
|
||||
}
|
@ -22,6 +22,11 @@ OC.L10N.register(
|
||||
"Open website" : "Ouvrir le site web",
|
||||
"Could not change the status of the episode" : "Impossible de changer le status de l'épisode",
|
||||
"Could not fetch episodes" : "Impossible de récuprer les épisodes",
|
||||
"Rewind 10 seconds" : "Retour rapide de 10 secondes",
|
||||
"Pause" : "Pause",
|
||||
"Fast forward 30 seconds" : "Avance rapide de 30 secondes",
|
||||
"Mute" : "Silencer",
|
||||
"Unmute" : "Paroler",
|
||||
"Export subscriptions" : "Exporter les abonnements",
|
||||
"Filtering episodes" : "Filtrage des épisodes",
|
||||
"Show all" : "Montrer tout",
|
||||
@ -43,6 +48,7 @@ OC.L10N.register(
|
||||
"Missing required app" : "Une application requise est manquante",
|
||||
"Install GPodder Sync" : "Installer GPodder Sync",
|
||||
"Pin some subscriptions to see their latest updates" : "Ajoutez des abonnements en favoris pour obtenir les dernières nouvelles ici",
|
||||
"No favorites" : "Aucun favoris"
|
||||
"No favorites" : "Aucun favoris",
|
||||
"A browser extension conflict with RePod" : "Une extension de votre navigateur entre en conflit avec RePod"
|
||||
},
|
||||
"");
|
||||
|
@ -20,6 +20,11 @@
|
||||
"Open website" : "Ouvrir le site web",
|
||||
"Could not change the status of the episode" : "Impossible de changer le status de l'épisode",
|
||||
"Could not fetch episodes" : "Impossible de récuprer les épisodes",
|
||||
"Rewind 10 seconds" : "Retour rapide de 10 secondes",
|
||||
"Pause" : "Pause",
|
||||
"Fast forward 30 seconds" : "Avance rapide de 30 secondes",
|
||||
"Mute" : "Silencer",
|
||||
"Unmute" : "Paroler",
|
||||
"Export subscriptions" : "Exporter les abonnements",
|
||||
"Filtering episodes" : "Filtrage des épisodes",
|
||||
"Show all" : "Montrer tout",
|
||||
@ -41,6 +46,7 @@
|
||||
"Missing required app" : "Une application requise est manquante",
|
||||
"Install GPodder Sync" : "Installer GPodder Sync",
|
||||
"Pin some subscriptions to see their latest updates" : "Ajoutez des abonnements en favoris pour obtenir les dernières nouvelles ici",
|
||||
"No favorites" : "Aucun favoris"
|
||||
"No favorites" : "Aucun favoris",
|
||||
"A browser extension conflict with RePod" : "Une extension de votre navigateur entre en conflit avec RePod"
|
||||
},"pluralForm" :""
|
||||
}
|
@ -11,6 +11,9 @@ use OCA\RePod\Core\EpisodeAction\EpisodeActionReader;
|
||||
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;
|
||||
use OCP\AppFramework\Http\JSONResponse;
|
||||
use OCP\Http\Client\IClientService;
|
||||
use OCP\IRequest;
|
||||
@ -27,10 +30,9 @@ class EpisodesController extends Controller
|
||||
parent::__construct(Application::APP_ID, $request);
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
*/
|
||||
#[NoAdminRequired]
|
||||
#[NoCSRFRequired]
|
||||
#[FrontpageRoute(verb: 'GET', url: '/episodes/list')]
|
||||
public function list(string $url): JSONResponse {
|
||||
$client = $this->clientService->newClient();
|
||||
$feed = $client->get($url);
|
||||
@ -41,10 +43,9 @@ class EpisodesController extends Controller
|
||||
return new JSONResponse($episodes, $feed->getStatusCode());
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
*/
|
||||
#[NoAdminRequired]
|
||||
#[NoCSRFRequired]
|
||||
#[FrontpageRoute(verb: 'GET', url: '/episodes/action')]
|
||||
public function action(string $url): JSONResponse {
|
||||
$action = $this->episodeActionRepository->findByEpisodeUrl($url, $this->userService->getUserUID());
|
||||
|
||||
|
@ -10,6 +10,9 @@ use OCA\GPodderSync\Core\SubscriptionChange\SubscriptionChangeSaver;
|
||||
use OCA\RePod\AppInfo\Application;
|
||||
use OCA\RePod\Service\UserService;
|
||||
use OCP\AppFramework\Controller;
|
||||
use OCP\AppFramework\Http\Attribute\FrontpageRoute;
|
||||
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
|
||||
use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
|
||||
use OCP\AppFramework\Http\DataDownloadResponse;
|
||||
use OCP\AppFramework\Http\Response;
|
||||
use OCP\IL10N;
|
||||
@ -28,10 +31,9 @@ class OpmlController extends Controller
|
||||
parent::__construct(Application::APP_ID, $request);
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
*/
|
||||
#[NoAdminRequired]
|
||||
#[NoCSRFRequired]
|
||||
#[FrontpageRoute(verb: 'GET', url: '/opml/export')]
|
||||
public function export(): DataDownloadResponse {
|
||||
// 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');
|
||||
@ -82,10 +84,9 @@ class OpmlController extends Controller
|
||||
return new DataDownloadResponse((string) $xml->asXML(), 'repod-'.$dateCreated->getTimestamp().'.opml', ' application/xml');
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
*/
|
||||
#[NoAdminRequired]
|
||||
#[NoCSRFRequired]
|
||||
#[FrontpageRoute(verb: 'POST', url: '/opml/import')]
|
||||
public function import(): Response {
|
||||
$file = $this->request->getUploadedFile('import');
|
||||
|
||||
|
@ -6,6 +6,9 @@ namespace OCA\RePod\Controller;
|
||||
|
||||
use OCA\RePod\AppInfo\Application;
|
||||
use OCP\AppFramework\Controller;
|
||||
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\TemplateResponse;
|
||||
use OCP\IConfig;
|
||||
@ -21,42 +24,33 @@ class PageController extends Controller
|
||||
parent::__construct(Application::APP_ID, $request);
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
*/
|
||||
#[NoAdminRequired]
|
||||
#[NoCSRFRequired]
|
||||
#[FrontpageRoute(verb: 'GET', url: '/')]
|
||||
public function index(): TemplateResponse {
|
||||
Util::addScript(Application::APP_ID, Application::APP_ID.'-main');
|
||||
Util::addStyle(Application::APP_ID, Application::APP_ID.'-main');
|
||||
|
||||
$csp = new ContentSecurityPolicy();
|
||||
$csp->addAllowedImageDomain('*');
|
||||
$csp->addAllowedMediaDomain('*');
|
||||
|
||||
if ($this->config->getSystemValueBool('debug', false)) {
|
||||
/** @psalm-suppress DeprecatedMethod */
|
||||
$csp->allowEvalScript();
|
||||
$csp->addAllowedConnectDomain('*');
|
||||
$csp->addAllowedScriptDomain('*');
|
||||
}
|
||||
|
||||
$response = new TemplateResponse(Application::APP_ID, 'main');
|
||||
$response->setContentSecurityPolicy($csp);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
*/
|
||||
#[NoAdminRequired]
|
||||
#[NoCSRFRequired]
|
||||
#[FrontpageRoute(verb: 'GET', url: '/discover')]
|
||||
public function discover(): TemplateResponse {
|
||||
return $this->index();
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
*/
|
||||
#[NoAdminRequired]
|
||||
#[NoCSRFRequired]
|
||||
#[FrontpageRoute(verb: 'GET', url: '/feed/{path}', requirements: ['path' => '.+'])]
|
||||
public function feed(): TemplateResponse {
|
||||
return $this->index();
|
||||
}
|
||||
|
@ -8,6 +8,9 @@ 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\Attribute\FrontpageRoute;
|
||||
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
|
||||
use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
|
||||
use OCP\AppFramework\Http\JSONResponse;
|
||||
use OCP\Http\Client\IClientService;
|
||||
use OCP\ICacheFactory;
|
||||
@ -24,10 +27,9 @@ class PodcastController extends Controller
|
||||
parent::__construct(Application::APP_ID, $request);
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
*/
|
||||
#[NoAdminRequired]
|
||||
#[NoCSRFRequired]
|
||||
#[FrontpageRoute(verb: 'GET', url: '/podcast')]
|
||||
public function index(string $url): JSONResponse {
|
||||
$podcast = null;
|
||||
|
||||
|
@ -7,6 +7,9 @@ namespace OCA\RePod\Controller;
|
||||
use OCA\RePod\AppInfo\Application;
|
||||
use OCA\RePod\Service\MultiPodService;
|
||||
use OCP\AppFramework\Controller;
|
||||
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\IRequest;
|
||||
|
||||
@ -19,10 +22,9 @@ class SearchController extends Controller
|
||||
parent::__construct(Application::APP_ID, $request);
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
*/
|
||||
#[NoAdminRequired]
|
||||
#[NoCSRFRequired]
|
||||
#[FrontpageRoute(verb: 'GET', url: '/search')]
|
||||
public function index(string $q): JSONResponse {
|
||||
return new JSONResponse($this->multiPodService->search($q));
|
||||
}
|
||||
|
@ -7,6 +7,9 @@ namespace OCA\RePod\Controller;
|
||||
use OCA\RePod\AppInfo\Application;
|
||||
use OCA\RePod\Service\FyydService;
|
||||
use OCP\AppFramework\Controller;
|
||||
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\IRequest;
|
||||
|
||||
@ -19,18 +22,16 @@ class ToplistController extends Controller
|
||||
parent::__construct(Application::APP_ID, $request);
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
*/
|
||||
#[NoAdminRequired]
|
||||
#[NoCSRFRequired]
|
||||
#[FrontpageRoute(verb: 'GET', url: '/toplist/hot')]
|
||||
public function hot(): JSONResponse {
|
||||
return new JSONResponse($this->fyydService->hot());
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
*/
|
||||
#[NoAdminRequired]
|
||||
#[NoCSRFRequired]
|
||||
#[FrontpageRoute(verb: 'GET', url: '/toplist/new')]
|
||||
public function new(): JSONResponse {
|
||||
return new JSONResponse($this->fyydService->latest());
|
||||
}
|
||||
|
3766
package-lock.json
generated
3766
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
39
package.json
39
package.json
@ -1,33 +1,34 @@
|
||||
{
|
||||
"name": "repod",
|
||||
"license": "AGPL-3.0-or-later",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"build": "vue-tsc && vite build --mode production",
|
||||
"dev": "vite build --mode development",
|
||||
"dev:watch": "vite build --mode development --watch",
|
||||
"watch": "npm run dev:watch",
|
||||
"lint": "eslint src",
|
||||
"lint:fix": "eslint src --fix",
|
||||
"build": "vue-tsc && vite build",
|
||||
"dev": "vite --mode development build",
|
||||
"watch": "vite --mode development build --watch",
|
||||
"lint": "vue-tsc && eslint src",
|
||||
"lint:fix": "vue-tsc && eslint src --fix",
|
||||
"stylelint": "stylelint src/**/*.vue src/**/*.scss src/**/*.css",
|
||||
"stylelint:fix": "stylelint src/**/*.vue src/**/*.scss src/**/*.css --fix"
|
||||
},
|
||||
"prettier": "@nextcloud/prettier-config",
|
||||
"type": "module",
|
||||
"browserslist": [
|
||||
"extends @nextcloud/browserslist-config"
|
||||
],
|
||||
"dependencies": {
|
||||
"@nextcloud/axios": "^2.5.0",
|
||||
"@formatjs/intl-segmenter": "^11.7.3",
|
||||
"@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/vue": "9.0.0-alpha.5",
|
||||
"dompurify": "^3.1.6",
|
||||
"dompurify": "^3.1.7",
|
||||
"linkify-html": "^4.1.3",
|
||||
"pinia": "^2.2.2",
|
||||
"pinia": "^2.2.6",
|
||||
"toastify-js": "^1.12.0",
|
||||
"vite": "^5.4.5",
|
||||
"vite-plugin-vue-devtools": "^7.4.5",
|
||||
"vue": "^3.5.5",
|
||||
"vue-material-design-icons": "^5.3.0",
|
||||
"vite": "^5.4.10",
|
||||
"vue": "^3.5.12",
|
||||
"vue-material-design-icons": "^5.3.1",
|
||||
"vue-router": "^4.4.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
@ -36,7 +37,7 @@
|
||||
"@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/eslint-config-typescript": "^13",
|
||||
"@vue/tsconfig": "^0.5.1",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-plugin-pinia": "^0.4.1",
|
||||
@ -44,9 +45,7 @@
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "5.5",
|
||||
"vue-eslint-parser": "^9.4.3",
|
||||
"vue-tsc": "^2.1.6"
|
||||
"vue-tsc": "^2.1.10"
|
||||
},
|
||||
"browserslist": [
|
||||
"extends @nextcloud/browserslist-config"
|
||||
]
|
||||
"prettier": "@nextcloud/prettier-config"
|
||||
}
|
||||
|
@ -33,15 +33,9 @@ export default {
|
||||
},
|
||||
mounted() {
|
||||
this.init()
|
||||
setInterval(this.loop, 40000)
|
||||
},
|
||||
methods: {
|
||||
...mapActions(usePlayer, ['init', 'time']),
|
||||
loop() {
|
||||
if (this.paused === false) {
|
||||
this.time()
|
||||
}
|
||||
},
|
||||
...mapActions(usePlayer, ['init']),
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
@ -7,6 +7,7 @@
|
||||
:display-name="feed.data.author || feed.data.title"
|
||||
:is-no-user="true"
|
||||
:size="222"
|
||||
:title="feed.data.author"
|
||||
:url="feed.data.imageUrl" />
|
||||
<div v-if="feed.data" class="list">
|
||||
<h2 class="title">{{ feed.data.title }}</h2>
|
||||
|
@ -1,27 +1,53 @@
|
||||
<template>
|
||||
<div class="controls">
|
||||
<PauseIcon v-if="!paused" class="pointer" :size="50" @click="pause" />
|
||||
<PlayIcon v-if="paused" class="pointer" :size="50" @click="play" />
|
||||
<Rewind10Icon
|
||||
class="pointer rewind"
|
||||
:size="20"
|
||||
:title="t('repod', 'Rewind 10 seconds')"
|
||||
@click="seek((currentTime ?? 0) - 10)" />
|
||||
<PauseIcon
|
||||
v-if="!paused"
|
||||
class="pointer"
|
||||
:size="50"
|
||||
:title="t('repod', 'Pause')"
|
||||
@click="pause" />
|
||||
<PlayIcon
|
||||
v-if="paused"
|
||||
class="pointer"
|
||||
:size="50"
|
||||
:title="t('repod', 'Play')"
|
||||
@click="play" />
|
||||
<FastForward30Icon
|
||||
class="pointer forward"
|
||||
:size="20"
|
||||
:title="t('repod', 'Fast forward 30 seconds')"
|
||||
@click="seek((currentTime ?? 0) + 30)" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { mapActions, mapState } from 'pinia'
|
||||
import FastForward30Icon from 'vue-material-design-icons/FastForward30.vue'
|
||||
import PauseIcon from 'vue-material-design-icons/Pause.vue'
|
||||
import PlayIcon from 'vue-material-design-icons/Play.vue'
|
||||
import Rewind10Icon from 'vue-material-design-icons/Rewind10.vue'
|
||||
import { t } from '@nextcloud/l10n'
|
||||
import { usePlayer } from '../../store/player.ts'
|
||||
|
||||
export default {
|
||||
name: 'Controls',
|
||||
components: {
|
||||
FastForward30Icon,
|
||||
PauseIcon,
|
||||
PlayIcon,
|
||||
Rewind10Icon,
|
||||
},
|
||||
computed: {
|
||||
...mapState(usePlayer, ['paused']),
|
||||
...mapState(usePlayer, ['currentTime', 'paused']),
|
||||
},
|
||||
methods: {
|
||||
...mapActions(usePlayer, ['play', 'pause']),
|
||||
...mapActions(usePlayer, ['play', 'pause', 'seek']),
|
||||
t,
|
||||
},
|
||||
}
|
||||
</script>
|
||||
@ -34,4 +60,11 @@ export default {
|
||||
.pointer {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 768px) {
|
||||
.forward,
|
||||
.rewind {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
@ -4,21 +4,25 @@
|
||||
v-if="volume > 0.7"
|
||||
class="pointer"
|
||||
:size="30"
|
||||
:title="t('repod', 'Mute')"
|
||||
@click="mute" />
|
||||
<VolumeLowIcon
|
||||
v-if="volume > 0 && volume <= 0.3"
|
||||
class="pointer"
|
||||
:size="30"
|
||||
:title="t('repod', 'Mute')"
|
||||
@click="mute" />
|
||||
<VolumeMediumIcon
|
||||
v-if="volume > 0.3 && volume <= 0.7"
|
||||
class="pointer"
|
||||
:size="30"
|
||||
:title="t('repod', 'Mute')"
|
||||
@click="mute" />
|
||||
<VolumeMuteIcon
|
||||
v-if="volume === 0"
|
||||
class="pointer"
|
||||
:size="30"
|
||||
:title="t('repod', 'Unmute')"
|
||||
@click="setVolume(volumeMuted)" />
|
||||
<input
|
||||
max="1"
|
||||
@ -28,7 +32,7 @@
|
||||
:value="volume"
|
||||
@change="
|
||||
(event) =>
|
||||
setVolume(parseInt((event.target as HTMLInputElement).value))
|
||||
setVolume(parseFloat((event.target as HTMLInputElement).value))
|
||||
" />
|
||||
</div>
|
||||
</template>
|
||||
@ -39,6 +43,7 @@ import VolumeHighIcon from 'vue-material-design-icons/VolumeHigh.vue'
|
||||
import VolumeLowIcon from 'vue-material-design-icons/VolumeLow.vue'
|
||||
import VolumeMediumIcon from 'vue-material-design-icons/VolumeMedium.vue'
|
||||
import VolumeMuteIcon from 'vue-material-design-icons/VolumeMute.vue'
|
||||
import { t } from '@nextcloud/l10n'
|
||||
import { usePlayer } from '../../store/player.ts'
|
||||
|
||||
export default {
|
||||
@ -61,6 +66,7 @@ export default {
|
||||
this.volumeMuted = this.volume
|
||||
this.setVolume(0)
|
||||
},
|
||||
t,
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
@ -29,6 +29,7 @@
|
||||
<NcAvatar
|
||||
:display-name="feed?.data?.author || feed?.data?.title"
|
||||
:is-no-user="true"
|
||||
:title="feed?.data?.author"
|
||||
:url="feed?.data?.imageUrl" />
|
||||
<StarIcon v-if="feed?.isFavorite" class="star" :size="20" />
|
||||
<AlertIcon v-if="failed" />
|
||||
@ -70,14 +71,16 @@ export default {
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
data: () => ({
|
||||
failed: false,
|
||||
loading: true,
|
||||
}),
|
||||
data() {
|
||||
return {
|
||||
failed: false,
|
||||
loading: true,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapState(useSubscriptions, ['subs']),
|
||||
...mapState(useSubscriptions, ['getSubByUrl', 'subs']),
|
||||
feed() {
|
||||
return this.subs.find((sub) => sub.metrics.url === this.url)
|
||||
return this.getSubByUrl(this.url)
|
||||
},
|
||||
},
|
||||
async mounted() {
|
||||
|
@ -1,3 +1,4 @@
|
||||
import '@formatjs/intl-segmenter/polyfill'
|
||||
import App from './App.vue'
|
||||
import { createApp } from 'vue'
|
||||
import { createPinia } from 'pinia'
|
||||
|
@ -1,8 +1,11 @@
|
||||
import type { EpisodeActionInterface, EpisodeInterface } from '../utils/types.ts'
|
||||
import { getCookie, setCookie } from '../utils/cookies.ts'
|
||||
import axios from '@nextcloud/axios'
|
||||
import { defineStore } from 'pinia'
|
||||
import { formatEpisodeTimestamp } from '../utils/time.ts'
|
||||
import { generateUrl } from '@nextcloud/router'
|
||||
import { showError } from '../utils/toast.ts'
|
||||
import { t } from '@nextcloud/l10n'
|
||||
|
||||
const audio = new Audio()
|
||||
|
||||
@ -13,6 +16,7 @@ export const usePlayer = defineStore('player', {
|
||||
episode: null as EpisodeInterface | null,
|
||||
loaded: false,
|
||||
paused: true,
|
||||
playCount: 0,
|
||||
podcastUrl: null as string | null,
|
||||
volume: 1,
|
||||
rate: 1,
|
||||
@ -20,6 +24,9 @@ export const usePlayer = defineStore('player', {
|
||||
}),
|
||||
actions: {
|
||||
init() {
|
||||
audio.playbackRate = parseFloat(getCookie('repod.rate') || '1')
|
||||
audio.volume = parseFloat(getCookie('repod.volume') || '1')
|
||||
|
||||
audio.ondurationchange = () => (this.duration = audio.duration)
|
||||
audio.onended = () => this.stop()
|
||||
audio.onloadeddata = () => (this.loaded = true)
|
||||
@ -29,6 +36,17 @@ export const usePlayer = defineStore('player', {
|
||||
audio.onseeked = () => (this.currentTime = audio.currentTime)
|
||||
audio.ontimeupdate = () => (this.currentTime = audio.currentTime)
|
||||
audio.onvolumechange = () => (this.volume = audio.volume)
|
||||
|
||||
setInterval(this.act, 40000)
|
||||
setInterval(this.conflict, 1000)
|
||||
},
|
||||
act() {
|
||||
if (this.paused === false) {
|
||||
this.time()
|
||||
}
|
||||
},
|
||||
conflict() {
|
||||
this.playCount = 0
|
||||
},
|
||||
async load(episode: EpisodeInterface | null, podcastUrl?: string) {
|
||||
this.episode = episode
|
||||
@ -69,9 +87,15 @@ export const usePlayer = defineStore('player', {
|
||||
this.time()
|
||||
},
|
||||
play() {
|
||||
audio.play()
|
||||
this.paused = false
|
||||
this.started = audio.currentTime
|
||||
this.playCount++
|
||||
|
||||
if (this.playCount > 10) {
|
||||
showError(t('repod', 'A browser extension conflict with RePod'))
|
||||
} else {
|
||||
audio.play()
|
||||
this.paused = false
|
||||
this.started = audio.currentTime
|
||||
}
|
||||
},
|
||||
seek(currentTime: number) {
|
||||
audio.currentTime = currentTime
|
||||
@ -103,9 +127,11 @@ export const usePlayer = defineStore('player', {
|
||||
},
|
||||
setVolume(volume: number) {
|
||||
audio.volume = volume
|
||||
setCookie('repod.volume', volume.toString(), 365)
|
||||
},
|
||||
setRate(rate: number) {
|
||||
audio.playbackRate = rate
|
||||
setCookie('repod.rate', rate.toString(), 365)
|
||||
},
|
||||
},
|
||||
})
|
||||
|
@ -32,7 +32,7 @@ export const useSubscriptions = defineStore('subscriptions', {
|
||||
.map((sub) => ({
|
||||
metrics: sub,
|
||||
isFavorite: favorites.includes(sub.url),
|
||||
data: this.subs.find((s) => s.metrics.url === sub.url)?.data,
|
||||
data: this.getSubByUrl(sub.url)?.data,
|
||||
}))
|
||||
},
|
||||
addMetadatas(link: string, data: PodcastDataInterface) {
|
||||
|
@ -60,7 +60,7 @@ export interface PodcastMetricsInterface {
|
||||
|
||||
export interface SubscriptionInterface {
|
||||
data?: PodcastDataInterface
|
||||
isFavorite: boolean
|
||||
isFavorite?: boolean
|
||||
metrics: PodcastMetricsInterface
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
<AppContent>
|
||||
<EmptyContent
|
||||
v-if="!favorites.length"
|
||||
class="padding"
|
||||
:description="
|
||||
t('repod', 'Pin some subscriptions to see their latest updates')
|
||||
"
|
||||
@ -46,3 +47,9 @@ export default {
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.padding {
|
||||
padding: 15px 51px;
|
||||
}
|
||||
</style>
|
||||
|
@ -6,7 +6,9 @@ namespace OCA\GPodderSync\Core\SubscriptionChange;
|
||||
|
||||
class SubscriptionChangeRequestParser
|
||||
{
|
||||
public function __construct(private SubscriptionChangesReader $subscriptionChangeReader) {}
|
||||
public function __construct(
|
||||
private SubscriptionChangesReader $subscriptionChangeReader
|
||||
) {}
|
||||
|
||||
/**
|
||||
* @return SubscriptionChange[]
|
||||
|
@ -8,7 +8,9 @@ use OCA\GPodderSync\Core\EpisodeAction\EpisodeAction;
|
||||
|
||||
class EpisodeActionRepository
|
||||
{
|
||||
public function __construct(private EpisodeActionMapper $episodeActionMapper) {}
|
||||
public function __construct(
|
||||
private EpisodeActionMapper $episodeActionMapper
|
||||
) {}
|
||||
|
||||
/**
|
||||
* @return EpisodeAction[]
|
||||
|
@ -8,7 +8,9 @@ use OCP\DB\Exception;
|
||||
|
||||
class EpisodeActionWriter
|
||||
{
|
||||
public function __construct(private EpisodeActionMapper $episodeActionMapper) {}
|
||||
public function __construct(
|
||||
private EpisodeActionMapper $episodeActionMapper
|
||||
) {}
|
||||
|
||||
/**
|
||||
* @return EpisodeActionEntity
|
||||
|
@ -6,7 +6,9 @@ namespace OCA\GPodderSync\Db\SubscriptionChange;
|
||||
|
||||
class SubscriptionChangeRepository
|
||||
{
|
||||
public function __construct(private SubscriptionChangeMapper $subscriptionChangeMapper) {}
|
||||
public function __construct(
|
||||
private SubscriptionChangeMapper $subscriptionChangeMapper
|
||||
) {}
|
||||
|
||||
/**
|
||||
* @return SubscriptionChangeEntity[]
|
||||
|
@ -6,7 +6,9 @@ namespace OCA\GPodderSync\Db\SubscriptionChange;
|
||||
|
||||
class SubscriptionChangeWriter
|
||||
{
|
||||
public function __construct(private SubscriptionChangeMapper $subscriptionChangeMapper) {}
|
||||
public function __construct(
|
||||
private SubscriptionChangeMapper $subscriptionChangeMapper
|
||||
) {}
|
||||
|
||||
public function purge(): void {}
|
||||
|
||||
|
@ -103,6 +103,21 @@ msgstr "Kann den Status der Folge nicht ändern"
|
||||
msgid "Could not fetch episodes"
|
||||
msgstr "Folgen können nicht abgerufen werden"
|
||||
|
||||
msgid "Rewind 10 seconds"
|
||||
msgstr "10 Sekunden zurückspulen"
|
||||
|
||||
msgid "Pause"
|
||||
msgstr "Pause"
|
||||
|
||||
msgid "Fast forward 30 seconds"
|
||||
msgstr "30 Sekunden vorspulen"
|
||||
|
||||
msgid "Mute"
|
||||
msgstr "Stumm"
|
||||
|
||||
msgid "Unmute"
|
||||
msgstr "Stummschalten"
|
||||
|
||||
msgid "Export subscriptions"
|
||||
msgstr "Abonnements exportieren"
|
||||
|
||||
@ -168,3 +183,6 @@ msgstr "Pinne einige Abonnements, um ihre neuesten Updates zu sehen"
|
||||
|
||||
msgid "No favorites"
|
||||
msgstr "Keine Favoriten"
|
||||
|
||||
msgid "A browser extension conflict with RePod"
|
||||
msgstr "Ein Browser-Erweiterungskonflikt mit RePod"
|
||||
|
@ -107,6 +107,21 @@ msgstr "Impossible de changer le status de l'épisode"
|
||||
msgid "Could not fetch episodes"
|
||||
msgstr "Impossible de récuprer les épisodes"
|
||||
|
||||
msgid "Rewind 10 seconds"
|
||||
msgstr "Retour rapide de 10 secondes"
|
||||
|
||||
msgid "Pause"
|
||||
msgstr "Pause"
|
||||
|
||||
msgid "Fast forward 30 seconds"
|
||||
msgstr "Avance rapide de 30 secondes"
|
||||
|
||||
msgid "Mute"
|
||||
msgstr "Silencer"
|
||||
|
||||
msgid "Unmute"
|
||||
msgstr "Paroler"
|
||||
|
||||
msgid "Export subscriptions"
|
||||
msgstr "Exporter les abonnements"
|
||||
|
||||
@ -172,3 +187,6 @@ msgstr "Ajoutez des abonnements en favoris pour obtenir les dernières nouvelles
|
||||
|
||||
msgid "No favorites"
|
||||
msgstr "Aucun favoris"
|
||||
|
||||
msgid "A browser extension conflict with RePod"
|
||||
msgstr "Une extension de votre navigateur entre en conflit avec RePod"
|
||||
|
@ -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-09-15 13:40+0000\n"
|
||||
"POT-Creation-Date: 2024-11-08 23:27+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"
|
||||
@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: /app/lib/Controller/OpmlController.php:44
|
||||
#: /app/lib/Controller/OpmlController.php:46
|
||||
msgid "RePod Subscriptions"
|
||||
msgstr ""
|
||||
|
||||
@ -101,6 +101,7 @@ msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:15
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:16
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:31
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
@ -130,91 +131,117 @@ msgid "Could not fetch episodes"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:29
|
||||
msgid "Export subscriptions"
|
||||
msgid "Rewind 10 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:30
|
||||
msgid "Filtering episodes"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:31
|
||||
msgid "Show all"
|
||||
msgid "Pause"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:32
|
||||
msgid "Listened"
|
||||
msgid "Fast forward 30 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:33
|
||||
msgid "Listening"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:34
|
||||
msgid "Unlistened"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:35
|
||||
msgid "Import subscriptions"
|
||||
msgid "Mute"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:36
|
||||
msgid "Import OPML file"
|
||||
msgid "Unmute"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:37
|
||||
msgid "Rate RePod ❤️"
|
||||
msgid "Export subscriptions"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:38
|
||||
msgid "Playback speed"
|
||||
msgid "Filtering episodes"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:39
|
||||
msgid "Show all"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:40
|
||||
msgid "Listened"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:41
|
||||
msgid "Favorite"
|
||||
msgid "Listening"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:42
|
||||
msgid "Are you sure you want to delete this subscription?"
|
||||
msgid "Unlistened"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:43
|
||||
msgid "Error while removing the feed"
|
||||
msgid "Import subscriptions"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:44
|
||||
msgid "You can only have 10 favorites"
|
||||
msgid "Import OPML file"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:45
|
||||
msgid "Add a podcast"
|
||||
msgid "Rate RePod ❤️"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:46
|
||||
msgid "Could not fetch subscriptions"
|
||||
msgid "Playback speed"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:47
|
||||
msgid "Find a podcast"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:48
|
||||
msgid "Error loading feed"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:49
|
||||
msgid "Missing required app"
|
||||
msgid "Favorite"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:50
|
||||
msgid "Install GPodder Sync"
|
||||
msgid "Are you sure you want to delete this subscription?"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:51
|
||||
msgid "Pin some subscriptions to see their latest updates"
|
||||
msgid "Error while removing the feed"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:52
|
||||
msgid "You can only have 10 favorites"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:53
|
||||
msgid "Add a podcast"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:54
|
||||
msgid "Could not fetch subscriptions"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:55
|
||||
msgid "Find a podcast"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:56
|
||||
msgid "Error loading feed"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:57
|
||||
msgid "Missing required app"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:58
|
||||
msgid "Install GPodder Sync"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:59
|
||||
msgid "Pin some subscriptions to see their latest updates"
|
||||
msgstr ""
|
||||
|
||||
#: /app/specialVueFakeDummyForL10nScript.js:60
|
||||
msgid "No favorites"
|
||||
msgstr ""
|
||||
|
||||
#: /app/src/store/player.ts:93
|
||||
msgid "A browser extension conflict with RePod"
|
||||
msgstr ""
|
||||
|
@ -1,8 +1,8 @@
|
||||
{
|
||||
"extends": "@vue/tsconfig/tsconfig.json",
|
||||
"extends": "@vue/tsconfig",
|
||||
"include": ["./src/**/*.ts", "./src/**/*.vue", "**/*.ts"],
|
||||
"compilerOptions": {
|
||||
"allowJs": true,
|
||||
"allowImportingTsExtensions": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"target": "ESNext",
|
||||
"module": "ESNext",
|
||||
@ -11,9 +11,5 @@
|
||||
"rootDir": ".",
|
||||
"strict": true,
|
||||
"noEmit": true,
|
||||
"allowImportingTsExtensions": true,
|
||||
},
|
||||
"vueCompilerOptions": {
|
||||
"target": 3.3,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
@ -1,20 +1,20 @@
|
||||
import { join, resolve } from 'path'
|
||||
import { createAppConfig } from '@nextcloud/vite-config'
|
||||
import { defineConfig } from 'vite'
|
||||
import vueDevTools from 'vite-plugin-vue-devtools'
|
||||
|
||||
const config = defineConfig(({ mode }) => ({
|
||||
const config = defineConfig({
|
||||
build: {
|
||||
sourcemap: false,
|
||||
},
|
||||
define: {
|
||||
__VUE_PROD_DEVTOOLS__: mode !== 'production',
|
||||
},
|
||||
plugins: [vueDevTools()],
|
||||
}))
|
||||
})
|
||||
|
||||
export default createAppConfig(
|
||||
{
|
||||
main: 'src/main.ts',
|
||||
main: resolve(join('src', 'main.ts')),
|
||||
},
|
||||
{
|
||||
config,
|
||||
createEmptyCSSEntryPoints: true,
|
||||
thirdPartyLicense: false,
|
||||
},
|
||||
{ config, inlineCSS: true },
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user