#!/usr/bin/env python3 import os import sys from datetime import datetime, timedelta from ping_file_path import ping_filepath def not_being_called(): cookies = {} expires = datetime.utcnow() - timedelta(seconds=60) if 'HTTP_COOKIE' in os.environ: header_cookies = os.environ['HTTP_COOKIE'] header_cookies = header_cookies.split('; ') for cookie in header_cookies: cookie = cookie.split('=') sys.stdout.write('Set-Cookie: {}=deleted; expires={} GMT; Max-Age=0; path=/\r\n'.format(cookie[0], expires.strftime('%a, %d-%b-%Y %H:%M:%S'))) def save_ping(is_being_called): ping_file = open('{}.tmp'.format(ping_filepath), 'w') for name in sorted(os.environ.keys()): if name in ['CONTENT_TYPE', 'HTTP_REFERER', 'HTTP_PING_TO', 'HTTP_PING_FROM', 'REQUEST_METHOD', 'HTTP_HOST', 'HTTP_COOKIE']: ping_file.write('{}: {}\n'.format(name, os.environ.get(name))) elif name == 'REQUEST_URI': uri = os.environ.get(name) if is_being_called: uri = '/navigation/resources/save-ping.py?{}'.format(uri.split('?')[-1]) ping_file.write('{}: {}\n'.format(name, uri)) ping_file.close() if os.path.isfile('{}.tmp'.format(ping_filepath)): os.rename('{}.tmp'.format(ping_filepath), ping_filepath) if not is_being_called: not_being_called() sys.stdout.write('Content-Type: text/html\r\n\r\n')