blob: 8471440748b97a0c4f2db164191e16065afb80bd [file] [log] [blame]
#!/usr/bin/env python3
import os
import sys
from urllib.parse import parse_qs
def send304():
sys.stdout.write(
'Content-Type: text/html\r\n'
'status: 304\r\n'
'ETag: foo\r\n\r\n'
)
ident = parse_qs(os.environ.get('QUERY_STRING', ''), keep_blank_values=True).get('id', [''])[0]
cookies = {}
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('=')
cookies[cookie[0]] = cookie[1]
count = 1
if cookies.get(ident, None):
count = int(cookies.get(ident, 0))
sys.stdout.write(f'Set-Cookie: {ident}={count + 1}\r\n')
if count == 1:
sys.stdout.write(
'Cache-Control: must-revalidate\r\n'
'ETag: foo\r\n'
'Content-Type: application/json\r\n\r\n'
'{"version": 1}'
)
elif count == 3:
sys.stdout.write(
'status: 404\r\n'
'Cache-Control: must-revalidate\r\n'
'Content-Type: application/json\r\n\r\n'
'{"not": "found"}'
)
elif count == 4:
if os.environ.get('HTTP_IF_NONE_MATCH', '') == 'foo':
send304()
else:
sys.stdout.write(
'Cache-Control: must-revalidate\r\n'
'ETag: foo\r\n'
'Content-Type: application/json\r\n\r\n'
'{"version": 2}'
)
else:
send304()