* seperate build-supplemental from build-version * version.cpp now included in cmake config, not directly imported * socket moved into its own directory * test_www removed from project
77 lines
2 KiB
Python
77 lines
2 KiB
Python
# error_gen.py
|
|
# Generates default html error pages for Anthracite
|
|
|
|
import os
|
|
|
|
version = "Unknown"
|
|
|
|
with open("version.txt", "r") as file:
|
|
version = file.read().strip()
|
|
|
|
def generate_error_page(error_code, error_title):
|
|
html = f"""<html>
|
|
<head><title>{error_title}</title></head>
|
|
<body>
|
|
<center>
|
|
<h1>{error_code} - {error_title}</h1>
|
|
<hr>
|
|
<p>Anthracite/{version}</p>
|
|
<p><small><a href="https://git.nickorlow.com/nickorlow/anthracite">This is Open Source Software</small></a></p>
|
|
</center>
|
|
</body>
|
|
</html>"""
|
|
return html
|
|
|
|
error_codes = {
|
|
400: "Bad Request",
|
|
401: "Unauthorized",
|
|
402: "Payment Required",
|
|
403: "Forbidden",
|
|
404: "Not Found",
|
|
405: "Method Not Allowed",
|
|
406: "Not Acceptable",
|
|
407: "Proxy Authentication Required",
|
|
408: "Request Timeout",
|
|
409: "Conflict",
|
|
410: "Gone",
|
|
411: "Length Required",
|
|
412: "Precondition Failed",
|
|
413: "Payload Too Large",
|
|
414: "URI Too Long",
|
|
415: "Unsupported Media Type",
|
|
416: "Range Not Satisfiable",
|
|
417: "Expectation Failed",
|
|
418: "I'm a teapot",
|
|
421: "Misdirected Request",
|
|
422: "Unprocessable Entity",
|
|
423: "Locked",
|
|
424: "Failed Dependency",
|
|
425: "Too Early",
|
|
426: "Upgrade Required",
|
|
428: "Precondition Required",
|
|
429: "Too Many Requests",
|
|
431: "Request Header Fields Too Large",
|
|
451: "Unavailable For Legal Reasons",
|
|
500: "Internal Server Error",
|
|
501: "Not Implemented",
|
|
502: "Bad Gateway",
|
|
503: "Service Unavailable",
|
|
504: "Gateway Timeout",
|
|
505: "HTTP Version Not Supported",
|
|
506: "Variant Also Negotiates",
|
|
507: "Insufficient Storage",
|
|
508: "Loop Detected",
|
|
510: "Not Extended",
|
|
511: "Network Authentication Required"
|
|
}
|
|
|
|
|
|
error_dir = '../build/error_pages'
|
|
os.makedirs(error_dir, exist_ok=True)
|
|
|
|
for code, title in error_codes.items():
|
|
error_page = generate_error_page(code, title)
|
|
file_path = os.path.join(error_dir, f"{code}.html")
|
|
with open(file_path, "w") as file:
|
|
file.write(error_page)
|