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