舰R百科是靠无数自愿编辑者持续地建设更新完善的。编辑非常简单,请勇于更新页面!
编辑入门 | 资助百科 | 留言讨论页 | 微博@舰R百科 | 百科编辑讨论Q群:366818861

用户:SegFault:修订间差异

来自舰R百科
跳转到导航 跳转到搜索
无编辑摘要
无编辑摘要
 
(未显示同一用户的5个中间版本)
第1行: 第1行:
<tabber>
<pre>
改造前 =
from urllib.request import urlopen
{{舰娘
import json
|战舰序号= 海军上将级1号舰
 
|战舰名=胡德
url = 'http://login.jianniang.com/index/getInitConfigs'
|图鉴编号= 1
 
|所属=英国
countryNames = [ '', '日本', '德国', '英国', '美国', '意大利', '法国', '苏联', '中国' ]
|星级= 5
shipTypeNames = [ '', '航空母舰', '轻型航空母舰', '装甲航母', '战列舰', '航空战列舰', '战列巡洋舰', '重巡洋舰', \
|战舰类型= 战列巡洋舰
        'CAV', 'CLT', '轻巡洋舰', '浅水重炮舰', '驱逐舰', 'SSV', '潜艇', '重炮潜艇', '补给舰' ]
|改造等级= 75
rangeNames = [ '', '短', '中', '长', '超长' ]
|耐久= 75
coreNames = { 10441:'驱逐', 10341:'巡洋', 10241:'战列', 10141:'航母', 10541:'潜艇' }
|火力= 68
 
|火力max= 93
remodelPostfix = '·改'
|搭载= 12
canNotEquip = '不可装备'
|装甲= 65
noEquipt = '无'
|装甲max= 80
aquire = '获得'
|鱼雷= 0
day = '白天'
|鱼雷max= 0
night = '夜间'
|幸运= 5
formation = '阵型'
|回避= 27
attack = '攻击'
|回避max= 57
nightAttack = '夜战'
|对空= 40
damaged = '中破'
|对空max= 70
vow = '誓约'
|射程=
desc = '简介'
|索敌= 13
 
|索敌max= 38
def getShipName(ship, allShips):
|对潜= 0
    name = ship['title'].strip()
|对潜max= 0
    idx = int(ship['shipIndex'])
|航速= 31
    if idx < 1000:
|燃料= 70
        return name
|弹药= 120
 
|拆解油=40
    orig = [ s for s in allShips if int(s['shipIndex']) == idx % 1000 ][0]
|拆解弹=50
    if name == orig['title'].strip():
|拆解钢=40
        name += remodelPostfix
|拆解铝=0
    return name
|强化加成={{舰娘/强化|火力=73|鱼雷=0|装甲=65|对空=24}}
 
|改造消耗={{舰娘/改造|燃油=0|弹药=0|钢材=200|铝材=0|核心=战列舰改造核心*20}}
def getShipAttr(ship, allShips, equipts):
|技能介绍=
    st = ship['strengthenTop']
|装备1={{装备背景|2|[[File:Equip L 30.png|80px|link=英国双联15英寸炮]]}}
    exp = ship['strengthenLevelUpExp']
|装备2={{装备背景|2|[[File:Equip L 8.png|80px]]}}<!--(如果该位置没有装备,请留空)-->
 
|装备3={{装备背景|1|[[File:Equip L 77.png|80px]]}}<!--(如果该位置没有装备,请留空)-->
    cap = [ 0 ] * 4
|装备4=<!--(如果该位置没有装备,请留空)-->
    if ship['capacityInit']:
|装备名1=英国双联15英寸炮
        for i in range(len(ship['capacityInit'])):
|装备名2=英国双联4英寸炮
            cap[i] = ship['capacityInit'][i]
|装备名3=海象式
 
|装备名4=
    eq = [ canNotEquip ] * 4
|装备属性1=火力+17<br>命中+1
    n = len(ship['equipment'])
|装备属性2=火力+1<br>对空+3
    for i in range(n):
|装备属性3=对空+1<br>轰炸+1<br>对潜+3<br>索敌+4<br>命中+1
        eq[i] = [ e['title'] for e in equipts if e['cid'] == ship['equipment'][i] ][0]
|装备属性4=
    for i in range(n, ship['equipmentNum']):
|第1格容量=3
        eq[i] = noEquipt
|第2格容量=3
 
|第3格容量=3
    ret = "ships['%s'] = {\n    " % getShipName(ship, allShips)
|第4格容量=3
 
|获得方式= 建造(4:30:00)、掉落(1-4,2-3~2-4,3-2~6-2,6-4)
    ret += "index=%s, " % int(ship['shipIndex'])
|舰船简介=英国史上最著名的战列巡洋舰。在20至30年代,胡德号长期作为英国海军的象征,频繁出访世界各地。胡德号在40年参与了针对投降后法国舰队的抛石机行动,重创了法国海军。41年的海战中,胡德号同威尔士亲王号一同拦截俾斯麦号和欧根亲王号,在战斗中胡德号被击中之后迅速爆炸沉没。
    ret += "rarity=%s, " % ship['star']
}}
 
|-|
    ret += "type='%s', " % shipTypeNames[ship['type']]
改造后 =  
    if int(ship['country']) < 9:
{{舰娘
        ret += "country='%s', " % countryNames[int(ship['country'])]
|战舰序号= 海军上将级1号舰
    ret += "class='%s', " % ship['classNo']
|战舰名=胡德·改
 
|图鉴编号= 1001
    ret = ret[:-1] + '\n    '
|所属=英国
 
|星级= 6
    ret += "hp=%s, " % ship['hp']
|战舰类型= 战列巡洋舰
    ret += "atk=%s, " % ship['atk']
|改造等级= 75
    ret += "tpd=%s, " % ship['torpedo']
|耐久= 80
    ret += "def=%s, " % ship['def']
|火力= 78
    ret += "aa=%s, " % ship['airDef']
|火力max= 103
    ret += "eva=%s, " % ship['miss']
|搭载= 12
    ret += "as=%s, " % ship['antisub']
|装甲= 72
    ret += "rec=%s, " % ship['radar']
|装甲max= 87
    ret += "speed=%s, " % ship['speed']
|鱼雷= 0/0
    ret += "luck=%s, " % ship['luck']
|幸运= 8
    ret += "range='%s', " % rangeNames[ship['range']]
|回避= 33
 
|回避max= 65
    ret = ret[:-1] + '\n    '
|对空= 55
 
|对空max= 85
    ret += "atkMax=%s, " % (int(ship['atk']) + st['atk'] // exp)
|射程=
    ret += "tpdMax=%s, " % (int(ship['torpedo']) + st['torpedo'] // exp)
|索敌= 18
    ret += "defMax=%s, " % (ship['def'] + st['def'] // exp)
|索敌max= 43
    ret += "aaMax=%s, " % (int(ship['airDef']) + st['air_def'] // exp)
|对潜= 0
    ret += "evaMax=%s, " % ship['missMax']
|对潜max= 0
    ret += "asMax=%s, " % ship['antisubMax']
|航速= 32
    ret += "recMax=%s, " % ship['radarMax']
|燃料= 70
 
|弹药= 120
    ret = ret[:-1] + '\n    '
|拆解油=40
 
|拆解弹=50
    ret += "cap1=%s, " % cap[0]
|拆解钢=40
    ret += "cap2=%s, " % cap[1]
|拆解铝=0
    ret += "cap3=%s, " % cap[2]
|强化加成={{舰娘/强化|火力=83|鱼雷=0|装甲=72|对空=47}}
    ret += "cap4=%s, " % cap[3]
|改造消耗=
    ret += "eq1='%s', " % eq[0]
|技能介绍={{舰娘/技能|技能名=皇家海军的荣耀|技能介绍=当胡德作为旗舰时<br>为队伍中所有舰船附加5/7.5/10%被暴击率<br>为队伍中英国舰船附加10/15/20%暴击率<br>其他国家的舰船增加5%/7.5%/10%的暴击率}}
    ret += "eq2='%s', " % eq[1]
|技能介绍2={{舰娘/技能|技能名=皇家巡游|技能介绍=当胡德作为旗舰时提升全队航速2/3/4点}}
    ret += "eq3='%s', " % eq[2]
|装备1={{装备背景|5|[[File:Equip L 120.png|80px|link=英国双联15英寸炮()]]}}
    ret += "eq4='%s', " % eq[3]
|装备2={{装备背景|4|[[File:Equip L 96.png|80px]]}}<!--(如果该位置没有装备,请留空)-->
 
|装备3={{装备背景|5|[[File:Equip L 121.png|80px|link=英国三联15英寸炮(试作型)]]}}
    ret = ret[:-1] + '\n    '
|装备4={{装备背景|4|[[File:Equip L 183.png|80px|link="生姜&鱼饼"]]}}<!--(如果该位置没有装备,请留空)-->
 
|装备名1= 英国双联15英寸炮()
    ret += "sFuel=%s, " % ship['maxOil']
|装备名2=附加装甲(大型)
    ret += "sAmmo=%s, " % ship['maxAmmo']
|装备名3=英国三联15英寸炮(试作型)
    ret += "rFuel=%s, " % ship['repairOilModulus']
|装备名4="生姜&鱼饼"
    ret += "rSteel=%s, " % ship['repairSteelModulus']
|装备属性1=火力+19<br>命中+2
    ret += "sAtk=%s, " % ship['strengthenSupplyExp']['atk']
|装备属性2=装甲+9<br>命中+3
    ret += "sTpd=%s, " % ship['strengthenSupplyExp']['torpedo']
|装备属性3=火力+21<br>命中+1
    ret += "sDef=%s, " % ship['strengthenSupplyExp']['def']
|装备属性4=装甲3<br>命中3
    ret += "sAa=%s, " % ship['strengthenSupplyExp']['air_def']
|第1格容量=3
    ret += "dFuel=%s, " % ship['dismantle']['2']
|第2格容量=3
    ret += "dAmmo=%s, " % ship['dismantle']['3']
|第3格容量=3
    ret += "dSteel=%s, " % ship['dismantle']['4']
|第4格容量=3
    ret += "dBaux=%s, " % ship['dismantle']['9']
|获得方式= 改造
 
|舰船简介=英国史上最著名的战列巡洋舰。在20至30年代,胡德号长期作为英国海军的象征,频繁出访世界各地。胡德号在40年参与了针对投降后英国舰队的抛石机行动,重创了英国海军。41年的海战中,胡德号同威尔士亲王号一同拦截俾斯麦号和欧根亲王号,在战斗中胡德号被击中之后迅速爆炸沉没。
    t = [ s for s in allShips if int(s['shipIndex']) - int(ship['shipIndex']) == 1000 ]
}}
    if len(t) != 0:
|-|
        mod = { '2':0, '3':0, '4':0, '9':0 }
和谐立绘=
        for k,v in ship['evoNeedResource'].items():
{{和谐立绘|图鉴编号=1001}}
            mod[k] = v
</tabber>
 
        ret = ret[:-1] + '\n    '
        ret += "mod='%s', " % getShipName(t[0], allShips)
        ret += "modLv=%s, " % ship['evoLevel']
        ret += "coreType='%s', " % coreNames[ship['evoNeedItemCid']]
        ret += "coreNum=%s, " % ship['evoNeedResource'][str(ship['evoNeedItemCid'])]
        ret += "mFuel=%s, " % mod['2']
        ret += "mAmmo=%s, " % mod['3']
        ret += "mSteel=%s, " % mod['4']
        ret += "mBaux=%s, " % mod['9']
 
    return ret[:-2] + '\n}\n'
 
def getDialogue(ship, allShips):
    name = getShipName(ship, allShips)
    ret = "ships['" + name + "']['" + aquire + "'] = '" + ship['getDialogue'].strip() + "'\n"
    if ship['mainDialogue'] and ship['mainDialogue'][0]:
        ret += "ships['" + name + "']['" + day + "1'] = '" + ship['mainDialogue'][0].strip() + "'\n"
        ret += "ships['" + name + "']['" + day + "2'] = '" + ship['mainDialogue'][1].strip() + "'\n"
        ret += "ships['" + name + "']['" + day + "3'] = '" + ship['mainDialogue'][2].strip() + "'\n"
    if ship['mainDialogue'] and ship['mainDialogue'][6] != ship['mainDialogue'][0]:
        ret += "ships['" + name + "']['" + night + "1'] = '" + ship['mainDialogue'][6].strip() + "'\n"
        ret += "ships['" + name + "']['" + night + "2'] = '" + ship['mainDialogue'][7].strip() + "'\n"
        ret += "ships['" + name + "']['" + night + "3'] = '" + ship['mainDialogue'][8].strip() + "'\n"
    if ship['formationDialogue']:
        ret += "ships['" + name + "']['" + formation + "'] = '" + ship['formationDialogue'].strip() + "'\n"
    if ship['atkDialogue']:
        ret += "ships['" + name + "']['" + attack + "'] = '" + ship['atkDialogue'].strip() + "'\n"
    if ship['nightAtkDialogue']:
        ret += "ships['" + name + "']['" + nightAttack + "'] = '" + ship['nightAtkDialogue'].strip() + "'\n"
    if ship['breakDialogue']:
        ret += "ships['" + name + "']['" + damaged + "'] = '" + ship['breakDialogue'].strip() + "'\n"
    ret += "ships['" + name + "']['" + vow + "'] = '" + ship['vow'].strip() + "'\n"
    ret += "ships['" + name + "']['" + desc + "'] = '" + ship['desc'].strip() + "'\n"
 
    return ret + '\n'
 
def getEquiptAttr(e):
    ret = "equipts['%s'] = { " % e['title']
    ret += 'index=%s, rarity=%s' % (int(e['equipIndex']), e['star'])
    if int(e['atk']) != 0:          ret += ', atk=%s'  % e['atk']
    if int(e['def']) != 0:          ret += ', def=%s'  % e['def']
    if int(e['torpedo']) != 0:      ret += ', tpd=%s'  % e['torpedo']
    if int(e['antisub']) != 0:      ret += ', as=%s'    % e['antisub']
    if int(e['radar']) != 0:        ret += ', rec=%s'  % e['radar']
    if int(e['hit']) != 0:          ret += ', acc=%s'  % e['hit']
    if int(e['range']) != 0:        ret += ', range=%s' % e['range']
    if int(e['miss']) != 0:        ret += ', eva=%s'  % e['miss']
    if int(e['luck']) != 0:        ret += ', luck=%s'  % e['luck']
    if int(e['aircraftAtk']) != 0:  ret += ', bomb=%s'  % e['aircraftAtk']
    if int(e['airDef']) != 0:      ret += ', aa=%s'    % e['airDef']
    if float(e['airDefCorrect']) != 0: ret += ', aac=%d'  % (float(e['airDefCorrect']) * 100)
    if int(e['aluminiumUse']) != 0: ret += ', baux=%s'  % e['aluminiumUse']
    return ret + ' }'
 
def parse(data):
    f = open('data.lua', 'w')
    f.write('local equipts = { }\nlocal ships = { }\n\n')
 
    # equipment attributes
    f.write('-' * 100 + '\n\n')
    for equipt in data['shipEquipmnt']:
        #if equipt['picId'] == 998: continue
        if equipt['title'] == '喵' or equipt['title'] == '': continue
        f.write(getEquiptAttr(equipt))
        f.write('\n')
 
    # ship attributes
    f.write('\n' + '-' * 100 + '\n\n')
    ships = [ s for s in data['shipCard'] if int(s['npc']) == 0 and int(s['shipIndex']) < 2000 ]
    for s in ships:
        f.write(getShipAttr(s, ships, data['shipEquipmnt']))
        f.write('\n')
 
    # dialogue
    f.write('-' * 100 + '\n\n')
    for s in ships:
        f.write(getDialogue(s, ships))
 
    f.write('-' * 100 + '\n\n')
    f.write('return { equipts=equipts, ships=ships }')
    f.close()
 
def download():
    j = urlopen(url).read().decode('utf-8')
    return json.loads(j)
 
if __name__ == '__main__':
    data = download()
    parse(data)
</pre>

2016年10月17日 (一) 18:54的最新版本

from urllib.request import urlopen
import json

url = 'http://login.jianniang.com/index/getInitConfigs'

countryNames = [ '', '日本', '德国', '英国', '美国', '意大利', '法国', '苏联', '中国' ]
shipTypeNames = [ '', '航空母舰', '轻型航空母舰', '装甲航母', '战列舰', '航空战列舰', '战列巡洋舰', '重巡洋舰', \
        'CAV', 'CLT', '轻巡洋舰', '浅水重炮舰', '驱逐舰', 'SSV', '潜艇', '重炮潜艇', '补给舰' ]
rangeNames = [ '', '短', '中', '长', '超长' ]
coreNames = { 10441:'驱逐', 10341:'巡洋', 10241:'战列', 10141:'航母', 10541:'潜艇' }

remodelPostfix = '·改'
canNotEquip = '不可装备'
noEquipt = '无'
aquire = '获得'
day = '白天'
night = '夜间'
formation = '阵型'
attack = '攻击'
nightAttack = '夜战'
damaged = '中破'
vow = '誓约'
desc = '简介'

def getShipName(ship, allShips):
    name = ship['title'].strip()
    idx = int(ship['shipIndex'])
    if idx < 1000:
        return name

    orig = [ s for s in allShips if int(s['shipIndex']) == idx % 1000 ][0]
    if name == orig['title'].strip():
        name += remodelPostfix
    return name

def getShipAttr(ship, allShips, equipts):
    st = ship['strengthenTop']
    exp = ship['strengthenLevelUpExp']

    cap = [ 0 ] * 4
    if ship['capacityInit']:
        for i in range(len(ship['capacityInit'])):
            cap[i] = ship['capacityInit'][i]

    eq = [ canNotEquip ] * 4
    n = len(ship['equipment'])
    for i in range(n):
        eq[i] = [ e['title'] for e in equipts if e['cid'] == ship['equipment'][i] ][0]
    for i in range(n, ship['equipmentNum']):
        eq[i] = noEquipt

    ret = "ships['%s'] = {\n    " % getShipName(ship, allShips)

    ret += "index=%s, " % int(ship['shipIndex'])
    ret += "rarity=%s, " % ship['star']

    ret += "type='%s', " % shipTypeNames[ship['type']]
    if int(ship['country']) < 9:
        ret += "country='%s', " % countryNames[int(ship['country'])]
    ret += "class='%s', " % ship['classNo']

    ret = ret[:-1] + '\n    '

    ret += "hp=%s, " % ship['hp']
    ret += "atk=%s, " % ship['atk']
    ret += "tpd=%s, " % ship['torpedo']
    ret += "def=%s, " % ship['def']
    ret += "aa=%s, " % ship['airDef']
    ret += "eva=%s, " % ship['miss']
    ret += "as=%s, " % ship['antisub']
    ret += "rec=%s, " % ship['radar']
    ret += "speed=%s, " % ship['speed']
    ret += "luck=%s, " % ship['luck']
    ret += "range='%s', " % rangeNames[ship['range']]

    ret = ret[:-1] + '\n    '

    ret += "atkMax=%s, " % (int(ship['atk']) + st['atk'] // exp)
    ret += "tpdMax=%s, " % (int(ship['torpedo']) + st['torpedo'] // exp)
    ret += "defMax=%s, " % (ship['def'] + st['def'] // exp)
    ret += "aaMax=%s, " % (int(ship['airDef']) + st['air_def'] // exp)
    ret += "evaMax=%s, " % ship['missMax']
    ret += "asMax=%s, " % ship['antisubMax']
    ret += "recMax=%s, " % ship['radarMax']

    ret = ret[:-1] + '\n    '

    ret += "cap1=%s, " % cap[0]
    ret += "cap2=%s, " % cap[1]
    ret += "cap3=%s, " % cap[2]
    ret += "cap4=%s, " % cap[3]
    ret += "eq1='%s', " % eq[0]
    ret += "eq2='%s', " % eq[1]
    ret += "eq3='%s', " % eq[2]
    ret += "eq4='%s', " % eq[3]

    ret = ret[:-1] + '\n    '

    ret += "sFuel=%s, " % ship['maxOil']
    ret += "sAmmo=%s, " % ship['maxAmmo']
    ret += "rFuel=%s, " % ship['repairOilModulus']
    ret += "rSteel=%s, " % ship['repairSteelModulus']
    ret += "sAtk=%s, " % ship['strengthenSupplyExp']['atk']
    ret += "sTpd=%s, " % ship['strengthenSupplyExp']['torpedo']
    ret += "sDef=%s, " % ship['strengthenSupplyExp']['def']
    ret += "sAa=%s, " % ship['strengthenSupplyExp']['air_def']
    ret += "dFuel=%s, " % ship['dismantle']['2']
    ret += "dAmmo=%s, " % ship['dismantle']['3']
    ret += "dSteel=%s, " % ship['dismantle']['4']
    ret += "dBaux=%s, " % ship['dismantle']['9']

    t = [ s for s in allShips if int(s['shipIndex']) - int(ship['shipIndex']) == 1000 ]
    if len(t) != 0:
        mod = { '2':0, '3':0, '4':0, '9':0 }
        for k,v in ship['evoNeedResource'].items():
            mod[k] = v

        ret = ret[:-1] + '\n    '
        ret += "mod='%s', " % getShipName(t[0], allShips)
        ret += "modLv=%s, " % ship['evoLevel']
        ret += "coreType='%s', " % coreNames[ship['evoNeedItemCid']]
        ret += "coreNum=%s, " % ship['evoNeedResource'][str(ship['evoNeedItemCid'])]
        ret += "mFuel=%s, " % mod['2']
        ret += "mAmmo=%s, " % mod['3']
        ret += "mSteel=%s, " % mod['4']
        ret += "mBaux=%s, " % mod['9']

    return ret[:-2] + '\n}\n'

def getDialogue(ship, allShips):
    name = getShipName(ship, allShips)
    ret = "ships['" + name + "']['" + aquire + "'] = '" + ship['getDialogue'].strip() + "'\n"
    if ship['mainDialogue'] and ship['mainDialogue'][0]:
        ret += "ships['" + name + "']['" + day + "1'] = '" + ship['mainDialogue'][0].strip() + "'\n"
        ret += "ships['" + name + "']['" + day + "2'] = '" + ship['mainDialogue'][1].strip() + "'\n"
        ret += "ships['" + name + "']['" + day + "3'] = '" + ship['mainDialogue'][2].strip() + "'\n"
    if ship['mainDialogue'] and ship['mainDialogue'][6] != ship['mainDialogue'][0]:
        ret += "ships['" + name + "']['" + night + "1'] = '" + ship['mainDialogue'][6].strip() + "'\n"
        ret += "ships['" + name + "']['" + night + "2'] = '" + ship['mainDialogue'][7].strip() + "'\n"
        ret += "ships['" + name + "']['" + night + "3'] = '" + ship['mainDialogue'][8].strip() + "'\n"
    if ship['formationDialogue']:
        ret += "ships['" + name + "']['" + formation + "'] = '" + ship['formationDialogue'].strip() + "'\n"
    if ship['atkDialogue']:
        ret += "ships['" + name + "']['" + attack + "'] = '" + ship['atkDialogue'].strip() + "'\n"
    if ship['nightAtkDialogue']:
        ret += "ships['" + name + "']['" + nightAttack + "'] = '" + ship['nightAtkDialogue'].strip() + "'\n"
    if ship['breakDialogue']:
        ret += "ships['" + name + "']['" + damaged + "'] = '" + ship['breakDialogue'].strip() + "'\n"
    ret += "ships['" + name + "']['" + vow + "'] = '" + ship['vow'].strip() + "'\n"
    ret += "ships['" + name + "']['" + desc + "'] = '" + ship['desc'].strip() + "'\n"

    return ret + '\n'

def getEquiptAttr(e):
    ret = "equipts['%s'] = { " % e['title']
    ret += 'index=%s, rarity=%s' % (int(e['equipIndex']), e['star'])
    if int(e['atk']) != 0:          ret += ', atk=%s'   % e['atk']
    if int(e['def']) != 0:          ret += ', def=%s'   % e['def']
    if int(e['torpedo']) != 0:      ret += ', tpd=%s'   % e['torpedo']
    if int(e['antisub']) != 0:      ret += ', as=%s'    % e['antisub']
    if int(e['radar']) != 0:        ret += ', rec=%s'   % e['radar']
    if int(e['hit']) != 0:          ret += ', acc=%s'   % e['hit']
    if int(e['range']) != 0:        ret += ', range=%s' % e['range']
    if int(e['miss']) != 0:         ret += ', eva=%s'   % e['miss']
    if int(e['luck']) != 0:         ret += ', luck=%s'  % e['luck']
    if int(e['aircraftAtk']) != 0:  ret += ', bomb=%s'  % e['aircraftAtk']
    if int(e['airDef']) != 0:       ret += ', aa=%s'    % e['airDef']
    if float(e['airDefCorrect']) != 0: ret += ', aac=%d'   % (float(e['airDefCorrect']) * 100)
    if int(e['aluminiumUse']) != 0: ret += ', baux=%s'  % e['aluminiumUse']
    return ret + ' }'

def parse(data):
    f = open('data.lua', 'w')
    f.write('local equipts = { }\nlocal ships = { }\n\n')

    # equipment attributes
    f.write('-' * 100 + '\n\n')
    for equipt in data['shipEquipmnt']:
        #if equipt['picId'] == 998: continue
        if equipt['title'] == '喵' or equipt['title'] == '': continue
        f.write(getEquiptAttr(equipt))
        f.write('\n')

    # ship attributes
    f.write('\n' + '-' * 100 + '\n\n')
    ships = [ s for s in data['shipCard'] if int(s['npc']) == 0 and int(s['shipIndex']) < 2000 ]
    for s in ships:
        f.write(getShipAttr(s, ships, data['shipEquipmnt']))
        f.write('\n')

    # dialogue
    f.write('-' * 100 + '\n\n')
    for s in ships:
        f.write(getDialogue(s, ships))

    f.write('-' * 100 + '\n\n')
    f.write('return { equipts=equipts, ships=ships }')
    f.close()

def download():
    j = urlopen(url).read().decode('utf-8')
    return json.loads(j)

if __name__ == '__main__':
    data = download()
    parse(data)