lolcat 1 год назад
Родитель
Сommit
b61bc6d07c
1 измененных файлов с 51 добавлено и 12 удалено
  1. 51 12
      scraper/google.php

+ 51 - 12
scraper/google.php

@@ -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++){
 				
-				$this->image_arr[$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->fuckhtml
-								->parseJsString(
-									$image_arr[5][$i]
+								$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" => $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(