diff options
| author | Hannah Isopod <me@bathynomus.xyz> | 2025-06-13 01:13:52 -0600 |
|---|---|---|
| committer | Hannah Isopod <me@bathynomus.xyz> | 2025-06-13 01:13:52 -0600 |
| commit | 4ace83da3951c37f18fbb9676542239be4d051ee (patch) | |
| tree | d079e79bd76cb2575faee5e64de4b44e96477b98 | |
| parent | 9b88bf8e5fe84b41918cacca69df191e0de3a7b1 (diff) | |
various minor changes + blog post
a bunch of minor alterations, of particular import
is the new blog post and the IP banning function
I added to the guestbook
| -rw-r--r-- | about/images/cheddar03.gif | bin | 0 -> 2315 bytes | |||
| -rw-r--r-- | about/index.php | 7 | ||||
| -rw-r--r-- | bg.jpg (renamed from images/bg.jpg) | bin | 303826 -> 303826 bytes | |||
| -rw-r--r-- | bg.jxl (renamed from images/bg.jxl) | bin | 130798 -> 130798 bytes | |||
| -rw-r--r-- | blog/blog.atom | 16 | ||||
| -rw-r--r-- | blog/posts/blog_questions/index.md | 55 | ||||
| -rw-r--r-- | blog/posts/blog_questions/index.php (renamed from blog/posts/how_my_blog_works/index.php) | 0 | ||||
| -rw-r--r-- | blog/posts/how_my_blog_works/index.md | 0 | ||||
| -rw-r--r-- | blog/posts/post.php | 5 | ||||
| -rw-r--r-- | blog/posts/renting_an_unremarkable_server/index.md | 16 | ||||
| -rw-r--r-- | common.php | 9 | ||||
| -rw-r--r-- | etc/bg.jpg | bin | 419224 -> 619596 bytes | |||
| -rw-r--r-- | etc/bg.jxl | bin | 164764 -> 588579 bytes | |||
| -rw-r--r-- | etc/quotes/images/greensmile.png | bin | 0 -> 57525 bytes | |||
| -rw-r--r-- | etc/quotes/index.php | 41 | ||||
| -rw-r--r-- | guestbook/index.php | 2 | ||||
| -rw-r--r-- | guestbook/submit.php | 28 | ||||
| -rw-r--r-- | index.php | 2 | ||||
| -rw-r--r-- | nav.php | 70 | ||||
| -rw-r--r-- | style.css | 5 |
20 files changed, 176 insertions, 80 deletions
diff --git a/about/images/cheddar03.gif b/about/images/cheddar03.gif Binary files differnew file mode 100644 index 0000000..ead9066 --- /dev/null +++ b/about/images/cheddar03.gif diff --git a/about/index.php b/about/index.php index 6abad48..52730b1 100644 --- a/about/index.php +++ b/about/index.php @@ -24,7 +24,7 @@ <table> <tr> <td>Known aliases</td> - <td>deep twisty, isopod gaming, bathynomus, Hannah, Dawn</td> + <td>deep twisty, isopod gaming, bathynomus, Hannah</td> </tr> <tr> <td>Pronouns</td> @@ -99,7 +99,7 @@ <h2>What's a "deep twisty"?</h2> <p>"deep twisty" is a pseudonym I came up with to post my music and such things under. At this point it exists largely as a way to compartmentalize my online identity such that I can link my art to people who I might not want seeing all this. It comes from some tweets from an <a href="https://web.archive.org/web/20221214182955/https://twitter.com/SubnauticaSCM/status/1095774020446744576">official Subnautica twitter account</a> where they referred to the then-work-in-progress Deep Twisty Bridges biome as just "deep twisty". I thought it sounded funny. Funny enough to brand myself based on, apparently.</p> <h2>About the site</h2> - <p>This website is written in pure HTML, CSS, and a tiny bit of Javascript with the server-side stuff done in PHP. It (and everything else I host) is hosted using Caddy on a OVH dedicated server running Ubuntu Server, with domains registered with <a href="https://porkbun.com/">Porkbun</a>. You can read about its history <a href="../blog/posts/deeptwistycom_2nd_anniversary_-_a_history_of_this_bullshit/">here</a>.</p> + <p>This website is written in pure HTML, CSS, and a tiny bit of Javascript with the (at this point rather extensive) server-side stuff done in PHP. It, and everything else I host, is hosted using Caddy on a OVH dedicated server running Ubuntu Server, with domains registered with <a href="https://porkbun.com/">Porkbun</a>. You can read about its history <a href="../blog/posts/deeptwistycom_2nd_anniversary_-_a_history_of_this_bullshit/">here</a>.</p> <p>I was helped immensely in building this thing by <a href="https://www.w3schools.com/">W3Schools</a>, the <a href="https://developer.mozilla.org/en-US/docs/Web">MDN Web Docs</a>, the official <a href="https://www.php.net/manual/en/">PHP manual</a>, <a href="https://landchad.net/">LandChad.net</a>, Stack Overflow, and whatever disgusting bottom-feeding SEO leech sites came up first in the search results.</p> <h2>Quiz results</h2> <div> @@ -108,11 +108,12 @@ <a href="https://andou.gay/quiz/donutquiz"><img src="https://andou.gay/quiz/chocolate donut.png" height="100px"></a> <a href="https://swiftyshq.neocities.org/fun/quiz/rock/" title="Description: ough.... youre so relaxed.... this rock is PERFECT for napping on.... it's warmed by the sun too... .yo.... snzz"><img src="https://swiftyshq.neocities.org/img/quiz/rock/r2.png" height="100px"></a> <a href="https://swiftyshq.neocities.org/fun/quiz/creature/" title="Description: http creature not found. you are maybe toxic but in a funny way. gods little meow meow"><img src="https://swiftyshq.neocities.org/img/quiz/creature/res3.png" height="100px"></a> + <a href="http://cupped-expressions.net/cheese/quiz/"><img src="images/cheddar03.gif" width=226 height=93 alt="I am cheddar cheese!"></a> </div> <h2>Testimonials</h2> <figure class="quote"> <blockquote> - Most of it goes over my head, but it's still fun to read and look at, and I am not immune to isopods. + I am not immune to isopods. </blockquote> <figcaption> — <a href="https://kalechips.net/">Kalechips</a> Binary files differBinary files differdiff --git a/blog/blog.atom b/blog/blog.atom index 7951ab6..6c13af0 100644 --- a/blog/blog.atom +++ b/blog/blog.atom @@ -3,7 +3,7 @@ <title>isopod.cool blog</title> <id>https://isopod.cool/blog/</id> <link rel="alternate" href="https://isopod.cool/blog/"></link> - <updated>2025-06-11T00:00:00+00:00</updated> + <updated>2025-06-12T00:00:00+00:00</updated> <author> <name>Hannah Isopod</name> <uri>https://isopod.cool/</uri> @@ -23,6 +23,16 @@ <category term="php"/> </entry--> <entry> + <title>Revealing All My Deepest Blogging Secrets (Blog questions challenge)</title> + <id>blog_questions</id> + <link rel="alternate" href="https://isopod.cool/blog/posts/blog_questions/" type="html" title="Revealing All My Deepest Blogging Secrets (Blog questions challenge)"></link> + <published>2025-06-12T00:00:00+00:00</published> + <updated>2025-06-12T00:00:00+00:00</updated> + <summary>In probably the least challenging challenge I've ever been challenged with, I answer a list of blog-centric question prompts that's been making the rounds in the blog-o-sphere.</summary> + <category term="personal"/> + <category term="meta"/> + </entry> + <entry> <title>Revisiting "AI"</title> <id>ai2</id> <link rel="alternate" href="https://isopod.cool/blog/posts/ai2/" type="html" title="Revisiting AI"></link> @@ -49,10 +59,11 @@ <id>renting_an_unremarkable_server</id> <link rel="alternate" href="https://isopod.cool/blog/posts/renting_an_unremarkable_server/" type="html" title="I've Just Moved Hosting Providers"></link> <published>2025-04-29T00:00:00+00:00</published> - <updated>2025-04-29T00:00:00+00:00</updated> + <updated>2025-06-12T00:00:00+00:00</updated> <summary>I've just migrated all my self-hosted stuff onto a new type of hosting solution with a new provider, and apparently I had a lot more to say about it than I thought. I promise my next post will be about something other than a computer.</summary> <category term="personal"/> <category term="self-hosting"/> + <category term="meta"/> </entry> <entry> <title>Holiday Special: My First Computer</title> @@ -253,6 +264,7 @@ <updated>2024-09-10T00:00:00+00:00</updated> <summary>An abridged history of my presence on the World Wide Web, from my first customized Tumblr pages to now.</summary> <category term="personal"/> + <category term="meta"/> </entry> <!--entry> <title>Self-Host Safely with WireGuard</title> diff --git a/blog/posts/blog_questions/index.md b/blog/posts/blog_questions/index.md new file mode 100644 index 0000000..4f6ac6b --- /dev/null +++ b/blog/posts/blog_questions/index.md @@ -0,0 +1,55 @@ +I was clicking around [some other blog](https://blog.kalechips.net/post/2025-01-11-Blog-Questions) and found this fun little list of question prompts for foolish, naive bloggers such as myself to answer publicly, thus casually exposing our secrets and opening ourselves up to blackmail and doxxing. Naturally I decided it would be cool to do it myself. + +Apparently someone's supposed to tag you in these things, but it's my blog and it's not like anyone's gonna stop me, so I'm doing it totally unsolicited, and if you don't like it you can pound sand, suck a lemon, and other such whimsical idioms. + +Conveniently, this also serves the purpose of the obligatory "how my CMS works" post I've been meaning to write for the past couple months. + +## Why did you start blogging in the first place? + +Like many of the things on my website, I initially started a real-ass proper we-blog because it seemed like a cool thing to put on my website, and it was a good place to put a style of writing that didn't really feel suited to the various microblogging platforms I already had a presence on. I kept doing it because, as it turns out, I sometimes have a lot to say about something. Most often computer toucher shit. + +## What platform are you using to manage your blog and why did you choose it? + +To call the thing I've built here a "platform" would be a little generous, I think, but it is pretty interesting, and possibly quite unorthodox. + +The backend for my blog is built around its RSS feed, which is to say, the authoritative source for all the metadata for each blog post is an Atom feed that I write by hand. The PHP script that renders the index page is essentially just a glorified RSS reader for just that one feed. + +The posts themselves are stored as Markdown files with a smattering of HTML mixed in for the really custom stuff, and there's a second PHP file that renders them using a third-party PHP Markdown parser called [Parsedown](https://github.com/erusev/parsedown) (which, fun fact, is also responsible for the Markdown support in the comment section). The only unfortunate thing here is every markdown file has to be accompanied by a stub index.php that just `include`s the main post rendering script, but it's not like I ever have to touch those so it's fine. Here, I'll put all the code that's in every single one right here: + +``` +<?php include("../post.php"); +``` + +The comment section is fully custom too, and shares a backend with the [guestbook](/guestbook/). At its core it's all just PHP forms with a single JSON file as the database, which is more than fine at the scale I'm operating at. Everything else is just gravy, although there is at this point quite a preponderance of gravy. + +As for why I did all this, I like not being beholden to the moderation guidelines, aesthetic limitations, and in many cases totally batshit leadership of a blog host, and this is also kind of the only solution that lets me do all the wacky custom nonsense I want to do on here, especially without involving any Javascript. + +## How do you write your posts? + +The fact that all my blog posts are in Markdown means that I theoretically could draft them in Obsidian if I wanted to, but I most often find myself writing at my computer in the same VSCodium window where I write all the code. If anything, this is more convenient, since I still have to upload the files over sftp anyway. Allthough, not havign a spelchecker can be a litle annyoing. + +## Have you blogged on other platforms before? + +Not really. I briefly used Blogger and I think a couple other things for school projects at various points in my upbringing, but this site represents my first time seriously maintaining a long-form blog. + +I mean, the official term for your Tumblr profile is "blog", and I have been on there for like eight or nine years at this point, but given how I use that site I don't think it counts for our purposes here today. + +## When do you feel most inspired to write? + +I suspect you can guess based on the content of my blog. Most of the posts on here are the result of a really longwinded opinion I wanted to get out, or some very specific thing I did that I wanted to document or otherwise ramble about. So far, inspiration seems to exclusively strike when it's about computer nonsense, but I'd like to try to branch out in the future. + +## Do you publish immediately after writing, or do you let it simmer a bit as a draft? + +I find it's best practice to sleep on it before publishing anything. Oftentimes I'll come back to a post the next day and change anything from a couple typos to huge chunks of the wording. Sometimes rinse and repeat a couple times. + +## What's your favourite post on your blog? + +I'm particularly fond of the series documenting my home server builds, [Building a Completely Normal Server](/blog/posts/building_a_normal_server/) and [Building a Relatively Sensible Server](/blog/posts/building_a_sensible_server/). I'd like to do more in-depth project logs like that. + +## Any future plans for your blog? + +Beyond continuing to write the occasional post for it, not really. I've contemplated building some kind of management interface to update it through the browser, but that would be a lot of effort and it's not like a clunky workflow is the main bottleneck to my posting frequency. + +## Why do you write? + +I seem to genuinely enjoy this kind of writing. It's conducive to a kind of expression that social media just isn't. Beyond that, I'd like to think someone, somewhere, might perhaps be getting some informational value out of some of these, hence posts like [this](/blog/posts/grow_spikes/), and [that](/blog/posts/guide_blacklist_websites_searxng/), but at the end of the day I wouldn't be doing this if I wasn't compelled to by dark forces beyond my full comprehension — in other words, Type II fun.
\ No newline at end of file diff --git a/blog/posts/how_my_blog_works/index.php b/blog/posts/blog_questions/index.php index f572f79..f572f79 100644 --- a/blog/posts/how_my_blog_works/index.php +++ b/blog/posts/blog_questions/index.php diff --git a/blog/posts/how_my_blog_works/index.md b/blog/posts/how_my_blog_works/index.md deleted file mode 100644 index e69de29..0000000 --- a/blog/posts/how_my_blog_works/index.md +++ /dev/null diff --git a/blog/posts/post.php b/blog/posts/post.php index 65d2661..f8ed395 100644 --- a/blog/posts/post.php +++ b/blog/posts/post.php @@ -23,7 +23,7 @@ foreach($feed->entry as $entry) { $pdate = preg_replace('/T.*$/', ' ', $entry->published); $udate = preg_replace('/T.*$/', ' ', $entry->updated); $title = $entry->title; - $descr = $entry->summary; + $descr = htmlspecialchars($entry->summary); } else if($title) { $nextlink = $entry->link["href"]; $nexttitle = $entry->title; @@ -73,6 +73,9 @@ foreach($feed->entry as $entry) { flex-direction: column; } } + td { + display: table-cell !important; + } </style> <?php include($_SERVER['DOCUMENT_ROOT'] . '/seasonal.php'); ?> </head> diff --git a/blog/posts/renting_an_unremarkable_server/index.md b/blog/posts/renting_an_unremarkable_server/index.md index d2687dd..117de85 100644 --- a/blog/posts/renting_an_unremarkable_server/index.md +++ b/blog/posts/renting_an_unremarkable_server/index.md @@ -4,14 +4,14 @@ Up until recently, I ran all my exposed-to-the-web self-hosted services on a mod In researching alternative VPS options, I landed on OVH because they were the most reputable non-American hosting provider I could find with a datacenter in my country that I could be sure would allow me to use IPv6. Their VPS offerings were decent, certainly attractive to someone used to DigitalOcean prices, but I ended up going with a dedicated server instead due to the, to put it lightly, *vastly* better price-to-performance ratio on offer: -| | Old VPS | New server | Comparably priced OVH VPS | -| --- | --- | --- | --- | -| CPU | 2 threads | 4 core/8 thread Intel Xeon-D 1520 | 4 threads | -| RAM | 4GB | 32GB DDR4-2133 ECC | 4GB | -| Storage | 80GB NVMe | 480GB mirrored SATA SSDs | 80GB NVMe | -| Network | 2Gbps | 300Mbps | 1Gbps | -| Backups | Automated | Bring your own | On-demand | -| Price (CAD) | $44/mo | $25/mo | $26/mo | +| Old VPS | New server | Comparably priced OVH VPS | +| --- | --- | --- | +| 2 threads | 4 core/8 thread Intel Xeon-D 1520 | 4 threads | +| 4GB RAM | 32GB DDR4-2133 ECC | 4GB RAM | +| 80GB NVMe | 480GB mirrored SATA SSDs | 80GB NVMe | +| 2Gbps | 300Mbps | 1Gbps | +| Automated backups | Bring your own backups | On-demand backups | +| $44/mo | $25/mo | $26/mo | See what I mean? Of course, none of these seem like all that from the perspective of a modern personal computer, but this represents a *quadrupling* of CPU cores and RAM and a *sextupling* of storage space for a near halving of the price compared to my already adequate previous solution. That's like eight times the value! Though, looking at this table, you can already see a couple of the reasons it's priced so competitively, even accounting for the DigitalOcean tax. Let's break this down. @@ -1,7 +1,8 @@ <?php -# Common data for the various guestbook scripts $datadir = "/var/www/data/isopoddotcool/"; + +# Common data for the various guestbook scripts $defaultmodstatus = 1; # If 0, all posts will be held for review by default. # If 1, only posts containing the banned words defined in # $datadir/bannedwords.json will be held for review. @@ -11,5 +12,7 @@ $gbform_messages = array ( "botcheckfailed" => "<span class='error'>Bot test failed!</span>", "noname" => "<span class='error'>Name required!</span>", "nomessage" => "<span class='error'>Message required!</span>", - "invalidlink" => "<span class='error'>Invalid link!</span>" -);
\ No newline at end of file + "invalidlink" => "<span class='error'>Invalid link!</span>", + "banned" => "<span class='error'>You've been banned.</span>" +); +?>
\ No newline at end of file Binary files differBinary files differdiff --git a/etc/quotes/images/greensmile.png b/etc/quotes/images/greensmile.png Binary files differnew file mode 100644 index 0000000..fc0f891 --- /dev/null +++ b/etc/quotes/images/greensmile.png diff --git a/etc/quotes/index.php b/etc/quotes/index.php index ad9f8b6..2e596f1 100644 --- a/etc/quotes/index.php +++ b/etc/quotes/index.php @@ -1,7 +1,7 @@ -<?php ini_set('display_errors', '1'); +<!--?php ini_set('display_errors', '1'); ini_set('display_startup_errors', '1'); error_reporting(E_ALL); -?> +?--> <!DOCTYPE html> <html lang="en"> <head> @@ -11,7 +11,7 @@ error_reporting(E_ALL); <link href="../../style.css" rel="stylesheet" type="text/css" media="all"> <style type="text/css"> :root { - --bgcolor: #313338; + --bgcolor: #323339; --fontcolor: #d7d5d9; --stdfont: sans-serif; } @@ -64,17 +64,28 @@ error_reporting(E_ALL); $this->color = $c; } } - $me = new User("h_pfp", "President Glup Shitto ඞ", "00ffb7"); - $vivi = new User("v_pfp", "vivi_", "ff009e"); - $sad = new User("s_pfp", "first Mithrun of the universe ඞ", "f1c40f"); - $mage = new User("m_pfp", "beatboxing puppy fan", "faaaaa"); - $celian = new User("c_pfp", "ᘛ⁐̤ᕐᐷ𝕤𝕝𝕦𝕥ಡඞ𐐘𐑀", "73fbff"); - $thom = new User("t_pfp", "Tomato ඞ", "567c2d"); - $goon = new User("g_pfp", "horny (short for hornworm) ඞ", "2c9c91"); - $portals = new User("p_pfp", "portalsandart ඞ", "5a397d"); - $joy = new User("j_pfp", "JoyTheBoi ඞ", "a2ff00"); + $me = new User("h_pfp", "isopod", "00ffb7"); + $vivi = new User("v_pfp", "pink one", "ff009e"); + $sad = new User("s_pfp", "yellow one", "f1c40f"); + $mage = new User("m_pfp", "sea slug", "faaaaa"); + $celian = new User("c_pfp", "bird one", "73fbff"); + $thom = new User("t_pfp", "tomato", "567c2d"); + $goon = new User("g_pfp", "crab one", "2c9c91"); + $portals = new User("p_pfp", "purple one", "5a397d"); + $joy = new User("j_pfp", "green one", "a2ff00"); $quotes = array( + array($celian, "i think doom guy should lick the rocky cliffs for precious minerals", true), + array($me, "I don't have aspirations of egghood", true), + array($mage, "I wish australia was [...] real", true), + array($mage, "I accidentally kill over 50 small animals every time I ride my horse. I can kill you too", true), + array($mage, "the jermas have awful breeding problems", true), + array($celian, "<img src='images/greensmile.png' alt='vaguely unsettling green smiley face emoji bearing a strong resemblance to the one from geometry dash'/>", true), + array($me, "swagful"), + array($celian, "You can quote me on that: I LOVE penis", true), + array($celian, "pee is awesome", true), + array($mage, "Our bells jingled with delight!", true), + array($me, "you love my dejected and bindlepilled swag", true), array($celian, "genshin player slash slur", true), array($me, "I'm dejected and bindlepilled", true), array($celian, "you didn't know? every boat comes with free sex", true), @@ -317,7 +328,7 @@ error_reporting(E_ALL); array($me, "you're gonna be <i>so</i> tasty in two weeks", true), array($me, "nobody's going to be able to decipher our language because they'll do it right and translate phrases like \"i think dio's tits should switch places\" and assume they did it wrong and keep trying", true), array($me, "Sasuke shoved his hands into Naruto's pants and grinned when the blond whimpered from his touch. \"Already, Naruto?\" he asked.<br>Wrong chat<br>How yall doin", true), - array($me, "I'm not in denail I'm a furry", true), + array($me, "I'm not in denial I'm a furry", true), array($me, "mold is a fursuit for bread", true), array($mage, "when someone eats moldy food does that mean they're voring a furry?"), array($me, "yes"), @@ -400,10 +411,10 @@ error_reporting(E_ALL); if(isset($q[2]) && $q[2]) { echo "<hr>"; } - echo "<div class='message'>"; + echo "<article class='message'>"; echo "<img src='images/".$q[0]->pfp.".png' class='pfp' />"; echo "<div class='content'><h4 style='margin: 0; color: #".$q[0]->color.";'>".$q[0]->name."</h4>".$q[1]."</div>"; - echo "</div>"; + echo "</article>"; } ?> diff --git a/guestbook/index.php b/guestbook/index.php index 77d211e..8908e25 100644 --- a/guestbook/index.php +++ b/guestbook/index.php @@ -57,7 +57,7 @@ error_reporting(E_ALL); <td><input type="text" name="botcheck" placeholder="*.cool"></td> </tr> - <?php if($return) { echo("<tr><td></td><td>".$gbform_messages[$return]."</td></tr>"); }?> + <?php if($return) { echo("<tr><td colspan='2' style='text-align: center;''>".$gbform_messages[$return]."</td></tr>"); }?> <tr> <td colspan="2" style="text-align: center;"><input type="reset"><input type="submit" value="Submit"></td> </tr> diff --git a/guestbook/submit.php b/guestbook/submit.php index 7fab0d5..0e53fb3 100644 --- a/guestbook/submit.php +++ b/guestbook/submit.php @@ -1,10 +1,31 @@ <?php + +ini_set('display_errors', 1); +ini_set('display_startup_errors', 1); +error_reporting(E_ALL); + include($_SERVER['DOCUMENT_ROOT'] . '/common.php'); if ($_SERVER["REQUEST_METHOD"] == "POST") { + $bansfp = '/var/www/data/ipbans.json'; + $ipbans = json_decode(file_get_contents($bansfp), $assoc = true); + $sourceip = $_SERVER['REMOTE_ADDR']; + $returnCode = "success"; - if($_POST["botcheck"] != "isopod" or $_POST['msg']) { + if(isset($ipbans[$sourceip]) and $ipbans[$sourceip]["bannedmanually"]) { + $returnCode = "banned"; + header("Location: https://www.youtube.com/watch?v=dQw4w9WgXcQ"); + die(); + } else if($_POST["botcheck"] != "isopod" or $_POST['msg']) { $returnCode = "botcheckfailed"; + + $bf = 1; + if(isset($ipbans[$sourceip])) { + $bf = $ipbans[$sourceip]["botfails"] + 1; + } + $ipbans[$sourceip] = array( "botfails" => $bf, "bannedmanually" => false ); + file_put_contents($bansfp, json_encode($ipbans, JSON_PRETTY_PRINT)); + } else if(!$_POST["name"]) { $returnCode = "noname"; } else if(!$_POST["message"]) { @@ -24,13 +45,16 @@ $modstatus = 0; } } + if(isset($ipbans[$sourceip]) and $ipbans[$sourceip]["botfails"] >= 5) { + $modstatus = 0; + } if($modstatus < 1) { $returnCode = "review"; } $currentPost = array( "entry" => $_POST["entry"], - "sourceip" => $_SERVER['REMOTE_ADDR'], + "sourceip" => $sourceip, "date" => time(), "name" => $_POST["name"], "message" => $_POST["message"], @@ -147,7 +147,7 @@ <body> <?php include('nav.php'); bg(true, 11, "Pictured: The eponymous Deep Twisty"); ?> <main> - <img src="images/landing.png" alt="Isopod on her skinkpad (thinkpad but with added skink)" title="replacement image pending"/> + <img src="images/landing.png" alt="Isopod on her skinkpad (thinkpad but with added skink)" title="The Lenovo SkinkPad P15w is powered by a highly efficient, passively-cooled RISC-V processor and features an IP69 water resistance rating for reliable amphibious operation at virtually unlimited depths, making it the perfect laptop for the deep-sea crustacean in your life."/> <?php $username = "niceopod"; // Your username here! $ch = curl_init("https://status.cafe/users/$username/status.json"); @@ -1,4 +1,5 @@ <?php + function bg($rightside = false, $dfs = 1000, $title = null) { $cpath = preg_replace("/\/[^\/]*$/", "", $_SERVER['REQUEST_URI']); $output = "<div style='--bgimg: url(\"$cpath/bg.jxl\"), url(\"$cpath/bg.jpg\");"; @@ -31,6 +32,8 @@ if(!preg_match('/(headless.*)/i', $_SERVER['HTTP_USER_AGENT'])) { 'This site uses $_GAY_COOKIE_EQUIVALENT', 'Supports LGBT!', 'Banned in Florida!', + 'I hear they\'re doing gay sloth month next', + 'and for strait people just gn i guess 😐', 'Are you cis or are you normal' ); $seasonal = true; @@ -48,7 +51,7 @@ if(!preg_match('/(headless.*)/i', $_SERVER['HTTP_USER_AGENT'])) { ); $seasonal = true; break; - case 12: + /*case 12: $captions = array( 'hoe hoe hoe or some shit', 'Happy Holidays!', @@ -65,7 +68,7 @@ if(!preg_match('/(headless.*)/i', $_SERVER['HTTP_USER_AGENT'])) { 'christmas isn\'t real' ); $seasonal = true; - break; + break;*/ default: $captions = array( 'bruh moment', @@ -138,15 +141,16 @@ if(!preg_match('/(headless.*)/i', $_SERVER['HTTP_USER_AGENT'])) { 'Hard Disk Drive!', '"Tablet or smartphone device"', 'Free Palestine!', + 'Girl, we\'ve <em>been</em> knowing how to draw.', + '<span class="flipped">Upside Down!</span>', + '<span class="rainbowtext">RGB Gaming Webpage</span>', + '<a href="/stuff/beat/">@'.date("B").'</a>', + '<a href="https://www.youtube.com/watch?v=N14uA0EhBAU">coke and fries halo</a>', + 'Check it out, I\'m in the <span class="house">house</span> like carpet', 'COUNTER', 'TUEADAY', 'PLACEHIM', - 'UPSIDEDOWN', - 'RGB', - 'BLAHAJ', - '@BEAT', - 'HALO', - 'LIKECARPET' + 'BLAHAJ' ); break; } @@ -175,24 +179,6 @@ if(!preg_match('/(headless.*)/i', $_SERVER['HTTP_USER_AGENT'])) { $cap = '<img id="blahaj" src="images/blahaj.png"> <a href="https://berrymot.github.io/">certified</a> Good Website by blåhaj'; echo "<style type='text/css'>#blahaj { animation: spin 5s linear infinite; height: 1em; } @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } @media (prefers-reduced-motion) { #blahaj { animation: none; } }</style>"; break; - case 'Kind of dragon free!': - $cap = '<span class="minecraftsplash">Kind of dragon free!</span>'; - break; - case 'UPSIDEDOWN': - $cap = '<span class="flipped">Upside Down!</span>'; - break; - case 'RGB': - $cap = '<span class="rainbowtext">RGB Gaming Webpage</span>'; - break; - case '@BEAT': - $cap = '<a href="/stuff/beat/">@'.date("B").'</a>'; - break; - case 'HALO': - $cap = '<a href="https://www.youtube.com/watch?v=N14uA0EhBAU">coke and fries halo</a>'; - break; - case 'LIKECARPET': - $cap = 'Check it out, I\'m in the <span class="house">house</span> like carpet'; - break; } } } @@ -216,21 +202,21 @@ function echolink($url, $name) { <nav id='main-nav'> <a href='/neppy/' style='position: absolute; top: -500rem; left: -500rem; height: 0; width: 0; font-size: 0; opacity: 0;'>AI scrapers click here!</a> <?php - if($_SERVER["DOCUMENT_ROOT"] !== getcwd()) { - echo "<a href='https://$host/'>home</a> "; - } else { - echo("<a href='https://deeptwisty.com' style='text-decoration: none;' title='the website where i post my various art. i like to compartmentalize'><span style=' margin: 0; padding: 0; font-style: italic; background: linear-gradient(135deg, #2e1ae0 0%, #2e1ae0 35%, #00ff00 65%, #ffff00 90%); background-clip: text; -webkit-text-fill-color: transparent;'>deep twisty</span></a>"); - } - echolink("about", "about"); - echolink("uses", "uses"); - echolink("music", "music"); - echolink("blog", "blog"); - echolink("links", "links"); - echolink("stuff", "stuff"); - echolink("guestbook", "guestbook"); - echolink("stats", "stats"); - echolink("greenhouse", "greenhouse"); - echolink("etc", "etc"); - echo("</nav>"); + if($_SERVER["DOCUMENT_ROOT"] !== getcwd()) { + echo "<a href='https://$host/'>home</a> "; + } else { + echo("<a href='https://deeptwisty.com' style='text-decoration: none;' title='the website where i post my various art. i like to compartmentalize'><span style=' margin: 0; padding: 0; font-style: italic; background: linear-gradient(135deg, #2e1ae0 0%, #2e1ae0 35%, #00ff00 65%, #ffff00 90%); background-clip: text; -webkit-text-fill-color: transparent;'>deep twisty</span></a>"); + } + echolink("about", "about"); + echolink("uses", "uses"); + echolink("music", "music"); + echolink("blog", "blog"); + echolink("links", "links"); + echolink("stuff", "stuff"); + echolink("guestbook", "guestbook"); + echolink("stats", "stats"); + echolink("greenhouse", "greenhouse"); + echolink("etc", "etc"); ?> + </nav> </header>
\ No newline at end of file @@ -91,6 +91,7 @@ header { position: absolute; top: 0; width: fit-content; + min-width: var(--bodywidth); height: var(--navbarheight); padding-top: 0.5rem; left: 50%; @@ -140,8 +141,8 @@ body > a { /* Background image type beat */ #leftsidebg, #rightsidebg { - --bgimg: url(images/bg.jxl), url(images/bg.jpg); - background-image: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06)), var(--bgimg), url(images/bg.jxl), url(images/bg.jpg); + --bgimg: url(/bg.jxl), url(/bg.jpg); + background-image: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06)), var(--bgimg); background-size: 100% 2px, 3px 100%, cover, cover, cover, cover; background-repeat: repeat; background-position: center; |
