parent
a52e7f8ba9
commit
a556d22117
@ -0,0 +1,73 @@ |
||||
#!/usr/bin/env python3 |
||||
""" Prepare the piece info for a VASL module. |
||||
|
||||
The main program used to identify 5/8" counters by reading a module's buildFile and checking the height |
||||
attribute of the PieceSlot nodes, but it turns out this is the wrong thing to do (this field actually |
||||
controls the size of the piece's entry in the counter palette): |
||||
https://github.com/vasl-developers/vasl/issues/1195 |
||||
|
||||
For each version of VASL supported, run vassal-shim (getPieceInfo command) to analyze the module's |
||||
buildFile and get the correct counter sizes. Then pass the output into this script, to generate |
||||
the final data file that should be saved in the $/data/vasl-$VERSION/ directory, where it will |
||||
be read by the main program. |
||||
|
||||
NOTE: Introducing this process opens the possibility of also extracting the image file paths |
||||
within the .vmod file, instead of the current messy parsing of the PieceSlot CDATA... :-/ |
||||
""" |
||||
|
||||
import sys |
||||
import os |
||||
import json |
||||
|
||||
import xml.etree.ElementTree as ET |
||||
|
||||
# --------------------------------------------------------------------- |
||||
|
||||
# initialize |
||||
report = {} |
||||
|
||||
# figure out which GPID's we're interested in |
||||
gpids = set() |
||||
def get_gpids( vo_type ): |
||||
"""Get the GPID's from our data files.""" |
||||
dname = os.path.join( os.path.dirname(__file__), "../webapp/data", vo_type ) |
||||
for root,_,fnames in os.walk( dname ): |
||||
for fname in fnames: |
||||
if os.path.splitext( fname )[1] != ".json": |
||||
continue |
||||
fname = os.path.join( root, fname ) |
||||
with open( fname, "r", encoding="utf-8" ) as fp: |
||||
entries = json.load( fp ) |
||||
for entry in entries: |
||||
entry_gpid = entry.get( "gpid" ) |
||||
if not entry_gpid: |
||||
continue |
||||
if isinstance( entry_gpid, list ): |
||||
gpids.update( str(g) for g in entry_gpid ) |
||||
else: |
||||
gpids.add( str( entry_gpid ) ) |
||||
get_gpids( "vehicles" ) |
||||
get_gpids( "ordnance" ) |
||||
|
||||
# parse the piece info generated by vassal-shim |
||||
doc = ET.parse( sys.stdin ) |
||||
for piece_info in doc.getroot(): |
||||
gpid = piece_info.attrib["gpid"] |
||||
if gpid not in gpids: |
||||
continue |
||||
info = {} |
||||
# check if the next piece is small |
||||
if int( piece_info.attrib["height"] ) <= 48: |
||||
info["is_small"] = True |
||||
if info: |
||||
report[ gpid ] = info |
||||
|
||||
# output the final report |
||||
print( "{" ) |
||||
lines = [] |
||||
for gpid, piece_info in report.items(): |
||||
lines.append( "\"{}\": {}".format( |
||||
gpid, json.dumps( piece_info ) |
||||
) ) |
||||
print( ",\n".join( lines ) ) |
||||
print( "}" ) |
@ -0,0 +1,65 @@ |
||||
{ |
||||
"6996": {"is_small": true}, |
||||
"485": {"is_small": true}, |
||||
"850": {"is_small": true}, |
||||
"849": {"is_small": true}, |
||||
"12689": {"is_small": true}, |
||||
"856": {"is_small": true}, |
||||
"857": {"is_small": true}, |
||||
"11336": {"is_small": true}, |
||||
"858": {"is_small": true}, |
||||
"11337": {"is_small": true}, |
||||
"1149": {"is_small": true}, |
||||
"1153": {"is_small": true}, |
||||
"12687": {"is_small": true}, |
||||
"3b5:7613": {"is_small": true}, |
||||
"11359": {"is_small": true}, |
||||
"3b5:11259": {"is_small": true}, |
||||
"1632": {"is_small": true}, |
||||
"1636": {"is_small": true}, |
||||
"1641": {"is_small": true}, |
||||
"1648": {"is_small": true}, |
||||
"1982": {"is_small": true}, |
||||
"1983": {"is_small": true}, |
||||
"1984": {"is_small": true}, |
||||
"1985": {"is_small": true}, |
||||
"1986": {"is_small": true}, |
||||
"1987": {"is_small": true}, |
||||
"1988": {"is_small": true}, |
||||
"2172": {"is_small": true}, |
||||
"2173": {"is_small": true}, |
||||
"2176": {"is_small": true}, |
||||
"2179": {"is_small": true}, |
||||
"11391": {"is_small": true}, |
||||
"11392": {"is_small": true}, |
||||
"11395": {"is_small": true}, |
||||
"11396": {"is_small": true}, |
||||
"11440": {"is_small": true}, |
||||
"3b5:8401": {"is_small": true}, |
||||
"3b5:8402": {"is_small": true}, |
||||
"2465": {"is_small": true}, |
||||
"2474": {"is_small": true}, |
||||
"3252": {"is_small": true}, |
||||
"3253": {"is_small": true}, |
||||
"3263": {"is_small": true}, |
||||
"3422": {"is_small": true}, |
||||
"3428": {"is_small": true}, |
||||
"6730": {"is_small": true}, |
||||
"3605": {"is_small": true}, |
||||
"3608": {"is_small": true}, |
||||
"6763": {"is_small": true}, |
||||
"3679": {"is_small": true}, |
||||
"3680": {"is_small": true}, |
||||
"3681": {"is_small": true}, |
||||
"3682": {"is_small": true}, |
||||
"3691": {"is_small": true}, |
||||
"3692": {"is_small": true}, |
||||
"3959": {"is_small": true}, |
||||
"11558": {"is_small": true}, |
||||
"11559": {"is_small": true}, |
||||
"3b5:10150": {"is_small": true}, |
||||
"3b5:10151": {"is_small": true}, |
||||
"11600": {"is_small": true}, |
||||
"11604": {"is_small": true}, |
||||
"3b5:7871": {"is_small": true} |
||||
} |
@ -0,0 +1,65 @@ |
||||
{ |
||||
"6996": {"is_small": true}, |
||||
"485": {"is_small": true}, |
||||
"850": {"is_small": true}, |
||||
"849": {"is_small": true}, |
||||
"12689": {"is_small": true}, |
||||
"856": {"is_small": true}, |
||||
"857": {"is_small": true}, |
||||
"11336": {"is_small": true}, |
||||
"858": {"is_small": true}, |
||||
"11337": {"is_small": true}, |
||||
"1149": {"is_small": true}, |
||||
"1153": {"is_small": true}, |
||||
"12687": {"is_small": true}, |
||||
"3b5:7613": {"is_small": true}, |
||||
"11359": {"is_small": true}, |
||||
"3b5:11259": {"is_small": true}, |
||||
"1632": {"is_small": true}, |
||||
"1636": {"is_small": true}, |
||||
"1641": {"is_small": true}, |
||||
"1648": {"is_small": true}, |
||||
"1982": {"is_small": true}, |
||||
"1983": {"is_small": true}, |
||||
"1984": {"is_small": true}, |
||||
"1985": {"is_small": true}, |
||||
"1986": {"is_small": true}, |
||||
"1987": {"is_small": true}, |
||||
"1988": {"is_small": true}, |
||||
"2172": {"is_small": true}, |
||||
"2173": {"is_small": true}, |
||||
"2176": {"is_small": true}, |
||||
"2179": {"is_small": true}, |
||||
"11391": {"is_small": true}, |
||||
"11392": {"is_small": true}, |
||||
"11395": {"is_small": true}, |
||||
"11396": {"is_small": true}, |
||||
"11440": {"is_small": true}, |
||||
"3b5:8401": {"is_small": true}, |
||||
"3b5:8402": {"is_small": true}, |
||||
"2465": {"is_small": true}, |
||||
"2474": {"is_small": true}, |
||||
"3252": {"is_small": true}, |
||||
"3253": {"is_small": true}, |
||||
"3263": {"is_small": true}, |
||||
"3422": {"is_small": true}, |
||||
"3428": {"is_small": true}, |
||||
"6730": {"is_small": true}, |
||||
"3605": {"is_small": true}, |
||||
"3608": {"is_small": true}, |
||||
"6763": {"is_small": true}, |
||||
"3679": {"is_small": true}, |
||||
"3680": {"is_small": true}, |
||||
"3681": {"is_small": true}, |
||||
"3682": {"is_small": true}, |
||||
"3691": {"is_small": true}, |
||||
"3692": {"is_small": true}, |
||||
"3959": {"is_small": true}, |
||||
"11558": {"is_small": true}, |
||||
"11559": {"is_small": true}, |
||||
"3b5:10150": {"is_small": true}, |
||||
"3b5:10151": {"is_small": true}, |
||||
"11600": {"is_small": true}, |
||||
"11604": {"is_small": true}, |
||||
"3b5:7871": {"is_small": true} |
||||
} |
@ -0,0 +1,65 @@ |
||||
{ |
||||
"6996": {"is_small": true}, |
||||
"485": {"is_small": true}, |
||||
"850": {"is_small": true}, |
||||
"849": {"is_small": true}, |
||||
"12689": {"is_small": true}, |
||||
"856": {"is_small": true}, |
||||
"857": {"is_small": true}, |
||||
"11336": {"is_small": true}, |
||||
"858": {"is_small": true}, |
||||
"11337": {"is_small": true}, |
||||
"1149": {"is_small": true}, |
||||
"1153": {"is_small": true}, |
||||
"12687": {"is_small": true}, |
||||
"3b5:7613": {"is_small": true}, |
||||
"11359": {"is_small": true}, |
||||
"3b5:11259": {"is_small": true}, |
||||
"1632": {"is_small": true}, |
||||
"1636": {"is_small": true}, |
||||
"1641": {"is_small": true}, |
||||
"1648": {"is_small": true}, |
||||
"1982": {"is_small": true}, |
||||
"1983": {"is_small": true}, |
||||
"1984": {"is_small": true}, |
||||
"1985": {"is_small": true}, |
||||
"1986": {"is_small": true}, |
||||
"1987": {"is_small": true}, |
||||
"1988": {"is_small": true}, |
||||
"2172": {"is_small": true}, |
||||
"2173": {"is_small": true}, |
||||
"2176": {"is_small": true}, |
||||
"2179": {"is_small": true}, |
||||
"11391": {"is_small": true}, |
||||
"11392": {"is_small": true}, |
||||
"11395": {"is_small": true}, |
||||
"11396": {"is_small": true}, |
||||
"11440": {"is_small": true}, |
||||
"3b5:8401": {"is_small": true}, |
||||
"3b5:8402": {"is_small": true}, |
||||
"2465": {"is_small": true}, |
||||
"2474": {"is_small": true}, |
||||
"3252": {"is_small": true}, |
||||
"3253": {"is_small": true}, |
||||
"3263": {"is_small": true}, |
||||
"3422": {"is_small": true}, |
||||
"3428": {"is_small": true}, |
||||
"6730": {"is_small": true}, |
||||
"3605": {"is_small": true}, |
||||
"3608": {"is_small": true}, |
||||
"6763": {"is_small": true}, |
||||
"3679": {"is_small": true}, |
||||
"3680": {"is_small": true}, |
||||
"3681": {"is_small": true}, |
||||
"3682": {"is_small": true}, |
||||
"3691": {"is_small": true}, |
||||
"3692": {"is_small": true}, |
||||
"3959": {"is_small": true}, |
||||
"11558": {"is_small": true}, |
||||
"11559": {"is_small": true}, |
||||
"3b5:10150": {"is_small": true}, |
||||
"3b5:10151": {"is_small": true}, |
||||
"11600": {"is_small": true}, |
||||
"11604": {"is_small": true}, |
||||
"3b5:7871": {"is_small": true} |
||||
} |
@ -0,0 +1,65 @@ |
||||
{ |
||||
"6996": {"is_small": true}, |
||||
"485": {"is_small": true}, |
||||
"850": {"is_small": true}, |
||||
"849": {"is_small": true}, |
||||
"12689": {"is_small": true}, |
||||
"856": {"is_small": true}, |
||||
"857": {"is_small": true}, |
||||
"11336": {"is_small": true}, |
||||
"858": {"is_small": true}, |
||||
"11337": {"is_small": true}, |
||||
"1149": {"is_small": true}, |
||||
"1153": {"is_small": true}, |
||||
"12687": {"is_small": true}, |
||||
"3b5:7613": {"is_small": true}, |
||||
"11359": {"is_small": true}, |
||||
"3b5:11259": {"is_small": true}, |
||||
"1632": {"is_small": true}, |
||||
"1636": {"is_small": true}, |
||||
"1641": {"is_small": true}, |
||||
"1648": {"is_small": true}, |
||||
"1982": {"is_small": true}, |
||||
"1983": {"is_small": true}, |
||||
"1984": {"is_small": true}, |
||||
"1985": {"is_small": true}, |
||||
"1986": {"is_small": true}, |
||||
"1987": {"is_small": true}, |
||||
"1988": {"is_small": true}, |
||||
"2172": {"is_small": true}, |
||||
"2173": {"is_small": true}, |
||||
"2176": {"is_small": true}, |
||||
"2179": {"is_small": true}, |
||||
"11391": {"is_small": true}, |
||||
"11392": {"is_small": true}, |
||||
"11395": {"is_small": true}, |
||||
"11396": {"is_small": true}, |
||||
"11440": {"is_small": true}, |
||||
"3b5:8401": {"is_small": true}, |
||||
"3b5:8402": {"is_small": true}, |
||||
"2465": {"is_small": true}, |
||||
"2474": {"is_small": true}, |
||||
"3252": {"is_small": true}, |
||||
"3253": {"is_small": true}, |
||||
"3263": {"is_small": true}, |
||||
"3422": {"is_small": true}, |
||||
"3428": {"is_small": true}, |
||||
"6730": {"is_small": true}, |
||||
"3605": {"is_small": true}, |
||||
"3608": {"is_small": true}, |
||||
"6763": {"is_small": true}, |
||||
"3679": {"is_small": true}, |
||||
"3680": {"is_small": true}, |
||||
"3681": {"is_small": true}, |
||||
"3682": {"is_small": true}, |
||||
"3691": {"is_small": true}, |
||||
"3692": {"is_small": true}, |
||||
"3959": {"is_small": true}, |
||||
"11558": {"is_small": true}, |
||||
"11559": {"is_small": true}, |
||||
"3b5:10150": {"is_small": true}, |
||||
"3b5:10151": {"is_small": true}, |
||||
"11600": {"is_small": true}, |
||||
"11604": {"is_small": true}, |
||||
"3b5:7871": {"is_small": true} |
||||
} |
@ -0,0 +1,65 @@ |
||||
{ |
||||
"6996": {"is_small": true}, |
||||
"485": {"is_small": true}, |
||||
"850": {"is_small": true}, |
||||
"849": {"is_small": true}, |
||||
"12689": {"is_small": true}, |
||||
"856": {"is_small": true}, |
||||
"857": {"is_small": true}, |
||||
"11336": {"is_small": true}, |
||||
"858": {"is_small": true}, |
||||
"11337": {"is_small": true}, |
||||
"1149": {"is_small": true}, |
||||
"1153": {"is_small": true}, |
||||
"12687": {"is_small": true}, |
||||
"3b5:7613": {"is_small": true}, |
||||
"11359": {"is_small": true}, |
||||
"3b5:11259": {"is_small": true}, |
||||
"1632": {"is_small": true}, |
||||
"1636": {"is_small": true}, |
||||
"1641": {"is_small": true}, |
||||
"1648": {"is_small": true}, |
||||
"1982": {"is_small": true}, |
||||
"1983": {"is_small": true}, |
||||
"1984": {"is_small": true}, |
||||
"1985": {"is_small": true}, |
||||
"1986": {"is_small": true}, |
||||
"1987": {"is_small": true}, |
||||
"1988": {"is_small": true}, |
||||
"2172": {"is_small": true}, |
||||
"2173": {"is_small": true}, |
||||
"2176": {"is_small": true}, |
||||
"2179": {"is_small": true}, |
||||
"11391": {"is_small": true}, |
||||
"11392": {"is_small": true}, |
||||
"11395": {"is_small": true}, |
||||
"11396": {"is_small": true}, |
||||
"11440": {"is_small": true}, |
||||
"3b5:8401": {"is_small": true}, |
||||
"3b5:8402": {"is_small": true}, |
||||
"2465": {"is_small": true}, |
||||
"2474": {"is_small": true}, |
||||
"3252": {"is_small": true}, |
||||
"3253": {"is_small": true}, |
||||
"3263": {"is_small": true}, |
||||
"3422": {"is_small": true}, |
||||
"3428": {"is_small": true}, |
||||
"6730": {"is_small": true}, |
||||
"3605": {"is_small": true}, |
||||
"3608": {"is_small": true}, |
||||
"6763": {"is_small": true}, |
||||
"3679": {"is_small": true}, |
||||
"3680": {"is_small": true}, |
||||
"3681": {"is_small": true}, |
||||
"3682": {"is_small": true}, |
||||
"3691": {"is_small": true}, |
||||
"3692": {"is_small": true}, |
||||
"3959": {"is_small": true}, |
||||
"11558": {"is_small": true}, |
||||
"11559": {"is_small": true}, |
||||
"3b5:10150": {"is_small": true}, |
||||
"3b5:10151": {"is_small": true}, |
||||
"11600": {"is_small": true}, |
||||
"11604": {"is_small": true}, |
||||
"3b5:7871": {"is_small": true} |
||||
} |
Binary file not shown.
Loading…
Reference in new issue