Witam, mam taki problem, że skrypt ze spoilera wykonuję się bardzo wolno (4.5 minuty przy 1500 komentarzach do pobrania). Dokładniej wygląda to tak:
pobranie w ciągu ułamka sekundy kilkadziesięciu wyników -> kilkanaście sekund (+/-) przerwy -> znowu pobiera -> znowu przerwa i tak aż do końca wykonywania. Może jakaś dobra dusza rzucić okiem i sprawdzić co jest nie tak, że trwa to aż tyle?
<?php
$VIDEO_URL = \\\\\\\"MdIpZisWECA\\\\\\\";
if (!file_exists(__DIR__ . \\\\\\\'/vendor/autoload.php\\\\\\\')) {
throw new Exception(sprintf(\\\\\\\'Please run \\\\\\\"composer require google/apiclient:~2.0\\\\\\\" in \\\\\\\"%s\\\\\\\"\\\\\\\', __DIR__));
}
require_once __DIR__ . \\\\\\\'/vendor/autoload.php\\\\\\\';
$client = new Google_Client();
$client->setApplicationName(\\\\\\\'API code samples\\\\\\\');
$client->setDeveloperKey(\\\\\\\'AIzaSyC4Xxxxxxxxxxxxxxxxm2XHnY\\\\\\\');
// Define service object for making API requests.
$service = new Google_Service_YouTube($client);
$queryParams = [
\\\\\\\'maxResults\\\\\\\' => 100,
\\\\\\\'moderationStatus\\\\\\\' => \\\\\\\'published\\\\\\\',
\\\\\\\'order\\\\\\\' => \\\\\\\'relevance\\\\\\\',
\\\\\\\'textFormat\\\\\\\' => \\\\\\\'plainText\\\\\\\',
\\\\\\\'videoId\\\\\\\' => $VIDEO_URL,
\\\\\\\'prettyPrint\\\\\\\' => true
];
$response = $service->commentThreads->listCommentThreads(\\\\\\\'replies\\\\\\\', $queryParams);
//print_r($response);
$TotalResults = $response->getPageInfo()->getTotalResults();
$ResultsPerPage = $response->getPageInfo()->getResultsPerPage();
?><table class=\\\\\\\"tabelka\\\\\\\"><?php
$is_last = false;
for(;;){
for($i=0; $i<$TotalResults; $i++){
$ID_aktualnego_komentarza = $response->getItems()[$i]->getId();
$queryParams = [
\\\\\\\'id\\\\\\\' => $ID_aktualnego_komentarza,
\\\\\\\'maxResults\\\\\\\' => 100
];
$komentarz = $service->comments->listComments(\\\\\\\'snippet\\\\\\\', $queryParams);
?><tr><td class=\\\\\\\"tabelka\\\\\\\"><?php
echo $komentarz->getItems()[0
]->getSnippet()->getAuthorDisplayName(); ?></td><td class=\\\\\\\"tabelka\\\\\\\"><?php
echo $komentarz->getItems()[0
]->getSnippet()->getTextDisplay(); ?></td></tr><?php
}
if($is_last)
break;
$NextPageToken = $response->getNextPageToken();
$queryParams1 = [
\\\\\\\'maxResults\\\\\\\' => 100,
\\\\\\\'moderationStatus\\\\\\\' => \\\\\\\'published\\\\\\\',
\\\\\\\'order\\\\\\\' => \\\\\\\'relevance\\\\\\\',
\\\\\\\'textFormat\\\\\\\' => \\\\\\\'plainText\\\\\\\',
\\\\\\\'videoId\\\\\\\' => $VIDEO_URL,
\\\\\\\'pageToken\\\\\\\' => $NextPageToken,
\\\\\\\'prettyPrint\\\\\\\' => true
];
$response = $service->commentThreads->listCommentThreads(\\\\\\\'replies\\\\\\\', $queryParams1);
$TotalResults = $response->getPageInfo()->getTotalResults();
$ResultsPerPage = $response->getPageInfo()->getResultsPerPage();
if($TotalResults != $ResultsPerPage){
$is_last=true;
}
}
?></table>
Ten post edytował FoxiK13 8.04.2019, 23:34:50