Compare commits

..

3 commits

Author SHA1 Message Date
lolcat 12d5b4ade8 Merge branch 'master' into master 2024-10-21 14:16:54 +00:00
bread c422abbdc6 add css via copy and paste (slightly edited to not require a lot from my shithole) 2024-10-21 14:15:34 +00:00
lolcat 6eabc3edf4 qwant captcha detect 2024-10-09 18:34:36 -04:00
2 changed files with 73 additions and 29 deletions

View file

@ -353,25 +353,16 @@ class qwant{
"related" => [] "related" => []
]; ];
if($json["status"] != "success"){ if(
$json["status"] != "success" &&
if($json["data"]["error_code"] === 5){ $json["data"]["error_code"] === 5
){
// no results
return $out; return $out;
} }
if(isset($json["data"]["error_code"])){ $this->detect_errors($json);
switch($json["data"]["error_code"]){
case 27:
throw new Exception("Qwant returned a captcha");
break;
}
}
throw new Exception("Qwant returned an error code: " . $json["data"]["error_code"]);
}
if(!isset($json["data"]["result"]["items"]["mainline"])){ if(!isset($json["data"]["result"]["items"]["mainline"])){
@ -654,10 +645,7 @@ class qwant{
throw new Exception("Failed to decode JSON"); throw new Exception("Failed to decode JSON");
} }
if($json["status"] != "success"){ $this->detect_errors($json);
throw new Exception("Qwant returned an API error");
}
if(isset($json["data"]["result"]["items"]["mainline"])){ if(isset($json["data"]["result"]["items"]["mainline"])){
@ -754,10 +742,7 @@ class qwant{
throw new Exception("Could not parse JSON"); throw new Exception("Could not parse JSON");
} }
if($json["status"] != "success"){ $this->detect_errors($json);
throw new Exception("Qwant returned an API error");
}
if(isset($json["data"]["result"]["items"]["mainline"])){ if(isset($json["data"]["result"]["items"]["mainline"])){
@ -861,10 +846,7 @@ class qwant{
throw new Exception("Could not parse JSON"); throw new Exception("Could not parse JSON");
} }
if($json["status"] != "success"){ $this->detect_errors($json);
throw new Exception("Qwant returned an API error");
}
if(isset($json["data"]["result"]["items"]["mainline"])){ if(isset($json["data"]["result"]["items"]["mainline"])){
@ -906,6 +888,28 @@ class qwant{
return $out; return $out;
} }
private function detect_errors($json){
if(
isset($json["status"]) &&
$json["status"] == "error"
){
if(isset($json["data"]["error_data"]["captchaUrl"])){
throw new Exception("Qwant returned a captcha");
}elseif(isset($json["data"]["error_data"]["error_code"])){
throw new Exception(
"Qwant returned an API error: " .
$json["data"]["error_data"]["error_code"]
);
}
throw new Exception("Qwant returned an API error");
}
}
private function limitstrlen($text){ private function limitstrlen($text){
return explode("\n", wordwrap($text, 300, "\n"))[0]; return explode("\n", wordwrap($text, 300, "\n"))[0];

40
static/themes/Wine.css Normal file
View file

@ -0,0 +1,40 @@
:root
{
--accent : #f79e98;
--1d2021 : #180d0c;
--282828 : #180d0c;
--3c3836 : #251615;
--504945 : #251615;
--928374 : var(--accent);
--a89984 : #d8c5c4;
--bdae93 : #d8c5c4;
--8ec07c : var(--accent);
--ebdbb2 : #d8c5c4;
--comment: #928374;
--default: #DCC9BC;
--keyword: #F07342;
--string : var(--accent);
--green : #959A6B;
--yellow : #E39C45;
--red : #CF223E;
--white : var(--a89984);
--black : var(--1d2021);
--hover : #b18884
}
a.link, a { color: var(--accent); text-decoration: none; }
.searchbox { width: 23%; }
.filters filter select { color: #E39C45; }
.web .separator::before { color: var(--white) }
.searchbox input[type="text"]::placeholder { color: var(--white); }
a.link:hover
{
color: var(--hover);
text-shadow: 0 0 .2rem var(--hover);
}
.code-inline
{ border-color: var(--default); font-family: monospace;}
.home #center a
{ color: var(--accent); }
.home .subtext
{ color: var(--white); }