Support additional logos, starting with THW

This commit is contained in:
2024-09-25 01:29:15 +02:00
parent 88d5455296
commit 65b9c44579
3 changed files with 2195 additions and 3 deletions

View File

@ -23,16 +23,21 @@ class Generator:
GENERATOR_SCAD_FILE_NAME = "generator.scad"
GENERATED_STL_FILE_NAME = "generated.stl"
def __init__(self, name: str, tempdir: Path | str):
def __init__(self, name: str, tempdir: Path | str, logo: str = None):
self._name = name
self._tempdir = Path(tempdir)
# sanitize input
if "/" in logo:
raise ValueError("invalid logo name")
self._logo = Path(logo).name
def _generate_scad_template(self) -> str:
return f"""
use <bottle-clip.scad>
$fn=180;
// one name tag for 0.5l Club Mate and similar bottles
bottle_clip(name="{self._name}", logo="thing-logos/fablab.dxf");
bottle_clip(name="{self._name}", logo="thing-logos/{self._logo}.dxf");
"""
def _generate_files_in_temp_dir(self):
@ -83,6 +88,7 @@ async def generate():
raise ValueError
name = data["name"]
logo = data.get("logo", None)
except (TypeError, KeyError, ValueError):
abort(400)
@ -90,7 +96,7 @@ async def generate():
async with semaphore:
with tempfile.TemporaryDirectory(prefix="fablab-bottle-clip-generator-") as tempdir:
generator = Generator(name, tempdir)
generator = Generator(name, tempdir, logo)
generated_stl_file_name = await generator.generate_stl()