Newer
Older
#! /usr/bin/env python3
from urllib import parse
import re
import sys
def fix_quoted(s: str) -> str:
payload = s.strip('"')
#fixed = parse.quote(payload)
#fixed = fixed.replace('http%3A', 'http:')
#fixed = fixed.replace('https%3A', 'https:')
bad_chars = (
'|', '\\', ' ', '^'
)
for c in bad_chars:
escaped = '%' + '%X' % ord(c)
payload = payload.replace(c, escaped)
return '"%s"' % payload
def print_fixed_line(line: str):
# https://stackoverflow.com/questions/249791
regex = r"(\"(?:[^\"]|\\.)*\")"
matches = re.findall(regex, line)
for match in matches:
fixed = fix_quoted(match)
line = line.replace(match, fixed)
print(line, end='')
def main():
for line in sys.stdin:
print_fixed_line(line)
if __name__ == '__main__':
try:
main()
except (KeyboardInterrupt, SystemExit, BrokenPipeError):
pass