Fixed link
This commit is contained in:
parent
887af2a8e5
commit
3036899984
|
@ -1 +0,0 @@
|
|||
/var/www-python/render.pyhtml
|
|
@ -0,0 +1,85 @@
|
|||
<%!
|
||||
import subprocess, traceback, os
|
||||
%><%
|
||||
def get(l,k):
|
||||
try:
|
||||
return l[k]
|
||||
except:
|
||||
return str(k) + " expected, not found."
|
||||
def try_convert(v, t):
|
||||
try:
|
||||
return t(v)
|
||||
except:
|
||||
return "Value " + str(v) + " was supposed to be a(n) " + str(t)
|
||||
f = d["file"]
|
||||
render = False
|
||||
if len(f) > 100*1024*1024: # 100 mb?
|
||||
render = "File too large. Maximum size 100mb"
|
||||
else:
|
||||
bits = try_convert(get(d,"bits"), int)
|
||||
dither = get(d, "dither")
|
||||
if dither == "dither-none":
|
||||
dither = False
|
||||
elif dither == "dither-auto":
|
||||
dither = "auto"
|
||||
else:
|
||||
dither = try_convert(get(d, "dither-manual-number"), float)
|
||||
#dither = try_convert(get(d, "dither-manual-number").replace("%", ""), float)
|
||||
if type(dither) == str:
|
||||
render = "Dither must be a floating point number"
|
||||
nrdither = get(d, "nrdither")
|
||||
if nrdither == "nrdither-none":
|
||||
nrdither = False
|
||||
elif dither == "nrdither-auto":
|
||||
nrdither = "auto"
|
||||
else:
|
||||
nrdither = try_convert(get(d, "nrdither-manual-number"), int)
|
||||
nrdither = 10 # DEBUG
|
||||
if type(nrdither) == str:
|
||||
render = "Non-random dither must be an integer"
|
||||
if type(bits) == str:
|
||||
render = "Bits must be an integer"
|
||||
percolor = get(d, "percolor")
|
||||
if percolor == "true":
|
||||
percolor = True
|
||||
elif percolor == "false":
|
||||
percolor = False
|
||||
else:
|
||||
render = percolor
|
||||
if nrdither and not dither:
|
||||
render = "nonrandom dither requires dither"
|
||||
if not render:
|
||||
inf = subprocess.check_output(["mktemp", "/tmp/2bit.XXXXXXXXX"]).decode("utf-8").strip()
|
||||
inf_o = open(inf, "w")
|
||||
inf_o.write(f)
|
||||
inf_o.close()
|
||||
outf = inf + ".png"
|
||||
prog = ["python3", "/opt/2bit.py", inf, outf, str(bits)]
|
||||
if percolor:
|
||||
prog.append("--per-color")
|
||||
if dither:
|
||||
prog.append("--dither")
|
||||
prog.append(str(dither))
|
||||
if nrdither:
|
||||
prog.append("--non-random-dither")
|
||||
prog.append(str(nrdither))
|
||||
prog.append("--no-status-bar")
|
||||
try:
|
||||
value = subprocess.check_call(prog)
|
||||
except subprocess.CalledProcessError as e:
|
||||
render = str(e.returncode) + " " + str(e.output) + "\n" + traceback.format_exc()
|
||||
if not render:
|
||||
rf = "/var/www/niles.xyz/2bit" + outf
|
||||
subprocess.call(["mv", outf, rf])
|
||||
subprocess.call(["rm", outf, inf])
|
||||
render = "<img src=\"https://niles.xyz/2bit" + outf + "\" />"
|
||||
if not render:
|
||||
render = "Error? idk"
|
||||
%>
|
||||
<!doctype html>
|
||||
<html>
|
||||
<body>
|
||||
<h1>Rendered image</h1>
|
||||
${render}
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue