summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorubq323 <ubq323@ubq323.website>2021-12-11 20:28:36 +0000
committerubq323 <ubq323@ubq323.website>2021-12-11 20:28:36 +0000
commite79fe819f672d3454532181182732080e056592a (patch)
treed242d5e454026e40ebeeaa0c655e7764075ebd8e
add existing content
-rwxr-xr-xdata.cgi8
-rwxr-xr-xembed.cgi123
-rwxr-xr-xembed.cgi.txt121
-rwxr-xr-xembed_old.cgi104
-rwxr-xr-xembed_old_old.cgi154
-rw-r--r--george.pngbin0 -> 1339760 bytes
-rw-r--r--georgedata.py31
-rwxr-xr-xindex.cgi39
-rw-r--r--oldindex.html142
-rw-r--r--reddit.txt2
-rw-r--r--status.txt1
-rwxr-xr-xtest.cgi7
-rw-r--r--twitter.txt2
13 files changed, 734 insertions, 0 deletions
diff --git a/data.cgi b/data.cgi
new file mode 100755
index 0000000..5054b25
--- /dev/null
+++ b/data.cgi
@@ -0,0 +1,8 @@
+#!/usr/bin/env python3
+import json
+from georgedata import the
+data = [{"name":k,"link":v[0],"colour":v[1],"is_council":v[2] if len(v)>2 else False} for k,v in the.items()]
+print("Content-Type: application/json")
+print("Comedy: extreme")
+print()
+print(json.dumps(data))
diff --git a/embed.cgi b/embed.cgi
new file mode 100755
index 0000000..99aa636
--- /dev/null
+++ b/embed.cgi
@@ -0,0 +1,123 @@
+#!/usr/bin/env python3
+
+from georgedata import george
+order = list(george.keys()) # dicts guarantee key order as of 3.7
+
+from urllib.parse import urlparse, parse_qs
+import sys
+
+from os import getenv
+if __name__ == "__main__":
+ colors = {
+ "bg": 'white',
+ "fg": 'black',
+ "george": '#3d3db8',
+ "links": 'blue'
+ }
+
+ print("Content-Type: text/html")
+ qs = getenv("QUERY_STRING")
+ member,real_qs = (qs.split('&', 1) + [''])[:2]
+
+ member=member.replace('%20',' ')
+
+ query = parse_qs(real_qs)
+
+ try:
+ ind = order.index(member)
+ except ValueError:
+ print()
+ print(f'<h1 style="color: red">no</h1><p>unknown member {member}</p>')
+ else:
+ correct_hn = urlparse(george[member]).hostname
+
+ rf = getenv("HTTP_REFERER",None)
+ if rf is not None:
+ our_hn = urlparse(rf).hostname
+ if our_hn != correct_hn:
+ print()
+ print('<h1 style="color: red">no</h1><p>bad referer hostname</p>')
+ sys.exit(0)
+
+ for q in query.keys():
+ if q.startswith('c_'):
+ color = query[q][0]
+ if color.isalnum() or (color[0] == '#' and color[1:].isalnum()):
+ colors[q[2:]] = color
+
+ l = len(order)
+ ni = (ind + 1)%l
+ pi = (ind - 1)%l
+ n = george[order[ni]]
+ p = george[order[pi]]
+ ref = getenv("HTTP_REFERER","the")
+
+ print(f"Content-Security-Policy: frame-ancestors {correct_hn} http://{correct_hn};")
+ print()
+ print(
+f"""<!DOCTYPE html>
+<html>
+ <head>
+ <base target="_parent">
+ </head>
+ <body>
+ <style>
+ body,html {{
+ overflow: hidden;
+ font-family: sans-serif;
+ padding:0;
+ margin:0;
+ }}
+ main {{
+ margin:0;
+ padding-left: 5px;
+ padding-right: 5px;
+ height: 45px;
+ border: 1px solid black;
+ box-shadow: 5px 5px black;
+ background-color: {colors["bg"]};
+ color: {colors["fg"]};
+ display: flex;
+ flex-wrap: nowrap;
+ justify-content: space-between;
+ }}
+ #george {{
+ color: {colors["george"]};
+ text-decoration: underline;
+ text-decoration-color: blue;
+ text-decoration-thickness: 2px;
+ font-style: oblique;
+ animation: 2s infinite alternate george;
+ }}
+ @media (prefers-reduced-motion) {{
+ #george {{ animation: none; }}
+ }}
+ #noble {{
+ font-size: min(3vw, 12pt);
+ }}
+ p {{
+ white-space: nowrap;
+ align-self: center;
+ }}
+ @keyframes george {{
+ from {{
+ letter-spacing: 1px;
+ }}
+ to {{
+ letter-spacing: 6px;
+ }}
+ }}
+ a {{
+ color: {colors["links"]};
+ }}
+ </style>
+ <main>
+ <p><a href="{p}">&lt; PREV</a></p>
+ <p id="noble">
+ The <a href="https://george.gh0.pw" id="george">GEORGE</a> is a noble animal.
+ </p>
+ <p><a href="{n}">NEXT &gt;</a></p>
+ </main>
+ </body>
+</html>""")
+
diff --git a/embed.cgi.txt b/embed.cgi.txt
new file mode 100755
index 0000000..72863a6
--- /dev/null
+++ b/embed.cgi.txt
@@ -0,0 +1,121 @@
+#!/usr/bin/env python3
+
+from georgedata import george
+order = list(george.keys()) # dicts guarantee key order as of 3.7
+
+from urllib.parse import urlparse, parse_qs
+import sys
+
+from os import getenv
+if __name__ == "__main__":
+ colors = {
+ "bg": 'white',
+ "fg": 'black',
+ "george": 'blue',
+ "links": 'blue'
+ }
+
+ print("Content-Type: text/html")
+ qs = getenv("QUERY_STRING")
+ member,real_qs = (qs.split('&', 1) + [''])[:2]
+
+ query = parse_qs(real_qs)
+
+ try:
+ ind = order.index(member)
+ except ValueError:
+ print()
+ print('<h1 style="color: red">no</h1>')
+ else:
+ correct_hn = urlparse(george[member]).hostname
+
+ rf = getenv("HTTP_REFERER",None)
+ if rf is not None:
+ our_hn = urlparse(rf).hostname
+ if our_hn != correct_hn:
+ print()
+ print('<h1 style="color: red">no</h1>')
+ sys.exit(0)
+
+ for q in query.keys():
+ if q.startswith('c_'):
+ color = query[q][0]
+ if color.isalnum() or (color[0] == '#' and color[1:].isalnum()):
+ colors[q[2:]] = color
+
+ l = len(order)
+ ni = (ind + 1)%l
+ pi = (ind - 1)%l
+ n = george[order[ni]]
+ p = george[order[pi]]
+ ref = getenv("HTTP_REFERER","the")
+
+ print(f"Content-Security-Policy: frame-ancestors {correct_hn} http://{correct_hn};")
+ print()
+ print(
+f"""<!DOCTYPE html>
+<html>
+ <head>
+ <base target="_parent">
+ </head>
+ <body>
+ <style>
+ body,html {{
+ overflow: hidden;
+ font-family: sans-serif;
+ padding:0;
+ margin:0;
+ }}
+ main {{
+ margin:0;
+ padding-left: 5px;
+ padding-right: 5px;
+ height: 45px;
+ border: 1px solid black;
+ box-shadow: 5px 5px black;
+ background-color: {colors["bg"]};
+ color: {colors["fg"]};
+ display: flex;
+ flex-wrap: nowrap;
+ justify-content: space-between;
+ }}
+ #george {{
+ color: {colors["george"]};
+ text-decoration: underline;
+ text-decoration-color: blue;
+ text-decoration-thickness: 2px;
+ font-style: oblique;
+ animation: 2s infinite alternate george;
+ }}
+ @media (prefers-reduced-motion) {{
+ #george {{ animation: none; }}
+ }}
+ #noble {{
+ font-size: min(3vw, 12pt);
+ }}
+ p {{
+ white-space: nowrap;
+ align-self: center;
+ }}
+ @keyframes george {{
+ from {{
+ letter-spacing: 1px;
+ }}
+ to {{
+ letter-spacing: 6px;
+ }}
+ }}
+ a {{
+ color: {colors["links"]};
+ }}
+ </style>
+ <main>
+ <p><a href="{p}">&lt; PREV</a></p>
+ <p id="noble">
+ The <a href="https://george.gh0.pw" id="george">GEORGE</a> is a noble animal.
+ </p>
+ <p><a href="{n}">NEXT &gt;</a></p>
+ </main>
+ </body>
+</html>""")
+
diff --git a/embed_old.cgi b/embed_old.cgi
new file mode 100755
index 0000000..f574036
--- /dev/null
+++ b/embed_old.cgi
@@ -0,0 +1,104 @@
+#!/usr/bin/env python3
+
+from georgedata import george
+order = list(george.keys()) # dicts guarantee key order as of 3.7
+
+from urllib.parse import urlparse
+import sys
+
+from os import getenv
+if __name__ == "__main__":
+ print("Content-Type: text/html")
+ qs = getenv("QUERY_STRING")
+ qs = qs.replace("%20"," ")
+ try:
+ ind = order.index(qs)
+ except ValueError:
+ print()
+ print('<h1 style="color: red">no</h1>')
+ else:
+ correct_hn = urlparse(george[qs]).hostname
+
+ rf = getenv("HTTP_REFERER",None)
+ if rf is not None:
+ our_hn = urlparse(rf).hostname
+ if our_hn != correct_hn:
+ print()
+ print('<h1 style="color: red">no</h1>')
+ sys.exit(0)
+
+ l = len(order)
+ ni = (ind + 1)%l
+ pi = (ind - 1)%l
+ n = george[order[ni]]
+ p = george[order[pi]]
+ ref = getenv("HTTP_REFERER","the")
+
+ print(f"Content-Security-Policy: frame-ancestors {correct_hn} http://{correct_hn};")
+ print()
+ print(
+f"""<!DOCTYPE html>
+<html>
+ <head>
+ <base target="_parent">
+ </head>
+ <body>
+ <style>
+ body,html {{
+ overflow: hidden;
+ font-family: sans-serif;
+ padding:0;
+ margin:0;
+ }}
+ main {{
+ margin:0;
+ padding-left: 5px;
+ padding-right: 5px;
+ height: 45px;
+ border: 1px solid black;
+ box-shadow: 5px 5px black;
+ /*background-color: pink;*/
+ display: flex;
+ flex-wrap: nowrap;
+ justify-content: space-between;
+ }}
+ #george {{
+ color: cyan;
+ text-decoration: underline;
+ text-decoration-color: blue;
+ text-decoration-thickness: 2px;
+ font-style: oblique;
+ animation: 2s infinite alternate george;
+ }}
+ @media (prefers-reduced-motion) {{
+ #george {{ animation: none; }}
+ }}
+ #noble {{
+ font-size: min(3vw, 12pt);
+ }}
+ p {{
+ white-space: nowrap;
+ align-self: center;
+ }}
+ @keyframes george {{
+ from {{
+ letter-spacing: 1px;
+ }}
+ to {{
+ letter-spacing: 6px;
+ }}
+ }}
+ a {{
+ color: blue;
+ }}
+ </style>
+ <main>
+ <p><a href="{p}">&lt; PREV</a></p>
+ <p id="noble">
+ The <a href="https://george.gh0.pw" id="george">GEORGE</a> is a noble animal.
+ </p>
+ <p><a href="{n}">NEXT &gt;</a></p>
+ </main>
+ </body>
+</html>""")
+
diff --git a/embed_old_old.cgi b/embed_old_old.cgi
new file mode 100755
index 0000000..f42dd86
--- /dev/null
+++ b/embed_old_old.cgi
@@ -0,0 +1,154 @@
+#!/bin/sh
+
+# ubq323 citrons coral gollark
+
+ubq323="https://ubq323.website"
+citrons="https://mondecitronne.com"
+coral="https://coral.shoes"
+gollark="https://osmarks.net"
+heav="https://hpage.osmarks.net/george_landing_page.html"
+helloboi="https://www.helloboi.tk"
+quintopia="http://esolang.rutteric.com/"
+truttle1="http://truttle1.xyz/"
+
+
+case "$QUERY_STRING" in
+ "ubq323") PREV="$coral"
+ NEXT="$citrons" ;;
+ "citrons") PREV="$ubq323"
+ NEXT="$gollark" ;;
+ "gollark") PREV="$citrons"
+ NEXT="$heav" ;;
+ "heav") PREV="$gollark"
+ NEXT="$helloboi" ;;
+ "helloboi") PREV="$heav"
+ NEXT="$quintopia" ;;
+ "quintopia") PREV="$helloboi"
+ NEXT="$truttle1" ;;
+ "truttle1") NEXT="$coral"
+ PREV="$quintopia" ;;
+ "coral") PREV="$truttle1"
+ NEXT="$ubq323" ;;
+esac
+
+echo "Content-Type: text/html"
+echo ""
+#cat <<EOF
+#<!DOCTYPE html>
+#<html>
+# <head>
+# <base target="_parent">
+# </head>
+# <body>
+# <style>
+# * { box-sizing: inherit; }
+# body,html {
+# overflow: hidden;
+# font-family: sans-serif;
+# padding:0;
+# margin:0;
+# box-sizing: border-box;
+# }
+# main {
+# margin:0;
+# padding-left: 5px;
+# padding-right: 5px;
+# height: 50px;
+# border: 1px solid black;
+# box-shadow: 5px 5px black;
+# /*background-color: pink;*/
+# display: flex;
+# flex-wrap: nowrap;
+# justify-content: space-between;
+# }
+# #george {
+# color: cyan;
+# text-decoration: underline;
+# text-decoration-color: blue;
+# text-decoration-thickness: 2px;
+# font-style: oblique;
+# animation: 2s infinite alternate george;
+# }
+# @keyframes george {
+# from {
+# letter-spacing: 1px;
+# }
+# to {
+# letter-spacing: 6px;
+# }
+# }
+# a {
+# color: blue;
+# }
+# </style>
+# <main>
+# <p><a href="$PREV">&lt; PREV</a></p>
+# <p>The <a href="https://george.gh0.pw" id="george">GEORGE</a> is a noble animal.</p>
+# <p><a href="$NEXT">NEXT &gt;</a></p>
+# </main>
+# </body>
+#</html>
+#EOF
+cat <<EOF
+<!DOCTYPE html>
+<html>
+ <head>
+ <base target="_parent">
+ </head>
+ <body>
+ <style>
+ body,html {
+ overflow: hidden;
+ font-family: sans-serif;
+ padding:0;
+ margin:0;
+ }
+ main {
+ margin:0;
+ padding-left: 5px;
+ padding-right: 5px;
+ height: 45px;
+ border: 1px solid black;
+ box-shadow: 5px 5px black;
+ /*background-color: pink;*/
+ display: flex;
+ flex-wrap: nowrap;
+ justify-content: space-between;
+ }
+ #george {
+ color: cyan;
+ text-decoration: underline;
+ text-decoration-color: blue;
+ text-decoration-thickness: 2px;
+ font-style: oblique;
+ animation: 2s infinite alternate george;
+ }
+ #noble {
+ font-size: min(3vw, 12pt);
+ }
+ p {
+ white-space: nowrap;
+ align-self: center;
+ }
+ @keyframes george {
+ from {
+ letter-spacing: 1px;
+ }
+ to {
+ letter-spacing: 6px;
+ }
+ }
+ a {
+ color: blue;
+ }
+ </style>
+ <main>
+ <p><a href="$PREV">&lt; PREV</a></p>
+ <p id="noble">
+ The <a href="https://george.gh0.pw" id="george">GEORGE</a> is a noble animal.
+ </p>
+ <p><a href="$NEXT">NEXT &gt;</a></p>
+ </main>
+ </body>
+</html>
+EOF
diff --git a/george.png b/george.png
new file mode 100644
index 0000000..e5a60f8
--- /dev/null
+++ b/george.png
Binary files differ
diff --git a/georgedata.py b/georgedata.py
new file mode 100644
index 0000000..53215c1
--- /dev/null
+++ b/georgedata.py
@@ -0,0 +1,31 @@
+#!/usr/bin/env python3
+the = dict(
+ coral = ("https://coral.shoes","coral",True),
+ ubq323 = ("https://ubq323.website","#df73ff",True),
+ citrons = ("https://citrons.xyz/a/george","yellow",True),
+ gollark = ("https://osmarks.net","#0076ec",True),
+ heav = ("https://hpage.osmarks.net","#6640b3",True),
+ amby = ("https://ambyshframber.neocities.org/","#A724D5"),
+ helloboi = ("https://www.helloboi.tk","#dc143c"),
+ quintopia = ("https://esolang.rutteric.com/","#007ba7"),
+ truttle1 = ("http://truttle1.xyz/","#15ae11"),
+ razetime = ("https://razetime.github.io/","#b71c1c"),
+ baidicoot = ("https://baidicoot.github.io/","#202080"),
+ lyxal = ("https://lyxal.pythonanywhere.com/","#beedab"),
+ ultlang = ("https://ultlang.github.io/","#6C1D45"),
+ taswelll = ("https://selaere.github.io/","#ffcc00"),
+ elemenopi = ("https://jaykayelemenopi.neocities.org/","white"),
+ merrybot = ("https://berrymot.github.io","#ff634e"),
+ matthilde = ("https://matthil.de/","#1de58e"),
+ syntropy = ('https://unix.lgbt/~kakuko/sanctuary/links.html','#19e62e'),
+ munvoseli = ('https://munvoseli.github.io/','#789'),
+ lija = ('https://lija.neocities.org/','#93dfa9'),
+ viba = ('https://viba.neocities.org/','#ffe0ff'),
+ akesi = ('https://ake.si','#ad81a4'),
+
+
+)
+the["itzz me"] = ("http://truttle1.xyz/truttlecities/~Itzzy/MainStreet/index.html","#000100")
+george = {k:v[0] for k,v in the.items()} # links
+
+
diff --git a/index.cgi b/index.cgi
new file mode 100755
index 0000000..280b59d
--- /dev/null
+++ b/index.cgi
@@ -0,0 +1,39 @@
+#!/usr/bin/env python3
+
+from georgedata import the
+import urllib.request
+import pathlib, datetime
+p=pathlib.Path("/srv/web/george.gh0.pw/status.txt")
+a=datetime.datetime.now().timestamp()-p.stat().st_mtime
+if a > 300:
+ try:
+ st = urllib.request.urlopen("https://coral.shoes/george-status/george-status-html-but-epic").read().decode("utf-8")
+ except:
+ st = "a webring"
+ with open(p,"w") as f:
+ f.write(st)
+else:
+ with open(p) as f:
+ st = f.read().strip()
+
+sts = st.split("\x1e")
+
+
+
+with open("oldindex.html") as f:
+ index = f.read()
+
+lt = '<li><a href="{link}" style="color:{colour}">{name}</a></li>'
+lt2 = '<span style="color:{colour}">{name}</span>'
+def r(h):
+ import random
+ random.shuffle(h)
+ return h
+s ="\n".join(r(list(lt.format(link=v[0],colour=v[1],name=k) for k,v in the.items())))
+s2="\n".join(r(list( lt2.format(colour=v[1],name=k) for k,v in the.items() if len(v)>2 and v[2] )))
+c='['+(', '.join(r(list(f'"{c}"' for c in (v[1] for v in the.values())))))+']'
+
+
+print("Content-Type: text/html"); print()
+print(index.replace("LINKS",s).replace("COLOURS",c).replace("COUNCIL",s2).replace("STATUS",sts[0]).replace("FOOTNOTE",sts[1]).replace("COUNT",str(len(the))))
+
diff --git a/oldindex.html b/oldindex.html
new file mode 100644
index 0000000..48f9615
--- /dev/null
+++ b/oldindex.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <title>GEORGE</title>
+ <!--<style>
+body{background-color:#000;color:#0f0;font-size:xx-large;font-family:serif;text-shadow: 0 0 1px #000, 0 0 1px #000, 0 0 1px #000, 0 0 1px #000, 0 0 1px #000, 0 0 1px #000}
+.george,h1,h2{color:cyan;font-weight:bolder;font-style:italic;text-decoration:underline blue;}
+canvas{position:absolute;left:0;top:0;z-index:-9999;width:100%;height:100%;image-rendering:crisp-edges;}
+.links{display:flex;list-style:none}
+.links li{flex: 1 auto;}
+.links a{border:1px solid black;border-radius:5px;padding:10px}
+ </style>-->
+ <style>
+body{background-color:#000;color:#0f0;font-size:xx-large;font-family:serif;text-shadow: 0 0 1px #000, 0 0 1px #000, 0 0 1px #000, 0 0 1px #000, 0 0 1px #000, 0 0 1px #000}
+body{margin:auto;text-align:center;max-width:50ch;}
+.george,h1,h2,h3{color:cyan;font-weight:bolder;font-style:italic;text-decoration:underline blue;}
+canvas{position:absolute;left:0;top:0;z-index:-9999;width:100%;height:100%;image-rendering:crisp-edges;}
+@media (prefers-reduced-motion) { canvas { display: none; } body { background-color: #200 } }
+/*body::before{
+content:"";opacity:0.5;top:-150%;left:-150%;bottom:0;right:0;position:fixed;z-index:-1;width:400%;height:400%;
+background:url(/george.png) repeat 50% 50% fixed;animation:600s linear 5s infinite reverse h;
+background-size:25% 25%;}
+@keyframes h{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}*/
+.links{display:flex;list-style:none;padding:0;flex-wrap:wrap;justify-content:space-around}
+.links li{margin:20px 20px 20px 20px;}
+.links a{border:1px solid black;border-radius:5px;padding:10px}
+a{color:cyan}
+ strike{text-decoration-thickness:5px;text-decoration-color:red;}
+ body{padding:1ch}
+ .skiplink
+ {color:hsl(240,70%,70%)}
+ p img { max-width: 100% }
+ </style>
+ </head>
+ <body>
+ <h1>GEORGE</h1>
+ <p><a class="skiplink" href="#the">skip to the</a></p>
+<iframe src="https://john.mondecitronne.com/embed?ref=george.gh0.pw" style="margin-left:auto;display:block;margin-right:auto;max-width:732px;width:100%;height:94px;border:none;"></iframe>
+ <p>
+ <span class="george">GEORGE</span> is immortal. <span class="george">GEORGE</span> is all.
+ <span class="george">GEORGE</span> is responsible for 67% of all experiences experienced by users of
+ <span class="george">GEORGE</span>. <span class="george">GEORGE</span> was present at the funeral of
+ Pope John Paul II. Almost all users report symptoms ranging from mild relaxation to excruciating pain
+ after being subjected to <span class="george">GEORGE</span>. <span class="george">GEORGE</span> is also
+ available in plain text. Nine out of ten doctors recommend <span class="george">GEORGE</span>. The tenth
+ doctor is <span class="george">GEORGE</span>. Many have advocated the abolition of <span class="george">
+ GEORGE</span>. 55% of all statistics are a result of <span class="george">GEORGE</span>.
+ <span class="george">GEORGE</span> operates 92% of all ethics boards. <span class="george">GEORGE</span> is not class conscious. <span class="george">GEORGE</span> is the #1 leader in renewable energy. <span class="george">GEORGE</span> loves you. <span class="george">GEORGE</span> invented the internet. <span class="george">GEORGE</span> has met Jim Davis. <span class="george">GEORGE</span> is provided "as is", without warranty of any kind.
+ <span class="george">GEORGE</span> is fat-free and non-GMO. <span class="george">GEORGE</span> has been involved in many class-action lawsuits. <span class="george">GEORGE</span> is international.
+ <span class="george">GEORGE</span> is not class conscious because <span class="george">GEORGE</span> is class consciousness.
+ <span class="george">GEORGE</span> is present within 22.7% of stellar cores.
+ </p>
+ <p><img src="/george.png"></p>
+
+ <p>
+ <span class="george">GEORGE</span> predicted the 2020-2021 coronavirus pandemic.
+ <span class="george">GEORGE</span> is available in plain text 67% of the time.
+ The city of Davenport, Iowa is presently operated by <span class="george">GEORGE</span>.
+ Verbatim copying and distribution of <span class="george">GEORGE</span> are permitted without royalty in any medium provided this notice and the copyright notice are preserved.
+ There aren't any numbers bigger than <span class="george">GEORGE</span>.
+ <span class="george">GEORGE</span> "might be the best thing to ever happen to the internet".
+ <span class="george">GEORGE</span> has been accessed times since July&nbsp;7,&nbsp;2001.
+ </p><p>
+<span class="george">GEORGE</span> has not been seen in the city of Davenport, Iowa since May of 2019. <span class="george">GEORGE</span> has posted an offer to sell on eBay. <span class="george">GEORGE</span> is the only way to truly experience the full range of human emotion. <span class="george">GEORGE</span> will be releasing a new album in "late May". <span class="george">GEORGE</span> is made from only the finest organic memes. <span class="george">GEORGE</span> has a webpage in the US National Library of Medicine. <span class="george">GEORGE</span> has never been used in any capacity by any form of government. <span class="george">GEORGE</span> is not available at this time. If you are speaking of the film "George", then you are wrong. <span class="george">GEORGE</span> is on the cutting edge of technology. <span class="george">GEORGE</span> will be holding a press conference at 1:00 PM EST on May 31, 2017. <span class="george">GEORGE</span> has been featured in the NY Times, Washington Post, and CNN. <span class="george">GEORGE</span> is not available at this time.
+</p><p><span class="george">GEORGE</span> will be released on the fourth Tuesday of this month. <span class="george">GEORGE</span> is not a virus. <span class="george">GEORGE</span> always has been and always will be free to use. <span class="george">GEORGE</span> has been confirmed as an autonomous entity. <span class="george">GEORGE</span> is currently accepting applications for part-time employment. <span class="george">GEORGE</span> is an open-source entity. <span class="george">GEORGE</span> is not responsible for any damages. <span class="george">GEORGE</span> will be hosting a workshop at the University of California at Berkeley. <span class="george">GEORGE</span> has won awards.
+</p><p>
+<span class="george">GEORGE</span> is better than you. <span class="george">GEORGE</span> is the best. <span class="george">GEORGE</span> loves you.
+
+
+
+ </p>
+ <h2 id="the">GEORGE</h2>
+ <p>is STATUS with the following <span class="george">COUNT</span> members:</p>
+ <ul class="links">
+ LINKS
+ </ul>
+ <p><small>FOOTNOTE</small></p>
+
+ <h3>GEORGE</h3>
+ <p>
+ The <span class="george">Council of GEORGE</span> is:
+ COUNCIL
+ </p>
+ <ul>
+ <li><a href="https://a.gh0.pw/3"><span class="george">GEORGE</span> forum</a> on apioforum</li>
+ <li><a href="irc://ubq323.website/g"><span class="george">GEORGE</span> irc channel</a> (#g on apionet)</li>
+ <li><a href="xmpp://george@conference.ubq323.website/join"><span class="george">GEORGE</span> xmpp MUC</a> (george@conference.ubq323.website)</li>
+ </ul>
+<iframe src="https://john.mondecitronne.com/embed?ref=george.gh0.pw" style="margin-left:auto;display:block;margin-right:auto;max-width:732px;width:100%;height:94px;border:none;"></iframe>
+ <canvas id=canvas style="position:fixed"></canvas>
+ <script>
+ function shuffle(arr) {
+ // i love js
+ for (let i = arr.length - 1; i > 0; i--) {
+ let j = Math.floor(Math.random() * (i + 1));
+ let tmp = arr[i];
+ arr[i] = arr[j];
+ arr[j] = tmp;
+ }
+ }
+ const canvas = document.getElementById("canvas");
+ const ctx = canvas.getContext("2d");
+ let t = 0;
+ let last = 0;
+ const thresh = 140;
+ const size = 32;
+ const bsize = 1;
+ canvas.width = size * bsize;
+ canvas.height = size * bsize;
+ const colours = COLOURS;
+ //shuffle(colours);
+ //colours.push("black");
+ let curcol = 0;
+ ctx.fillStyle=colours[curcol];
+ function tick(a) {
+ if ((a - last) < thresh) {
+ requestAnimationFrame(tick);
+ return;
+ }
+ last = a;
+ for (let x = 0; x < size; x++) {
+ for (let y = 0; y < size; y++) {
+ if ((x ^ y) == t) {
+ ctx.fillRect(x*bsize,y*bsize,bsize,bsize);
+ }
+ }
+ }
+ t++;
+ if (t > size * 2) {
+ curcol ++;
+ ctx.fillStyle=colours[curcol % colours.length];
+ t = 0;
+ }
+ requestAnimationFrame(tick);
+ }
+ tick();
+ </script>
+ </body>
+</html>
+
diff --git a/reddit.txt b/reddit.txt
new file mode 100644
index 0000000..019a131
--- /dev/null
+++ b/reddit.txt
@@ -0,0 +1,2 @@
+the official reddit account of GEORGE is u/THE-NOBLE-ANIMAL.
+apioforms, bees, etc
diff --git a/status.txt b/status.txt
new file mode 100644
index 0000000..a630ff9
--- /dev/null
+++ b/status.txt
@@ -0,0 +1 @@
+<strike>a webring</strike> <span class="george">three weblines</span> (thanks, <span style="color: #0076ec;">gollark</span>, <span style="color: #dc143c;">helloboi</span> and <span style="color: #6640b3;">heav</span>)<span style="color: #15ae11;">truttle1</span> has NOT disabled FLOC (this is very bad) \ No newline at end of file
diff --git a/test.cgi b/test.cgi
new file mode 100755
index 0000000..d7fc38a
--- /dev/null
+++ b/test.cgi
@@ -0,0 +1,7 @@
+#!/usr/bin/env python3
+import os
+print("Content-Type: text/plain")
+print()
+print(os.getenv("QUERY_STRING",""))
+print(__name__)
+print(os.getcwd())
diff --git a/twitter.txt b/twitter.txt
new file mode 100644
index 0000000..8d43954
--- /dev/null
+++ b/twitter.txt
@@ -0,0 +1,2 @@
+the official twitter account of GEORGE is @NOBLE_ANIMAL.
+apioforms, bees, etc