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")