From 2172df9fa2de2752396a55260f49594606466ec1 Mon Sep 17 00:00:00 2001 From: Dag Date: Fri, 29 Sep 2023 19:17:03 +0200 Subject: [PATCH] fix: various notice fixes (#3718) --- bridges/CodebergBridge.php | 6 +++++- bridges/CssSelectorComplexBridge.php | 6 +++++- bridges/ImgsedBridge.php | 2 +- bridges/PepperBridgeAbstract.php | 2 +- bridges/ThePirateBayBridge.php | 1 + tests/UtilsTest.php | 10 ++++++++++ vendor/php-urljoin/src/urljoin.php | 5 ++++- 7 files changed, 27 insertions(+), 5 deletions(-) diff --git a/bridges/CodebergBridge.php b/bridges/CodebergBridge.php index c13ff004..9515d514 100644 --- a/bridges/CodebergBridge.php +++ b/bridges/CodebergBridge.php @@ -260,7 +260,11 @@ class CodebergBridge extends BridgeAbstract } $item['author'] = $div->find('a.author', 0)->innertext; - $item['timestamp'] = $div->find('span.time-since', 0)->title; + + $timeSince = $div->find('span.time-since', 0); + if ($timeSince) { + $item['timestamp'] = $timeSince->title; + } $this->items[] = $item; } diff --git a/bridges/CssSelectorComplexBridge.php b/bridges/CssSelectorComplexBridge.php index 4d44f853..c09db74a 100644 --- a/bridges/CssSelectorComplexBridge.php +++ b/bridges/CssSelectorComplexBridge.php @@ -415,10 +415,14 @@ class CssSelectorComplexBridge extends BridgeAbstract ) { $article_content = convertLazyLoading($entry_html); + $article_title = ''; if (is_null($title_selector)) { $article_title = $title_default; } else { - $article_title = trim($entry_html->find($title_selector, 0)->innertext); + $titleElement = $entry_html->find($title_selector, 0); + if ($titleElement) { + $article_title = trim($titleElement->innertext); + } } $author = null; diff --git a/bridges/ImgsedBridge.php b/bridges/ImgsedBridge.php index 70b79866..1fa5b827 100644 --- a/bridges/ImgsedBridge.php +++ b/bridges/ImgsedBridge.php @@ -244,7 +244,7 @@ HTML, if ($this->getInput('tagged')) { $types[] = 'Tags'; } - $typesText = $types[0]; + $typesText = $types[0] ?? ''; if (count($types) > 1) { for ($i = 1; $i < count($types) - 1; $i++) { $typesText .= ', ' . $types[$i]; diff --git a/bridges/PepperBridgeAbstract.php b/bridges/PepperBridgeAbstract.php index c152d249..280b185d 100644 --- a/bridges/PepperBridgeAbstract.php +++ b/bridges/PepperBridgeAbstract.php @@ -463,7 +463,7 @@ HEREDOC; ) )->{'src'}; } else { - return $deal->find('img[class*=' . $selectorPlain . ']', 0)->src; + return $deal->find('img[class*=' . $selectorPlain . ']', 0)->src ?? ''; } } diff --git a/bridges/ThePirateBayBridge.php b/bridges/ThePirateBayBridge.php index 27732db5..4b130800 100644 --- a/bridges/ThePirateBayBridge.php +++ b/bridges/ThePirateBayBridge.php @@ -65,6 +65,7 @@ class ThePirateBayBridge extends BridgeAbstract '207' => 'HD Movies', '208' => 'HD TV-Shows', '209' => '3D', + '210' => 'CAM/TS', '211' => 'UHD/4k Movies', '212' => 'UHD/4k TV-Shows', '299' => 'Other', diff --git a/tests/UtilsTest.php b/tests/UtilsTest.php index a7b41795..f851f32b 100644 --- a/tests/UtilsTest.php +++ b/tests/UtilsTest.php @@ -46,4 +46,14 @@ final class UtilsTest extends TestCase $this->assertSame(4, strlen(create_random_string(2))); $this->assertSame(6, strlen(create_random_string(3))); } + + public function testUrljoin() + { + $base = '/'; + $rel = 'https://example.com/foo'; + + $url = urljoin($base, $rel); + + $this->assertSame($rel, $url); + } } diff --git a/vendor/php-urljoin/src/urljoin.php b/vendor/php-urljoin/src/urljoin.php index ef84fbcd..026b767e 100644 --- a/vendor/php-urljoin/src/urljoin.php +++ b/vendor/php-urljoin/src/urljoin.php @@ -40,7 +40,10 @@ function urljoin($base, $rel) { } if (isset($prel['scheme'])) { - if ($prel['scheme'] != $pbase['scheme'] || in_array($prel['scheme'], $uses_relative) == false) { + if ( + $prel['scheme'] != ($pbase['scheme'] ?? null) + || in_array($prel['scheme'], $uses_relative) == false + ) { return $rel; } }