summaryrefslogtreecommitdiff
path: root/web.php
diff options
context:
space:
mode:
authorcynic <admin@cynic.moe>2023-09-13 22:24:02 -0500
committerlolcat <lolcat@no-reply@lolcat.ca>2023-09-13 22:24:02 -0500
commit8762d68466b825382f4708a0eebbd3074e32c5c5 (patch)
tree11cd604ee79c4b83769b56cc39bb0db137379e97 /web.php
parentd312674df74affb9f22b2a02e54549006f26d056 (diff)
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>
Diffstat (limited to 'web.php')
-rw-r--r--web.php29
1 files changed, 29 insertions, 0 deletions
diff --git a/web.php b/web.php
index 48539b9..e34672d 100644
--- a/web.php
+++ b/web.php
@@ -476,6 +476,35 @@ if($c !== 0){
}
/*
+ 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
*/
if($results["npt"] !== null){