mirror of
https://git.lolcat.ca/lolcat/4get.git
synced 2025-08-03 19:54:20 -04:00
add structure for `Oracles' (special answers depending on queries + a few implementations (#10)
incl. a calculator, a hash encoder + rot13 and b64!, and a "what time is it" with timezone selection frontend injected in $payload["left"] in web.php you can see this live [on my instance](https://4get.silly.computer/web?s=7%2B8(9%5E2)&scraper=brave&nsfw=yes) (there are some issues that aren't related to this PR. favicons, etc. I'll fix them later.) Reviewed-on: https://git.lolcat.ca/lolcat/4get/pulls/10 Co-authored-by: cynic <admin@cynic.moe> Co-committed-by: cynic <admin@cynic.moe>
This commit is contained in:
parent
d312674df7
commit
8762d68466
6 changed files with 349 additions and 0 deletions
29
web.php
29
web.php
|
@ -475,6 +475,35 @@ if($c !== 0){
|
|||
$payload["left"] .= '</table>';
|
||||
}
|
||||
|
||||
/*
|
||||
Prepend Oracle output, if applicable
|
||||
*/
|
||||
include_once("oracles/encoder.php");
|
||||
include_once("oracles/calc.php");
|
||||
include_once("oracles/time.php");
|
||||
include_once("oracles/numerics.php");
|
||||
$oracles = [new calculator(), new encoder(), new time(), new numerics()];
|
||||
$fortune = "";
|
||||
foreach ($oracles as $oracle) {
|
||||
if ($oracle->check_query($_GET["s"])) {
|
||||
$resp = $oracle->generate_response($_GET["s"]);
|
||||
if ($resp != "") {
|
||||
$fortune .= "<div class=\"infobox\">";
|
||||
foreach ($resp as $title => $r) {
|
||||
if ($title) {
|
||||
$fortune .= "<h3>".htmlspecialchars($title)."</h3><div class=\"code\">".htmlspecialchars($r)."</div>";
|
||||
}
|
||||
else {
|
||||
$fortune .= "<i>".$r."</i><br>";
|
||||
}
|
||||
}
|
||||
$fortune .= "<small>Answer provided by oracle: ".$oracle->info["name"]."</small></div>";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
$payload["left"] = $fortune . $payload["left"];
|
||||
|
||||
/*
|
||||
Load next page
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue