From 1aa3c569a87fd0c16f5e1e7d0197bde6f5d95126 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Tue, 26 Dec 2017 18:58:17 +0100 Subject: [PATCH] Cleanup, add unique IDs tpo card.vm articles, add support for stacking figures, add more flags qhich trigger item layout, add feature to show current stock, fix SVG upload bug --- card.py | 9 ++++++++- resources/cards/card.vm | 35 +++++++++++++++++++++-------------- server.py | 40 +++++++++++++++++++--------------------- 3 files changed, 48 insertions(+), 36 deletions(-) diff --git a/card.py b/card.py index 137bc63..7d20626 100644 --- a/card.py +++ b/card.py @@ -68,7 +68,7 @@ def to_yaml(card): def from_dir(path): return [from_file(i, in_carddir=False) for i in glob.glob(os.path.join(path, "*.yaml"))] -def from_form(form): +def from_form(form):#sanic's request.form card = Card() for key, val in form.items(): if not val[0]: continue @@ -89,6 +89,13 @@ def is_filename_vacant(filename, in_carddir=True): filename += ".yaml" return not os.path.exists(filename) +def get_vacant_filename(): + i = 1 + while 1: + if is_filename_vacant("card-%s" % str(i).zfill(4)): + return "card-%s" % str(i).zfill(4) + i += 1 + class open_file:#contextmanager def __init__(self, filename): self.filename = filename diff --git a/resources/cards/card.vm b/resources/cards/card.vm index c49b1ed..7248f4b 100644 --- a/resources/cards/card.vm +++ b/resources/cards/card.vm @@ -5,19 +5,27 @@ #macro(figure $card) - #if($card.figure_source == "material-icons") + #if($card.figure.__contains__(",")) + #figure_embed($card.figure.split(",").get(1).strip(), $card.figure_source, "111") + #figure_embed($card.figure.split(",").get(0).strip(), $card.figure_source, "aaa") + #else + #figure_embed($card.figure, $card.figure_source, "aaa") + #end +#end +#macro(figure_embed $figure $source $color) + #if($source == "material-icons") - $escape_html($card.figure) - #elseif($card.figure_source == "mdi") + $escape_html($label) + #elseif($source == "mdi") - - #elseif($card.figure_source == "fa") + + #elseif($source == "fa") - - #elseif($card.figure_source == "svg") + + #elseif($source == "svg") - - + + #end #end #macro(specialFlags $card) @@ -67,19 +75,18 @@ Cards #foreach($card in $cards) - #set($card_is_item = false) -#foreach($flag in ["Consumable", "Title", "Food", "Trinket", "Crafting Material", "Collectible", "Alchemy Material", "Ammo", "Splash", "Thrown", "Draw Card"]) +#foreach($flag in ["Consumable", "Title", "Food", "Trinket", "Crafting Material", "Collectible", "Alchemy Material", "Ammo", "Splash", "Thrown", "Draw Card", "Passive", "Melee Weapon", "Arc Weapon", "LoS Weapon"]) #if($card.flags.__contains__($flag)) #set($card_is_item = true) #end #if($card.flags.__contains__($flag.lower())) #set($card_is_item = true) #end #end #if($card_is_item) -
+
#elseif($card.effects) -
+
#else -
+
#end

$escape_html($card.title)

diff --git a/server.py b/server.py index c11cff5..f7de7a4 100755 --- a/server.py +++ b/server.py @@ -65,14 +65,7 @@ async def show_creator(request): initialcard = card.from_file(str(request.args["filename"][0])+".yaml") else: initialcard = card.Card() - - #find vacant fileame: - i = 1 - while 1: - if card.is_filename_vacant("card-%s" % str(i).zfill(4)): - initialcard.filename = "card-%s" % str(i).zfill(4) - break - i += 1 + initialcard.filename = card.get_vacant_filename() #initialcard.power = "" #initialcard.cp = "" #initialcard.steps = "" @@ -88,25 +81,23 @@ async def show_creator(request):#not used atm #find vacant fileame: if not initialcard.filename: - i = 1 - while 1: - if card.is_filename_vacant("card-%s" % str(i).zfill(4)): - initialcard.filename = "card-%s" % str(i).zfill(4) - break - i += 1 + initialcard.filename = card.get_vacant_filename() + return {"card":initialcard} @app.get('/cards/show') @mergeTemplate("cards/card.vm") async def show_cards(request): - if "card" not in request.args: - return response.redirect('/cards/') - cards = [] - for i in request.args["card"]: - if "/" in i or "\\" in i: - return response.redirect('/cards/') - cards.append(card.from_file(i+".yaml")) + if "card" in request.args: + for i in request.args["card"]: + if "/" in i or "\\" in i: return response.redirect('/cards/') + cards.append(card.from_file(i+".yaml")) + elif "stock" in request.args: + for i in card.from_dir(config.carddir): + cards.extend([i]*int(i.copies_owned)) + else: + return response.redirect('/cards/') return locals() @app.post('/cards/preview') @@ -114,6 +105,8 @@ async def show_cards(request): async def preview_card(request): cards = [card.from_form(request.form)] if "save" in request.form: + if not cards[0].filename: + cards[0].filename = card.get_vacant_filename() card.to_file(cards[0]) was_saved = True if "delete" in request.form: @@ -149,6 +142,11 @@ async def svg_add(request): name = request.form.get("name") or file.name if name[-4:] == ".svg": name = name[:-4] + page = 1 + current_collection = None + collections = svg.list_collections() + filter = None + svg.store(name, file.body) uploaded = True