mirror of
https://git.lolcat.ca/lolcat/4get.git
synced 2024-12-03 23:42:16 -05:00
Compare commits
4 commits
d709d12111
...
12d5b4ade8
Author | SHA1 | Date | |
---|---|---|---|
|
12d5b4ade8 | ||
|
c422abbdc6 | ||
|
85246cc7ec | ||
|
6eabc3edf4 |
3 changed files with 76 additions and 32 deletions
|
@ -30,7 +30,7 @@
|
||||||
|
|
||||||
> IMPORTANT: `php-curl`, `php-mbstring` might be a Debian-only package, but this needs further fact checking.
|
> 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>
|
</div>
|
||||||
|
|
||||||
|
@ -188,7 +188,7 @@
|
||||||
|
|
||||||
<h2 align=center>Known issues</h2>
|
<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.
|
[^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.
|
|
@ -353,26 +353,17 @@ class qwant{
|
||||||
"related" => []
|
"related" => []
|
||||||
];
|
];
|
||||||
|
|
||||||
if($json["status"] != "success"){
|
if(
|
||||||
|
$json["status"] != "success" &&
|
||||||
|
$json["data"]["error_code"] === 5
|
||||||
|
){
|
||||||
|
|
||||||
if($json["data"]["error_code"] === 5){
|
// no results
|
||||||
|
return $out;
|
||||||
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"]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->detect_errors($json);
|
||||||
|
|
||||||
if(!isset($json["data"]["result"]["items"]["mainline"])){
|
if(!isset($json["data"]["result"]["items"]["mainline"])){
|
||||||
|
|
||||||
throw new Exception("Server did not return a result object");
|
throw new Exception("Server did not return a result object");
|
||||||
|
@ -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
40
static/themes/Wine.css
Normal 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); }
|
Loading…
Reference in a new issue