1
Fork 0
mirror of https://git.lolcat.ca/lolcat/4get.git synced 2024-12-03 23:42:16 -05:00

Compare commits

...

4 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
bread
85246cc7ec 194 lines of mark(down) 2024-10-19 01:12:41 +00:00
lolcat
6eabc3edf4 qwant captcha detect 2024-10-09 18:34:36 -04:00
3 changed files with 76 additions and 32 deletions

View file

@ -30,7 +30,7 @@
> IMPORTANT: `php-curl`, `php-mbstring` might be a Debian-only package, but this needs further fact checking.
> IMPORTANT: `php-apcu` is known to not work on Artix[^1].
> IMPORTANT: If having issues with `php-apcu` or `libsodium`, go to [^1].
</div>
@ -188,7 +188,7 @@
<h2 align=center>Known issues</h2>
1. `php-apcu` not working in Artix[^1], this might be because of it being a systemd daemon, but the binary isn't present. This might apply to Arch Linux as well, since it is from where the package was gotten. Read more in the issue.
1. https://git.lolcat.ca/lolcat/4get/issues
[^1]: lolcat/4get#40, It might be needed to create a boot entry, but the binary is unknown.
[^1]: lolcat/4get#40, If having issues with `libsodium`, or `php-apcu`.
[^2]: <a href="https://git.nadeko.net/Fijxu/etc-configs/src/branch/selfhost/nginx/conf.d/4get.conf">git.nadeko.net</a> nadeko.net's 4get instance configuration.

View file

@ -353,26 +353,17 @@ class qwant{
"related" => []
];
if($json["status"] != "success"){
if(
$json["status"] != "success" &&
$json["data"]["error_code"] === 5
){
if($json["data"]["error_code"] === 5){
return $out;
}
if(isset($json["data"]["error_code"])){
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"]);
// no results
return $out;
}
$this->detect_errors($json);
if(!isset($json["data"]["result"]["items"]["mainline"])){
throw new Exception("Server did not return a result object");
@ -654,10 +645,7 @@ class qwant{
throw new Exception("Failed to decode JSON");
}
if($json["status"] != "success"){
throw new Exception("Qwant returned an API error");
}
$this->detect_errors($json);
if(isset($json["data"]["result"]["items"]["mainline"])){
@ -754,10 +742,7 @@ class qwant{
throw new Exception("Could not parse JSON");
}
if($json["status"] != "success"){
throw new Exception("Qwant returned an API error");
}
$this->detect_errors($json);
if(isset($json["data"]["result"]["items"]["mainline"])){
@ -861,10 +846,7 @@ class qwant{
throw new Exception("Could not parse JSON");
}
if($json["status"] != "success"){
throw new Exception("Qwant returned an API error");
}
$this->detect_errors($json);
if(isset($json["data"]["result"]["items"]["mainline"])){
@ -906,6 +888,28 @@ class qwant{
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){
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); }