mirror of https://github.com/midoks/mdserver-web
pull/216/head
parent
be875d9d8c
commit
1411bb1639
@ -0,0 +1,56 @@ |
|||||||
|
import sys |
||||||
|
import os |
||||||
|
|
||||||
|
|
||||||
|
class luamaker: |
||||||
|
""" |
||||||
|
lua 处理器 |
||||||
|
""" |
||||||
|
@staticmethod |
||||||
|
def makeLuaTable(table): |
||||||
|
""" |
||||||
|
table 转换为 lua table 字符串 |
||||||
|
""" |
||||||
|
_tableMask = {} |
||||||
|
_keyMask = {} |
||||||
|
|
||||||
|
def analysisTable(_table, _indent, _parent): |
||||||
|
if isinstance(_table, tuple): |
||||||
|
_table = list(_table) |
||||||
|
if isinstance(_table, list): |
||||||
|
_table = dict(zip(range(1, len(_table) + 1), _table)) |
||||||
|
if isinstance(_table, dict): |
||||||
|
_tableMask[id(_table)] = _parent |
||||||
|
cell = [] |
||||||
|
thisIndent = _indent + " " |
||||||
|
for k in _table: |
||||||
|
if sys.version_info[0] == 2: |
||||||
|
if type(k) not in [int, float, bool, list, dict, tuple]: |
||||||
|
k = k.encode() |
||||||
|
|
||||||
|
if not (isinstance(k, str) or isinstance(k, int) or isinstance(k, float)): |
||||||
|
return |
||||||
|
key = isinstance( |
||||||
|
k, int) and "[" + str(k) + "]" or "[\"" + str(k) + "\"]" |
||||||
|
if _parent + key in _keyMask.keys(): |
||||||
|
return |
||||||
|
_keyMask[_parent + key] = True |
||||||
|
var = None |
||||||
|
v = _table[k] |
||||||
|
if sys.version_info[0] == 2: |
||||||
|
if type(v) not in [int, float, bool, list, dict, tuple]: |
||||||
|
v = v.encode() |
||||||
|
if isinstance(v, str): |
||||||
|
var = "\"" + v + "\"" |
||||||
|
elif isinstance(v, bool): |
||||||
|
var = v and "true" or "false" |
||||||
|
elif isinstance(v, int) or isinstance(v, float): |
||||||
|
var = str(v) |
||||||
|
else: |
||||||
|
var = analysisTable(v, thisIndent, _parent + key) |
||||||
|
cell.append(thisIndent + key + " = " + str(var)) |
||||||
|
lineJoin = ",\n" |
||||||
|
return "{\n" + lineJoin.join(cell) + "\n" + _indent + "}" |
||||||
|
else: |
||||||
|
pass |
||||||
|
return analysisTable(table, "", "root") |
@ -0,0 +1 @@ |
|||||||
|
自动生成配置文件 |
Loading…
Reference in new issue