svg newlines + fix cleaner warning:

* support newlines in svg files;
  * `--error--\ncheck\nserver\nlog`
  * `upload\nonly`

* thumbnails of files with lastmodified year 1601 would
   make the cleaner print a harmless but annoying warning
This commit is contained in:
ed 2025-04-07 18:47:20 +00:00
parent f9954bc4e5
commit 20920e844f
2 changed files with 19 additions and 2 deletions

View file

@ -94,10 +94,21 @@ class Ico(object):
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" viewBox="0 0 100 {}" xmlns="http://www.w3.org/2000/svg"><g> <svg version="1.1" viewBox="0 0 100 {}" xmlns="http://www.w3.org/2000/svg"><g>
<rect width="100%" height="100%" fill="#{}" /> <rect width="100%" height="100%" fill="#{}" />
<text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" xml:space="preserve" <text x="50%" y="{}" dominant-baseline="middle" text-anchor="middle" xml:space="preserve"
fill="#{}" font-family="monospace" font-size="14px" style="letter-spacing:.5px">{}</text> fill="#{}" font-family="monospace" font-size="14px" style="letter-spacing:.5px">{}</text>
</g></svg> </g></svg>
""" """
svg = svg.format(h, c[:6], c[6:], html_escape(ext, True))
txt = html_escape(ext, True)
if "\n" in txt:
lines = txt.split("\n")
n = len(lines)
y = "20%" if n == 2 else "10%" if n == 3 else "0"
zs = '<tspan x="50%%" dy="1.2em">%s</tspan>'
txt = "".join([zs % (x,) for x in lines])
else:
y = "50%"
svg = svg.format(h, c[:6], y, c[6:], txt)
return "image/svg+xml", svg.encode("utf-8") return "image/svg+xml", svg.encode("utf-8")

View file

@ -4,6 +4,7 @@ from __future__ import print_function, unicode_literals
import hashlib import hashlib
import logging import logging
import os import os
import re
import shutil import shutil
import subprocess as sp import subprocess as sp
import threading import threading
@ -49,6 +50,9 @@ HAVE_WEBP = False
EXTS_TH = set(["jpg", "webp", "png"]) EXTS_TH = set(["jpg", "webp", "png"])
EXTS_AC = set(["opus", "owa", "caf", "mp3"]) EXTS_AC = set(["opus", "owa", "caf", "mp3"])
PTN_TS = re.compile("^-?[0-9a-f]{8,10}$")
try: try:
if os.environ.get("PRTY_NO_PIL"): if os.environ.get("PRTY_NO_PIL"):
raise Exception() raise Exception()
@ -998,6 +1002,8 @@ class ThumbSrv(object):
# thumb file # thumb file
try: try:
b64, ts, ext = f.split(".") b64, ts, ext = f.split(".")
if len(ts) > 8 and PTN_TS.match(ts):
ts = "yeahokay"
if len(b64) != 24 or len(ts) != 8 or ext not in exts: if len(b64) != 24 or len(ts) != 8 or ext not in exts:
raise Exception() raise Exception()
except: except: