fix google cse image crash + added word autocorrect

This commit is contained in:
lolcat 2024-10-31 20:31:23 -04:00
parent 070f9d442b
commit aaa30c79f5

View file

@ -268,6 +268,13 @@ class google_cse{
"yes" => "Yes", // safe=active
"no" => "No" // safe=off
]
],
"spellcheck" => [
// display undefined
"option" => [
"yes" => "Yes",
"no" => "No"
]
]
];
@ -538,6 +545,11 @@ class google_cse{
"rurl" => "https://cse.google.com/cse?cx=" . config::GOOGLE_CX_ENDPOINT . "#gsc.tab=0&gsc.q=" . $get["s"] . "&gsc.sort="
];
if($get["spellcheck"] == "no"){
$req_params["nfpr"] = "1";
}
$json =
$this->get(
$proxy,
@ -596,6 +608,42 @@ class google_cse{
"related" => []
];
// detect word correction
if(isset($json["spelling"]["type"])){
switch($json["spelling"]["type"]){
case "DYM": // did you mean? @TODO fix wording
$type = "including";
break;
case "SPELL_CORRECTED_RESULTS": // not many results for
$type = "not_many";
break;
default:
$type = "not_many";
}
if(isset($json["spelling"]["originalQuery"])){
$using = $json["spelling"]["originalQuery"];
}
elseif(isset($json["spelling"]["anchor"])){
$using = html_entity_decode(strip_tags($json["spelling"]["anchor"]));
}elseif(isset($json["spelling"]["originalAnchor"])){
$using = html_entity_decode(strip_tags($json["spelling"]["originalAnchor"]));
}
$out["spelling"] = [
"type" => $type,
"using" => $using,
"correction" => $json["spelling"]["correctedQuery"]
];
}
if(!isset($json["results"])){
return $out;
@ -729,8 +777,6 @@ class google_cse{
public function image($get){
if($get["npt"]){
[$req_params, $proxy] =
@ -858,6 +904,12 @@ class google_cse{
throw new Exception("Google returned an error object");
}
$out = [
"status" => "ok",
"npt" => null,
"image" => []
];
// detect next page
if(
isset($json["cursor"]["isExactTotalResults"]) || // detects last page
@ -867,12 +919,6 @@ class google_cse{
return $out;
}
$out = [
"status" => "ok",
"npt" => null,
"image" => []
];
foreach($json["results"] as $result){
$out["image"][] = [