File indexing completed on 2024-05-12 04:52:38
0001 #!/usr/bin/env python3 0002 0003 import os 0004 import ntpath 0005 import subprocess 0006 import webbrowser 0007 from datetime import datetime 0008 0009 # assign directory 0010 directory = "reference" 0011 0012 # iterate over files in 0013 # that directory 0014 resultHtml = "<!DOCTYPE html><head><style>body{font-family: arial};" 0015 resultHtml += ".wrap-collabsible{margin-bottom: 1rem 0;} input[type='checkbox'] {display: none;} .lbl-toggle3{display: block; font-weight: normal; font-family: monospace; font-size: 1rem; text-align: left; vertical-align: middle; padding: 0.2rem; color: #666666; background: #FFFFFF; cursor: arrow; border-bottom: 1px solid #999999; transition: all 0.25s ease-out;} .lbl-toggle2{display: block; font-weight: normal;font-family: monospace; font-size: 1rem; text-align: left; vertical-align: middle; padding: 0.2rem; color: #006600; background: #FFFFFF; cursor: arrow; border-bottom: 1px solid #999999; transition: all 0.25s ease-out;} .lbl-toggle{display: block; font-weight: normal; font-family: monospace; font-size: 1rem; text-align: left; vertical-align: middle; padding: 0.2rem; color: #660000; background: #FFFFFF; cursor: pointer; border-bottom: 1px solid #999999; transition: all 0.25s ease-out;} .lbl-toggle:hover {color: #FF6666;} .collapsible-content {max-height: 0px; overflow: hidden; transition: max-height .25s ease-in-out;} .toggle:checked+.lbl-toggle+.collapsible-content {max-height: 100vh;} .toggle:checked+.lbl-toggle { border-bottom-right-radius: 0; border-bottom-left-radius: 0;} .collapsible-content .content-inner { background: rgba(250, 224, 66, .2); border-bottom: 1px solid rgba(250, 224, 66, .45); border-bottom-left-radius: 7px; border-bottom-right-radius: 7px; padding: .5rem 1rem;} div.centered{vertical-align: middle}" 0016 resultHtml += " .split { height: 100%; width: 50%; position: fixed; z-index: 1; top: 0; overflow-x: hidden; padding-top: 20px;} .left { left: 0; padding:5px; background-color: #FFFFFF;} .right { right: 0; background-color: #CCCCCC;} .rightcentered { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); text-align: center;}" 0017 resultHtml += '</style><script>function toggleImg0(charName) {document.getElementById("thumb").src = charName ;}</script></head><body><div class="wrap-collabsible">' 0018 resultHtml += '<div class=\"split right\"><img class=\"rightcentered\" width="98%" src="" id="thumb"></div>' 0019 resultHtml += "<div class=\"split left\"><h2>Tests done on the " + str(datetime.now()) + "</h2>" 0020 counter = 1 0021 items = os.listdir(directory) 0022 sorted_items = sorted(items) 0023 for filename in sorted_items: 0024 if filename.lower().endswith("txt"): 0025 continue 0026 f = os.path.join(directory, filename) 0027 # checking if it is a file 0028 if os.path.isfile(f): 0029 fname = ntpath.basename(f) 0030 # ensure destination render exists 0031 print('CHECKING FILE: ', fname) 0032 renderPath = "./renders/" + fname 0033 if not os.path.isfile(renderPath): 0034 resultHtml += ( 0035 '<input id="collapsible' 0036 + str(counter) 0037 + '" class="toggle" type="checkbox">' 0038 ) 0039 resultHtml += ( 0040 '<label for="collapsible' 0041 + str(counter) 0042 + '" class="lbl-toggle3"><div class="centered"><span><img src="resources/failed.png" /> Test #' 0043 + str(counter) 0044 + " for file <b>" 0045 + f 0046 + "</b> is missing.</span></div></label>" 0047 ) 0048 counter += 1 0049 continue 0050 print(f + ", ref: reference/" + fname) 0051 cmd = ["python3", "pnsr.py", f, "renders/" + fname, str(counter)] 0052 proc = subprocess.Popen(cmd, stdout=subprocess.PIPE) 0053 (output, err) = proc.communicate() 0054 resultHtml += output.decode() 0055 counter += 1 0056 resultHtml += "</div></div></body></html>" 0057 text_file = open("result.html", "wt") 0058 n = text_file.write(resultHtml) 0059 text_file.close() 0060 print("--------------------------------\nRender results saved to result.html\n-----------------------------") 0061 try: 0062 webbrowser.get("firefox").open("result.html") 0063 except webbrowser.Error: 0064 print ("Could not start Firefox, trying chrome... otherwise open the result.html file manually") 0065 webbrowser.get("chrome").open("result.html")