aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornathansmith117 <nathansmith@posteo.com>2025-03-16 14:38:33 -0600
committernathansmith117 <nathansmith@posteo.com>2025-03-16 14:38:33 -0600
commitd38c2cd40d7fe574bbbf9f31d8f62b78724592f8 (patch)
treed39d3f4ba8d2dc55264e18bb5f37359e858ca40d
parentb3a660b9511e3c192108f07e958f6f448eba3247 (diff)
Be crime do gay
-rwxr-xr-xcgi-bin/webring_redirect.cgi96
-rw-r--r--guest_book.json8
-rw-r--r--images/do_gay.pngbin0 -> 2471 bytes
-rw-r--r--images/pride.pngbin0 -> 1637 bytes
-rw-r--r--index.html15
5 files changed, 119 insertions, 0 deletions
diff --git a/cgi-bin/webring_redirect.cgi b/cgi-bin/webring_redirect.cgi
new file mode 100755
index 0000000..2b114cc
--- /dev/null
+++ b/cgi-bin/webring_redirect.cgi
@@ -0,0 +1,96 @@
+#! /usr/bin/env python
+
+import cgi
+import requests
+import random
+import json
+
+WEBSITE_URL = "http://nathansmith117.beevomit.org"
+
+def handle_be_crime_do_gay_webring():
+ try:
+ # https://codeberg.org/artemislena/artemislena.eu#be-crime-do-gay-webring
+ req = requests.get("https://artemislena.eu/services/downloads/beCrimeDoGay.json", timeout=5)
+ req.raise_for_status
+ return req.json()
+ except requests.exceptions.Timeout:
+ return "Status: 503 Service Unavailable"
+ except Exception:
+ return "Status: 500 Internal Error"
+
+def handle_fields():
+ form = cgi.FieldStorage()
+
+ # Name of the webring name and direction.
+ name = form.getvalue("name")
+ direction = form.getvalue("direction")
+
+ if name is None or direction is None:
+ return "Not enough optinos"
+
+ # Callbacks to handle webrings.
+ webrings = {
+ "gay": handle_be_crime_do_gay_webring
+ }
+
+ website_list = webrings[name]()
+
+ if website_list == None or website_list == []:
+ return "Can't get website list for webring"
+ if type(website_list) is str:
+ return website_list
+
+ # Find this website in webring.
+ position = 0
+
+ try:
+ position = website_list.index(WEBSITE_URL)
+ except ValueError:
+ return "Website not in webring"
+
+ # Handle direction
+ redirect_website = ""
+
+ if direction == "next":
+ redirect_website = website_list[(position + 1) % len(website_list)]
+ elif direction == "previous":
+ redirect_website = website_list[(position - 1) % len(website_list)]
+ elif direction == "random":
+ website_list.pop(position)
+ redirect_website = random.choice(website_list)
+ else:
+ return "Invalid direction"
+
+ return [
+ f"redirecting to <a href=\"{redirect_website}\">{redirect_website}</a>",
+ f"<meta http-equiv=\"refresh\" content=\"0; URL={redirect_website}\"/>"
+ ]
+
+def display_html(fields_reponse):
+ print("Content-Type: text/html")
+
+ html_text = """
+ <!DOCTYPE html>
+ <html>
+
+ <head>
+ {redirect}
+ <title>Webrings</title>
+ </head>
+
+ <body>
+ {fields_reponse}
+ </body>
+ </html>
+ """
+
+ if type(fields_reponse) is list:
+ html_text = html_text.format(fields_reponse=fields_reponse[0], redirect=fields_reponse[1])
+ else:
+ html_text = html_text.format(fields_reponse=fields_reponse, redirect="")
+
+ print(html_text)
+
+fields_reponse = handle_fields()
+display_html(fields_reponse)
+
diff --git a/guest_book.json b/guest_book.json
new file mode 100644
index 0000000..61b79f2
--- /dev/null
+++ b/guest_book.json
@@ -0,0 +1,8 @@
+[
+ {
+ "name": "d",
+ "url": "",
+ "message": "d",
+ "date": "March, 16 2025"
+ }
+] \ No newline at end of file
diff --git a/images/do_gay.png b/images/do_gay.png
new file mode 100644
index 0000000..d0b4dd6
--- /dev/null
+++ b/images/do_gay.png
Binary files differ
diff --git a/images/pride.png b/images/pride.png
new file mode 100644
index 0000000..1871829
--- /dev/null
+++ b/images/pride.png
Binary files differ
diff --git a/index.html b/index.html
index cdbf68f..cc16b17 100644
--- a/index.html
+++ b/index.html
@@ -95,6 +95,9 @@ table {
</map>
<img usemap="#w95widget" src="https://baccyflap.com/noai/w95widget.gif" alt="a gray Windows 95 style dialog box titled 'The No AI Webring' with a little icon showing a computer chip in a rubbish bin. beside it are three clickable buttons, labeled Previous, Random... and Next">
+ <br/><br/>
+
+
<!-- Music ring -->
<div style="width:104px">
<a href="https://mr.jhorn.net/index.php"><img src="https://mr.jhorn.net/assets/button.gif"></a>
@@ -102,6 +105,18 @@ table {
<a href="https://mr.jhorn.net/rand.php">rand</a>
<a href="https://mr.jhorn.net/next.php?slug=nsw">next</a>
</div>
+
+ <br/><br/>
+
+ <!-- Be crime do gay -->
+ <div style="width:104px">
+ <a href="https://artemislena.eu/webring.html" target="_blank">
+ <img src="images/do_gay.png" alt="pride flag"/>
+ </a>
+ <a href="cgi-bin/webring_redirect.cgi?name=gay&direction=previous">prev</a>
+ <a href="cgi-bin/webring_redirect.cgi?name=gay&direction=random">rand</a>
+ <a href="cgi-bin/webring_redirect.cgi?name=gay&direction=next">next</a>
+ </div>
</td>
<td>