diff options
author | Lizzy Hunt <elizabeth.hunt@simponic.xyz> | 2024-03-09 21:29:25 -0700 |
---|---|---|
committer | Lizzy Hunt <elizabeth.hunt@simponic.xyz> | 2024-03-09 21:29:25 -0700 |
commit | 67e4b234d31626976ad630043814235c936f8bbf (patch) | |
tree | fcf4259005094271ab475d4f55cea1c251357817 /html/public | |
parent | 2c4b0cf6c40d7b866a9c538a4df06bc36e189d89 (diff) | |
download | tilde.club-67e4b234d31626976ad630043814235c936f8bbf.tar.gz tilde.club-67e4b234d31626976ad630043814235c936f8bbf.zip |
finish static page
Diffstat (limited to 'html/public')
-rw-r--r-- | html/public/css/style.css | 77 | ||||
-rw-r--r-- | html/public/fruitvote/GoPage.php | 88 | ||||
-rw-r--r-- | html/public/fruitvote/index.php | 7 | ||||
-rw-r--r-- | html/public/img/penguin.gif | bin | 0 -> 53409 bytes | |||
-rw-r--r-- | html/public/index.php | 54 | ||||
-rw-r--r-- | html/public/template.html | 38 |
6 files changed, 252 insertions, 12 deletions
diff --git a/html/public/css/style.css b/html/public/css/style.css new file mode 100644 index 0000000..a4f243f --- /dev/null +++ b/html/public/css/style.css @@ -0,0 +1,77 @@ +/* Basic Reset */ +*, +*::before, +*::after { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +body { + background-color: #2a2a2a; /* Dark background */ + color: #f4c2c2; /* Soft pink text, typical of a girly 90s vibe */ + font-family: "Comic Sans MS", "Chalkboard SE", sans-serif; /* Retro, playful font */ + + padding: 20px; +} + +a { + color: #ff47da; /* Bright pink for links */ + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +button, +input[type="submit"], +input[type="button"] { + background-color: #ff69b4; /* Bright pink for buttons */ + border: none; + color: white; + padding: 10px 20px; + text-transform: uppercase; + font-family: "Comic Sans MS", "Chalkboard SE", sans-serif; + cursor: pointer; + transition: background-color 0.3s ease; +} + +button:hover, +input[type="submit"]:hover, +input[type="button"]:hover { + background-color: #ff1493; /* Darker pink on hover */ +} + +input[type="text"], +input[type="password"], +textarea { + background-color: #333; /* Darker elements for inputs */ + border: 1px solid #f4c2c2; /* Soft pink border */ + color: #f4c2c2; /* Soft pink text */ + padding: 10px; +} + +/* Example of styling a specific component differently */ +.special-button { + background-color: #ff47da; /* A different shade of pink */ + border-radius: 20px; /* Rounded edges for a more playful look */ +} + +h1, +h2, +h3, +h4, +h5, +h6 { + color: #ff69b4; + margin-bottom: 20px; +} + +p { + margin-bottom: 20px; +} + +li { + margin-left: 20px; +} diff --git a/html/public/fruitvote/GoPage.php b/html/public/fruitvote/GoPage.php new file mode 100644 index 0000000..c3a7d34 --- /dev/null +++ b/html/public/fruitvote/GoPage.php @@ -0,0 +1,88 @@ +<?php +class GoPage { + private $page; + private $socket; + private $template; + + public function __construct($page, $socket = "/home/lizzy/fruitvote/http.sock", $start_cmd="/home/simponic/fruitvote/start.sh", $template="../template.html") { + $this->page = $page; + $this->socket = $socket; + $this->template = $template; + + // test if socket exists + if (!file_exists($socket)) { + // start the server + exec($start_cmd); + } + + for ($i = 0; $i < 10; $i++) { + if (file_exists($socket)) { + break; + } + usleep(100_000); // wait 100ms + } + + if (!file_exists($socket)) { + throw new Exception("Could not start server"); + } + } + public function go() { + $ch = curl_init(); + $url = "http://localhost".$this->page; + + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_UNIX_SOCKET_PATH, $this->socket); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + + // forward headers + $headers = array(); + foreach ($_SERVER as $key => $value) { + if (substr($key, 0, 5) == "HTTP_") { + $key = str_replace(" ", "-", ucwords(strtolower(str_replace("_", " ", substr($key, 5))))); + $headers[] = "$key: $value"; + } + } + curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); + + // forward params depending on http method + if ($_SERVER['REQUEST_METHOD'] == "POST" || $_SERVER['REQUEST_METHOD'] == "PUT" || $_SERVER['REQUEST_METHOD'] == "DELETE") { + curl_setopt($ch, CURLOPT_POST, 1); + curl_setopt($ch, CURLOPT_POSTFIELDS, file_get_contents('php://input')); + } else { + $url .= "?".$_SERVER['QUERY_STRING']; + } + + // forward cookies + $cookie = array(); + foreach ($_COOKIE as $key => $value) { + $cookie[] = "$key=$value"; + } + + $output = curl_exec($ch); + curl_close($ch); + + // forward headers back to client + $headers = explode("\n", $output); + foreach ($headers as $header) { + if (strpos($header, "HTTP/") === false) { + header($header); + } + } + + // forward cookies back to client + $cookie = explode("\n", $output); + foreach ($cookie as $cookie) { + if (strpos($cookie, "Set-Cookie:") !== false) { + header($cookie); + } + } + + return $output; + } + + public function render() { + $response = $this->go(); + $template = file_get_contents($this->template); + return str_replace("{{content}}", $response, $template); + } +} diff --git a/html/public/fruitvote/index.php b/html/public/fruitvote/index.php new file mode 100644 index 0000000..1abfb0c --- /dev/null +++ b/html/public/fruitvote/index.php @@ -0,0 +1,7 @@ +<?php + +require_once("GoPage.php"); + +$page = new GoPage("/"); +echo $page->render(); +?> diff --git a/html/public/img/penguin.gif b/html/public/img/penguin.gif Binary files differnew file mode 100644 index 0000000..48bd0e2 --- /dev/null +++ b/html/public/img/penguin.gif diff --git a/html/public/index.php b/html/public/index.php index 3ed5805..004a131 100644 --- a/html/public/index.php +++ b/html/public/index.php @@ -1,19 +1,49 @@ <?php -// todo: startup go program if not started. use low cpu priority. +$content = ' +<p>you are at my <a href="https://tilde.club">tilde.club</a> page right now! hi!</p> -$ch = curl_init(); -$url = "http:/localhost"; -$unix = "/home/simponic/http.sock"; +<img src="/img/penguin.gif" alt="a penguin" style="width: 200px; height: 200px;"/> +<p><em>this is a penguin</em></p> -if (defined('CURLOPT_UNIX_SOCKET_PATH')) { - curl_setopt($ch, CURLOPT_UNIX_SOCKET_PATH, $unix); - curl_setopt($ch, CURLOPT_URL, $url); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); +<p>here you can:</p> - $response = curl_exec($ch); - echo $response; -} +<ul> + <li>vote on your favorite <a href="/fruit">fruit</a></li> + <li>play <a href="/the-abstraction-engine">the abstraction engine</a> (WIP)</li> + <li>play <a href="/euler-golf">euler golf 2</a></li> + <li>program a <a href="/turing-machine">turing machine</a></li> + <li>mess with <a href="/godel-explorer">godel numbers</a></li> + <li>more to come?</li> +</ul> -curl_close($ch); +<br /> +<br /> + +<p> +here are some stuffs i like: +<ul> + <li>penguins, dogs, birds</li> + <li>programming (((with parentheses)))</li> + <li>compilers, languages, distributed systems</li> + <li>emacs</li> + <li>math</li> + <li>boys (and girls) 🏳️🌈</li> + <li>gruvbox & catpuccin</li> +</ul> +</p> + +<p> +here are some stuffs i don\'t like: +<ul> + <li>bugs (hahahaha)</li> + <li>capitalism, expensive healthcare, yadayada</li> + <li>mmmm i can\'t think of more</li> +</ul> +</p> +'; + +$template = file_get_contents('template.html'); + +echo str_replace("{{content}}", $content, $template); ?> diff --git a/html/public/template.html b/html/public/template.html new file mode 100644 index 0000000..4867c55 --- /dev/null +++ b/html/public/template.html @@ -0,0 +1,38 @@ +<!DOCTYPE html> + +<html> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title>~simponic</title> + + <link rel="stylesheet" href="/css/style.css"> + </head> + + <body> + <div> + <h1><a href="/">~simponic</a></h1> + <ul> + <li style="display:inline; margin-right: 20px; margin-left: 0px;"><a href="/">home</a></li> + <li style="display:inline; margin-right: 20px; margin-left: 0px;"><a href="/fruitvote">fruitvote</a></li> + </ul> + </div> + <br /> + + {{content}} + + <br /> + <hr /> + <br /> + + <ul> + <li style="display:inline; margin-right: 20px; margin-left: 0px;"><a href="https://git.simponic.xyz/simponic">gitea</a></li> + <li style="display:inline; margin-right: 20px; margin-left: 0px;"><a href="https://git.simponic.xyz/simponic/tilde.club">source</a></li> + <li style="display:inline; margin-right: 20px; margin-left: 0px;"><a href="mailto:elizabeth.hunt@simponic.xyz">email</a></li> + <li style="display:inline; margin-right: 20px; margin-left: 0px;"><a href="https://www.linkedin.com/in/simponic/">linkedin</a></li> + <li style="display:inline; margin-right: 20px; margin-left: 0px;"><a href="http://tilde.club/~harper/link.html?action=random">random tilde.club page</a></li> + </ul> + <br /> + <a href="https://tilde.club"><img src="http://tilde.club/~harper/webring.png" border="0" usemap="#notepad.map"></a> + </body> +</html> |