From 7a87a09fc54d8baf0d71e1183ebcba5747ac681d Mon Sep 17 00:00:00 2001 From: Kingsley Yung <11942650+kkoyung@users.noreply.github.com> Date: Tue, 17 May 2022 15:35:16 +0800 Subject: [PATCH] [YouTubeCommunityTab] Fix error occuring when YouTube returns non-English webpage. (#2739) --- bridges/YouTubeCommunityTabBridge.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/bridges/YouTubeCommunityTabBridge.php b/bridges/YouTubeCommunityTabBridge.php index 39ef46de..842e7489 100644 --- a/bridges/YouTubeCommunityTabBridge.php +++ b/bridges/YouTubeCommunityTabBridge.php @@ -30,7 +30,7 @@ class YouTubeCommunityTabBridge extends BridgeAbstract { private $itemTitle = ''; private $urlRegex = '/youtube\.com\/(channel|user|c)\/([\w]+)\/community/'; - private $jsonRegex = '/var ytInitialData = (.*);<\/script>contents->twoColumnBrowseResultsRenderer->tabs as $tab) { - if (isset($tab->tabRenderer) && $tab->tabRenderer->title === 'Community') { + if (isset($tab->tabRenderer) + && str_ends_with($tab->tabRenderer->endpoint->commandMetadata->webCommandMetadata->url, 'community')) { + return true; } } @@ -167,7 +169,9 @@ class YouTubeCommunityTabBridge extends BridgeAbstract { private function getCommunityPosts($json) { foreach ($json->contents->twoColumnBrowseResultsRenderer->tabs as $tab) { - if ($tab->tabRenderer->title === 'Community') { + if (isset($tab->tabRenderer) + && str_ends_with($tab->tabRenderer->endpoint->commandMetadata->webCommandMetadata->url, 'community')) { + return $tab->tabRenderer->content->sectionListRenderer->contents[0]->itemSectionRenderer->contents; } }