diff options
Diffstat (limited to 'cgi-bin')
| -rwxr-xr-x | cgi-bin/webring_redirect.cgi | 68 | 
1 files changed, 0 insertions, 68 deletions
diff --git a/cgi-bin/webring_redirect.cgi b/cgi-bin/webring_redirect.cgi deleted file mode 100755 index 299ed14..0000000 --- a/cgi-bin/webring_redirect.cgi +++ /dev/null @@ -1,68 +0,0 @@ -#! /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\n" -    except Exception: -        return "Status: 500 Internal Error\n" - -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 "Status: 400 Bad Request\n" - -    # Callbacks to handle webrings. -    webrings = { -        "gay": handle_be_crime_do_gay_webring -    } - -    website_list = webrings[name]() - -    if website_list == None or website_list == []: -        return "Status: 500 Internal Error\n" -    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 "Status: 400 Bad Request\n\nSite not added to webring yet" - -    # 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 "Status: 400 Bad Request\n" - -    return f"Status: 302 Found\nLocation: {redirect_website}\n" - -print("Content-Type: text/html") -print(handle_fields()) -  | 
