From db0a2a4089240b0f02674e7d3815021cf15458f1 Mon Sep 17 00:00:00 2001 From: Ne-Lexa Date: Fri, 19 Aug 2022 10:43:20 +0300 Subject: [PATCH] fixed #32 --- src/Scraper/AppInfoScraper.php | 13 +++++++++-- .../ClusterPagesFromListAppsScraper.php | 23 +++++++++++++------ 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/Scraper/AppInfoScraper.php b/src/Scraper/AppInfoScraper.php index d65af70..59bcbf3 100644 --- a/src/Scraper/AppInfoScraper.php +++ b/src/Scraper/AppInfoScraper.php @@ -49,7 +49,17 @@ public function __invoke(RequestInterface $request, ResponseInterface $response, { $scriptData = ScraperUtil::extractScriptData($response->getBody()->getContents()); - $appInfo = ScraperUtil::getValue($scriptData, 'ds:4.1.2'); + $appInfo = null; + $editorsChoice = false; + + foreach ($scriptData as $data) { + if (isset($data[1][2][72][0][1])) { + $appInfo = $data[1][2]; + } elseif (isset($data[1][2][136][0][1][0])) { + $editorsChoice = (bool) $data[1][2][136][0][1][0]; + } + } + if (!\is_array($appInfo)) { throw (new GooglePlayException('Unable to get data for this application.'))->setUrl( $request->getUri()->__toString() @@ -94,7 +104,6 @@ public function __invoke(RequestInterface $request, ResponseInterface $response, $minAndroidVersion = null; } - $editorsChoice = (bool) ScraperUtil::getValue($appInfo, 'ds:5.1.2.136.0.1.0'); $privacyPoliceUrl = $appInfo[99][0][5][2] ?? ''; $categoryFamily = $this->extractCategory($appInfo[118][0][0][0] ?? []); $icon = $this->extractIcon($appInfo); diff --git a/src/Scraper/ClusterPagesFromListAppsScraper.php b/src/Scraper/ClusterPagesFromListAppsScraper.php index 0397d97..9f82128 100644 --- a/src/Scraper/ClusterPagesFromListAppsScraper.php +++ b/src/Scraper/ClusterPagesFromListAppsScraper.php @@ -37,13 +37,22 @@ public function __invoke(RequestInterface $request, ResponseInterface $response, $contents = $response->getBody()->getContents(); $scriptData = ScraperUtil::extractScriptData($contents); - if (isset($scriptData['ds:4'][0][1])) { - $scriptDataInfo = $scriptData['ds:4'][0][1]; - $token = $scriptData['ds:4'][0][3][1] ?? null; - } elseif (isset($scriptData['ds:3'][0][1])) { - $scriptDataInfo = $scriptData['ds:3'][0][1]; - $token = $scriptData['ds:3'][0][3][1] ?? null; - } else { + $scriptDataInfo = null; + $token = null; + + foreach ($scriptData as $data) { + if (isset($data[0][1][0][21][0]) + || isset($data[0][1][1][21][0]) + || isset($data[0][1][0][22][0]) + || isset($data[0][1][1][22][0]) + ) { + $scriptDataInfo = $data[0][1]; + $token = $data[0][3][1] ?? null; + break; + } + } + + if (!$scriptDataInfo) { return [ 'results' => [], 'token' => null,