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