fix google image crash

This commit is contained in:
lolcat 2025-06-01 13:03:39 -04:00
parent 8d50667b0d
commit b61bc6d07c
1 changed files with 51 additions and 12 deletions

View File

@ -634,7 +634,7 @@ class google{
private function scrape_imagearr($html){
// get image links arrays
preg_match_all(
'/\[0,"([^"]+)",\["([^"]+)\",([0-9]+),([0-9]+)\],\["([^"]+)",([0-9]+),([0-9]+)\]/',
'/\[[0-9]+,"([^"]+)",\["([^"]+)\",([0-9]+),([0-9]+)\],\["([^"]+)",([0-9]+),([0-9]+)\]/',
$html,
$image_arr
);
@ -644,14 +644,41 @@ class google{
for($i=0; $i<count($image_arr[1]); $i++){
$original =
$this->fuckhtml
->parseJsString(
$image_arr[5][$i]
);
if(
preg_match(
'/^x-raw-image/',
$original
)
){
// only add thumbnail, google doesnt have OG resolution
$this->image_arr[$image_arr[1][$i]] = [
[
"url" =>
$this->unshit_thumb(
$this->fuckhtml
->parseJsString(
$image_arr[2][$i]
)
),
"width" => (int)$image_arr[7][$i], // pass the OG image width & height
"height" => (int)$image_arr[6][$i]
]
];
continue;
}
$this->image_arr[$image_arr[1][$i]] =
[
[
"url" =>
$this->fuckhtml
->parseJsString(
$image_arr[5][$i]
),
"url" => $original,
"width" => (int)$image_arr[7][$i],
"height" => (int)$image_arr[6][$i]
],
@ -2635,8 +2662,8 @@ class google{
}
}
/*
$handle = fopen("scraper/google-img.html", "r");
$html = fread($handle, filesize("scraper/google-img.html"));
$handle = fopen("scraper/page.html", "r");
$html = fread($handle, filesize("scraper/page.html"));
fclose($handle);*/
try{
@ -2679,6 +2706,21 @@ class google{
$this->fuckhtml
->getElementsByTagName("img")[0];
// make sure we dont attempt to show an image we dont have data for
if(
isset($div["attributes"]["data-docid"]) &&
isset($this->image_arr[$div["attributes"]["data-docid"]])
){
$source =
$this->image_arr[
$div["attributes"]["data-docid"]
];
}else{
continue;
}
$out["image"][] = [
"title" =>
$this->titledots(
@ -2687,10 +2729,7 @@ class google{
$image["attributes"]["alt"]
)
),
"source" =>
$this->image_arr[
$div["attributes"]["data-docid"]
],
"source" => $source,
"url" =>
$this->fuckhtml
->getTextContent(