From 9532d3ba665e04e87a9cc2a347e061c88f7ed021 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Thu, 16 Nov 2017 21:52:28 +0100 Subject: [PATCH] Add option to color svg file itself with GET argument --- server.py | 6 ++++-- svg.py | 17 ++++++++++++----- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/server.py b/server.py index e688f42..dfb6ea7 100755 --- a/server.py +++ b/server.py @@ -174,10 +174,12 @@ for j in glob.iglob(os.path.join(config.resourcedir, "**","*"), recursive=True): #add svgs: @app.get(f"/svg/.svg") async def get_svg(request, name): - return response.text(svg.get(name), headers={"Content-Type": "image/svg+xml"}) + color = request.args.get("color") + return response.text(svg.get(name, color), headers={"Content-Type": "image/svg+xml"}) @app.get(f"/svg//.svg") async def get_svg(request, collection, name): - return response.text(svg.get(os.path.join(collection, name)), headers={"Content-Type": "image/svg+xml"}) + color = request.args.get("color") + return response.text(svg.get(os.path.join(collection, name), color), headers={"Content-Type": "image/svg+xml"}) if __name__ == "__main__": app.run(host="0.0.0.0", port=8000) diff --git a/svg.py b/svg.py index 98e759f..691b03e 100644 --- a/svg.py +++ b/svg.py @@ -17,13 +17,20 @@ def list_collections(): if not i.endswith(".svg"): yield os.path.basename(i) - + @memoize -def get(name): +def get(name, color=None): with open(os.path.join(config.svgdir, f"{name}.svg"), "r") as f: - return f.read() - - + if not color: + return f.read() + return (f.read() #EW! + .replace("style=\"fill:#", f"style=\"fill:#{color};") + .replace("style='fill:#", f"style='fill:#{color};") + .replace("fill=\"#", f"fill=\"#{color}\" asdasd=\"") + .replace("fill='#", f"fill='#{color}' asdasd='") + .replace("