summary refs log tree commit diff stats
path: root/hybrid.cgi
diff options
context:
space:
mode:
Diffstat (limited to 'hybrid.cgi')
-rwxr-xr-xhybrid.cgi120
1 files changed, 0 insertions, 120 deletions
diff --git a/hybrid.cgi b/hybrid.cgi
deleted file mode 100755
index 1ba1899..0000000
--- a/hybrid.cgi
+++ /dev/null
@@ -1,120 +0,0 @@
-#!/usr/bin/env python3
-
-print("Status: 403\r")
-print("Content-Type: text/plain\r\n\r")
-print("HYBRID is currently unavailable.")
-exit(0)
-
-# TODO: Check if file exists
-
-import sys
-import os
-import cgi
-import pathlib
-import shutil
-import smtplib
-
-FBDIR="/srv/fb"
-
-CONTENT_LENGTH = os.environ["CONTENT_LENGTH"]
-CONTENT_TYPE = os.environ["CONTENT_TYPE"]
-DOCUMENT_ROOT = os.environ["DOCUMENT_ROOT"]
-PATH_INFO = os.environ["PATH_INFO"]
-DOCUMENT_URI = os.environ["DOCUMENT_URI"]
-REQUEST_METHOD = os.environ["REQUEST_METHOD"]
-
-# FCGI_ROLE = os.environ["FCGI_ROLE"]
-# GATEWAY_INTERFACE = os.environ["GATEWAY_INTERFACE"]
-# HTTP_ACCEPT_ENCODING = os.environ["HTTP_ACCEPT_ENCODING"]
-# HTTP_ACCEPT_LANGUAGE = os.environ["HTTP_ACCEPT_LANGUAGE"]
-# HTTP_ACCEPT = os.environ["HTTP_ACCEPT"]
-# HTTP_CONNECTION = os.environ["HTTP_CONNECTION"]
-# HTTP_HOST = os.environ["HTTP_HOST"]
-# HTTP_SEC_FETCH_DEST = os.environ["HTTP_SEC_FETCH_DEST"]
-# HTTP_SEC_FETCH_MODE = os.environ["HTTP_SEC_FETCH_MODE"]
-# HTTP_SEC_FETCH_SITE = os.environ["HTTP_SEC_FETCH_SITE"]
-# HTTP_SEC_FETCH_USER = os.environ["HTTP_SEC_FETCH_USER"]
-# HTTPS = os.environ["HTTPS"]
-# HTTP_UPGRADE_INSECURE_REQUESTS = os.environ["HTTP_UPGRADE_INSECURE_REQUESTS"]
-# HTTP_USER_AGENT = os.environ["HTTP_USER_AGENT"]
-# INVOCATION_ID = os.environ["INVOCATION_ID"]
-# JOURNAL_STREAM = os.environ["JOURNAL_STREAM"]
-# QUERY_STRING = os.environ["QUERY_STRING"]
-# REDIRECT_STATUS = os.environ["REDIRECT_STATUS"]
-# REMOTE_ADDR = os.environ["REMOTE_ADDR"]
-# REMOTE_PORT = os.environ["REMOTE_PORT"]
-# REMOTE_USER = os.environ["REMOTE_USER"]
-# REQUEST_SCHEME = os.environ["REQUEST_SCHEME"]
-# REQUEST_URI = os.environ["REQUEST_URI"]
-# SCRIPT_FILENAME = os.environ["SCRIPT_FILENAME"]
-# SCRIPT_NAME = os.environ["SCRIPT_NAME"]
-# SERVER_ADDR = os.environ["SERVER_ADDR"]
-# SERVER_NAME = os.environ["SERVER_NAME"]
-# SERVER_PORT = os.environ["SERVER_PORT"]
-# SERVER_PROTOCOL = os.environ["SERVER_PROTOCOL"]
-# SERVER_SOFTWARE = os.environ["SERVER_SOFTWARE"]
-
-
-def fbw() -> None:
-    if not REQUEST_METHOD == "POST":
-        sys.stdout.write("Content-Type: text/plain\r\n")
-        sys.stdout.write("Status: 400\r\n")
-        sys.stdout.write("\r\n")
-        sys.stdout.write("This endpoint does not support any method other than POST.")
-        exit(0)
-
-    form = cgi.FieldStorage()
-    try:
-        file = form["file"]
-    except KeyError:
-        sys.stdout.write("Status: 400\r\n")
-        sys.stdout.write("Content-Type: text/plain\r\n")
-        sys.stdout.write("\r\n")
-        sys.stdout.write("You haven't provided me a file.")
-        exit(0)
-    if not file.filename:
-        sys.stdout.write("Status: 400\r\n")
-        sys.stdout.write("Content-Type: text/plain\r\n")
-        sys.stdout.write("\r\n")
-        sys.stdout.write("File doesn't have a filename... that's strange.")
-        exit(0)
-    if int(CONTENT_LENGTH) >= 50000:
-        sys.stdout.write("Status: 413\r\n")
-        sys.stdout.write("Content-Type: text/plain\r\n")
-        sys.stdout.write("\r\n")
-        sys.stdout.write("Too large!")
-        exit(0)
-    if shutil.disk_usage("/srv/fb").free < 5*(1024**3):
-        sys.stdout.write("Status: 500\r\n")
-        sys.stdout.write("Content-Type: text/plain\r\n")
-        sys.stdout.write("\r\n")
-        sys.stdout.write("I don't have enough space, sorry!")
-        exit(0)
-
-    sys.stdout.write("Status: 200\r\n")
-    sys.stdout.write("Content-Type: text/plain\r\n")
-    sys.stdout.write("\r\n")
-    fn = os.path.basename(file.filename)
-    open(os.path.join(FBDIR, fn), 'wb').write(file.file.read())
-    msg = """Subject: New file upload\r\nTo: me@runxiyu.org\r\nFrom: www-data@runxiyu.org\r\n\r\nA new file upload is available at:\n\n%s""" % os.path.join(FBDIR, fn)
-    try:
-        server = smtplib.SMTP("localhost")
-        server.sendmail("www-data@runxiyu.org", ["me@runxiyu.org"], msg)
-        server.quit()
-    except Exception:
-        sys.stdout.write("WARNING: Email error. Email not sent.\n")
-    sys.stdout.write("Done uploading.")
-    exit(0)
-
-
-if PATH_INFO == "/hybrid/":
-    sys.stdout.write("Content-Type: text/plain\r\n")
-    sys.stdout.write("\r\n")
-    print("Okay... so?")
-elif PATH_INFO == "/hybrid/fb":
-    fbw()
-else:
-    sys.stdout.write("Content-Type: text/plain\r\n")
-    sys.stdout.write("Status: 404\r\n")
-    sys.stdout.write("\r\n")
-    sys.stdout.write("I don't understand what you're trying to do!")