#!/usr/bin/env python3 import os import sys from random import randint from urllib.parse import parse_qs query = parse_qs(os.environ.get('QUERY_STRING', ''), keep_blank_values=True) cache_control = query.get('cache_control', [''])[0] code = query.get('code', [302])[-1] expiration = query.get('expiration', [None])[0] random_id = query.get('random_id', [None])[0] url = query.get('url', [''])[0] sys.stdout.write('status: {}\r\n'.format(int(code))) if random_id is not None: ident = '' charset = 'ABCDEFGHIKLMNOPQRSTUVWXYZ0123456789' for _ in range(0, 16): ident += charset[randint(0, len(charset) - 1)] sys.stdout.write('Location: {}?id={}\r\n'.format(url, ident)) else: sys.stdout.write('Location: {}\r\n'.format(url)) if expiration is not None: expires = '{} +0000'.format(expires.strftime('%a, %d %b %Y %H:%M:%S')) sys.stdout.write('Expires: {}\r\n'.format(expires)) sys.stdout.write( 'Content-Type: text/html\r\n' 'Cache-Control: {}\r\n\r\n'.format(cache_control) )