From 302e8c781b55afbcd5b660c3f1052d58323c6fb9 Mon Sep 17 00:00:00 2001 From: Michel Roux Date: Sun, 4 Feb 2024 09:40:21 +0100 Subject: [PATCH] fix: Cannot Open Any Podcasts in Repod if cache missing or missconfigured (close #58) --- CHANGELOG.md | 6 ++++ appinfo/info.xml | 2 +- composer.json | 2 +- composer.lock | 2 +- lib/Controller/PodcastController.php | 12 +++++-- package-lock.json | 49 +++++++++++++++++++--------- package.json | 2 +- 7 files changed, 53 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 27c61a7..03f7b15 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 1.5.5 - 2024-02-04 + +### Fixed +- Can't open podcast details if cache missing or misconfigured +[#58](https://git.crystalyx.net/Xefir/repod/issues/58) reported by @raxventus + ## 1.5.4 - 2024-02-03 ### Fixed diff --git a/appinfo/info.xml b/appinfo/info.xml index d0e7faa..6c29ec5 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -11,7 +11,7 @@ ## Requirements You need to have [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installed to use this app!]]> - 1.5.4 + 1.5.5 agpl Michel Roux RePod diff --git a/composer.json b/composer.json index b804a2e..fa8f356 100644 --- a/composer.json +++ b/composer.json @@ -3,7 +3,7 @@ "description": "🔊 Browse, manage and listen to podcasts", "type": "project", "license": "AGPL-3.0-or-later", - "version": "1.5.4", + "version": "1.5.5", "require-dev": { "nextcloud/ocp": "^28.0.2", "psalm/phar": "^5.21.1", diff --git a/composer.lock b/composer.lock index 9871919..2ce8817 100644 --- a/composer.lock +++ b/composer.lock @@ -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": "24b25bff61f30cdac13ab8ab1f354e2e", + "content-hash": "aece96039421382f21a6a2eca3610280", "packages": [], "packages-dev": [ { diff --git a/lib/Controller/PodcastController.php b/lib/Controller/PodcastController.php index 896f7b1..c7c5528 100644 --- a/lib/Controller/PodcastController.php +++ b/lib/Controller/PodcastController.php @@ -23,7 +23,11 @@ class PodcastController extends Controller } public function index(string $url): JSONResponse { - $podcast = $this->podcastDataReader->tryGetCachedPodcastData($url); + try { + $podcast = $this->podcastDataReader->tryGetCachedPodcastData($url); + } catch (\Exception $e) { + $podcast = null; + } if ($podcast) { return new JSONResponse($podcast); @@ -32,7 +36,11 @@ class PodcastController extends Controller $client = $this->clientService->newClient(); $feed = $client->get($url); $podcast = PodcastData::parseRssXml((string) $feed->getBody()); - $this->podcastDataReader->trySetCachedPodcastData($url, $podcast); + + try { + $this->podcastDataReader->trySetCachedPodcastData($url, $podcast); + } catch (\Exception $e) { + } return new JSONResponse($podcast, $feed->getStatusCode()); } diff --git a/package-lock.json b/package-lock.json index 8113069..0e309b6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "repod", - "version": "1.5.4", + "version": "1.5.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "repod", - "version": "1.5.4", + "version": "1.5.5", "license": "agpl", "dependencies": { "@nextcloud/axios": "^2.4.0", @@ -3634,9 +3634,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.42", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.42.tgz", - "integrity": "sha512-ckM3jm2bf/MfB3+spLPWYPUH573plBFwpOhqQ2WottxYV85j1HQFlxmnTq57X1yHY9awZPig06hL/cLMgNWHIQ==", + "version": "4.17.43", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz", + "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==", "dev": true, "peer": true, "dependencies": { @@ -4892,14 +4892,17 @@ } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, "peer": true, "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7419,6 +7422,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-errors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.0.0.tgz", + "integrity": "sha512-yHV74THqMJUyFKkHyN7hyENcEZM3Dj2a2IrdClY+IT4BFQHkIVwlh8s6uZfjsFydMdNHv0F5mWgAA3ajFbsvVQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-module-lexer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", @@ -9043,17 +9056,21 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.3.tgz", + "integrity": "sha512-JIcZczvcMVE7AUOP+X72bh8HqHBRxFdz5PDHYtNG/lE3yk9b3KZBJlwFcTyPYjg3L4RLLmZJzvjxhaZVapxFrQ==", "dev": true, "peer": true, "dependencies": { + "es-errors": "^1.0.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -14329,9 +14346,9 @@ } }, "node_modules/postcss-html/node_modules/js-tokens": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-8.0.2.tgz", - "integrity": "sha512-Olnt+V7xYdvGze9YTbGFZIfQXuGV4R3nQwwl8BrtgaPE/wq8UFpUHWuTNc05saowhSr1ZO6tx+V6RjE9D5YQog==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-8.0.3.tgz", + "integrity": "sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==", "dev": true, "peer": true }, diff --git a/package.json b/package.json index 1c93700..09b609b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "repod", "description": "🔊 Browse, manage and listen to podcasts", - "version": "1.5.4", + "version": "1.5.5", "bugs": { "url": "https://git.crystalyx.net/Xefir/repod/issues" },