diff options
Diffstat (limited to 'embed.cgi.txt')
-rwxr-xr-x | embed.cgi.txt | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/embed.cgi.txt b/embed.cgi.txt deleted file mode 100755 index 72863a6..0000000 --- a/embed.cgi.txt +++ /dev/null @@ -1,121 +0,0 @@ -#!/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}">< 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 ></a></p> - </main> - </body> -</html>""") - |