507 lines
21 KiB
Python
Executable File
507 lines
21 KiB
Python
Executable File
#!/usr/bin/python
|
|
import csv
|
|
import os
|
|
import getopt
|
|
import sys
|
|
|
|
class sql_generator(object):
|
|
def __init__( self ):
|
|
self.project = None
|
|
self.subdir = None
|
|
self.ins_gear_type = list()
|
|
self.ins_charge_type = list()
|
|
self.upd_charge_type = list()
|
|
self.ins_gear_type_charge_type = list()
|
|
self.ins_igniter_type = list()
|
|
self.ins_igniter_function = list()
|
|
self.ins_charge_type_igniter_type_igniter_function = list()
|
|
self.ins_load_type = list()
|
|
self.ins_charge_type_load_type = list()
|
|
self.ins_building_charge_effect = list()
|
|
self.ins_can_component_string = list()
|
|
self.ins_bite_component_text = list()
|
|
self.ins_pdm_equipment_system_event_filter = list()
|
|
self.ins_pdm_event_filter_hgr_mine_search = list()
|
|
self.ins_radio_group = list()
|
|
self.ins_fire_purpose = list()
|
|
self.ins_target_type = list()
|
|
self.ins_target_subtype = list()
|
|
self.ins_target_type_target_subtype = list()
|
|
self.ins_nuclear_preset = list()
|
|
self.ins_vulnerability_kind = list()
|
|
self.ins_translation = list()
|
|
self.csv_header = None
|
|
self.translation_header = []
|
|
self.translation_lang = []
|
|
self.default_header = []
|
|
self.default_language = 'de_DE'
|
|
|
|
def initialize(self):
|
|
if self.project == None:
|
|
print >> sys.stderr, "No project given"
|
|
sys.exit(1)
|
|
|
|
def execute(self):
|
|
self.subdir = self.project+'_pdm'
|
|
print >> sys.stderr, "Looking into dir %s" % self.subdir
|
|
|
|
print '\nDo not forget to convert the files from CP850 to UTF-8!\n'
|
|
print 'for f in `ls -1 *csv`; do iconv -f cp850 -t utf-8 -o $f.out $f; mv $f.out $f; done'
|
|
print 'or'
|
|
print 'for f in `ls -1 *csv`; do iconv -f iso8859-1 -t utf-8 -o $f.out $f; mv $f.out $f; done\n\n'
|
|
print 'depending on the used excel version / export settings'
|
|
|
|
self.read_csv('charge_type.csv', self.charge_type);
|
|
self.read_csv('gear_type.csv', self.gear_type);
|
|
self.read_csv('igniter_type.csv', self.igniter_type);
|
|
self.read_csv('igniter_function.csv', self.igniter_function);
|
|
self.read_csv('charge_type_igniter_type_igniter_function.csv', self.charge_type_igniter_type_igniter_function);
|
|
self.read_csv('load_type.csv', self.load_type);
|
|
self.read_csv('charge_type_load_type.csv', self.charge_type_load_type);
|
|
self.read_csv('building_charge_effect.csv', self.building_charge_effect);
|
|
self.read_csv('can_component_string.csv', self.can_component_string);
|
|
self.read_csv('bite_component_text.csv', self.bite_component_text);
|
|
self.read_csv('event_filter_hgr_mine_search.csv', self.event_filter_hgr_mine_search);
|
|
self.read_csv('equipment_system_event_filter.csv', self.equipment_system_event_filter);
|
|
self.read_csv('radio_group.csv', self.radio_group);
|
|
self.read_csv('fire_purpose.csv', self.fire_purpose);
|
|
self.read_csv('target_type.csv', self.target_type);
|
|
self.read_csv('target_subtype.csv', self.target_subtype);
|
|
self.read_csv('target_type_target_subtype.csv', self.target_type_target_subtype);
|
|
self.read_csv('nuclear_preset.csv', self.nuclear_preset);
|
|
self.read_csv('vulnerability_kind.csv', self.vulnerability_kind);
|
|
|
|
# self.read_csv('type_class.csv', self.vulnerability_kind);
|
|
# self.read_csv('gear_class.csv', self.vulnerability_kind);
|
|
|
|
|
|
f = open(self.project + '_pdm_values.sql', 'wt')
|
|
head = """-- # $Id$
|
|
-- # $HeadURL$
|
|
-- # $Author$"""
|
|
f.write(head)
|
|
warning = '\n\n--- This file is automatically generated by pdm_csv_to_sql.py from csv (xls) files - do not modify here directly!'
|
|
f.write(warning)
|
|
f.write('\nBEGIN;\n-- pdm_gear_type\n')
|
|
f.write('\n'.join(str(e) for e in self.ins_gear_type))
|
|
f.write(warning)
|
|
f.write('\n\n-- charge_type\n')
|
|
f.write('\n'.join(str(e) for e in self.ins_charge_type))
|
|
f.write(warning)
|
|
f.write('\n\n-- gear_type_charge_type\n')
|
|
f.write('\n'.join(str(e) for e in self.ins_gear_type_charge_type))
|
|
f.write(warning)
|
|
f.write('\n\n-- igniter_type\n')
|
|
f.write('\n'.join(str(e) for e in self.ins_igniter_type))
|
|
f.write(warning)
|
|
f.write('\n\n-- igniter_function\n')
|
|
f.write('\n'.join(str(e) for e in self.ins_igniter_function))
|
|
f.write(warning)
|
|
f.write('\n\n-- charge_type_igniter_type_igniter_function\n')
|
|
f.write('\n'.join(str(e) for e in self.ins_charge_type_igniter_type_igniter_function))
|
|
f.write(warning)
|
|
f.write('\n\n-- load_type\n')
|
|
f.write('\n'.join(str(e) for e in self.ins_load_type))
|
|
f.write(warning)
|
|
f.write('\n\n-- charge_type_load_type\n')
|
|
f.write('\n'.join(str(e) for e in self.ins_charge_type_load_type))
|
|
f.write(warning)
|
|
f.write('\n\n-- building_charge_effect\n')
|
|
f.write('\n'.join(str(e) for e in self.ins_building_charge_effect))
|
|
f.write(warning)
|
|
f.write('\n\n-- can_component_string\n')
|
|
f.write('\n'.join(str(e) for e in self.ins_can_component_string))
|
|
f.write(warning)
|
|
f.write('\n\n-- bite_component_text\n')
|
|
f.write('\n'.join(str(e) for e in self.ins_bite_component_text))
|
|
f.write(warning)
|
|
f.write('\n\n-- pdm_equipment_system_event_filter\n')
|
|
f.write('\n'.join(str(e) for e in self.ins_pdm_equipment_system_event_filter))
|
|
f.write(warning)
|
|
f.write('\n\n-- pdm_event_filter_hgr_mine_search\n')
|
|
f.write('\n'.join(str(e) for e in self.ins_pdm_event_filter_hgr_mine_search))
|
|
f.write(warning)
|
|
f.write('\n\n-- radio_group\n')
|
|
f.write('\n'.join(str(e) for e in self.ins_radio_group))
|
|
f.write(warning)
|
|
f.write('\n\n-- fire_purpose\n')
|
|
f.write('\n'.join(str(e) for e in self.ins_fire_purpose))
|
|
f.write(warning)
|
|
f.write('\n\n-- target_type\n')
|
|
f.write('\n'.join(str(e) for e in self.ins_target_type))
|
|
f.write(warning)
|
|
f.write('\n\n-- target_subtype\n')
|
|
f.write('\n'.join(str(e) for e in self.ins_target_subtype))
|
|
f.write(warning)
|
|
f.write('\n\n-- targe_type_target_subtype\n')
|
|
f.write('\n'.join(str(e) for e in self.ins_target_type_target_subtype))
|
|
f.write(warning)
|
|
f.write('\n\n-- nuclear_preset\n')
|
|
f.write('\n'.join(str(e) for e in self.ins_nuclear_preset))
|
|
f.write(warning)
|
|
f.write('\n\n-- vulnerability_kind\n')
|
|
f.write('\n'.join(str(e) for e in self.ins_vulnerability_kind))
|
|
f.write(warning)
|
|
f.write('\n\n-- translation\n')
|
|
f.write('\n'.join(str(e) for e in self.ins_translation))
|
|
f.write('\nCOMMIT;\n-- END\n')
|
|
|
|
f2 = open(self.project + '_pdm_charge_type_update.sql', 'wt')
|
|
f2.write(head)
|
|
f2.write(warning)
|
|
f2.write('\nBEGIN;\n-- charge_type (update)\n')
|
|
f2.write('\n'.join(str(e) for e in self.upd_charge_type))
|
|
f2.write(warning)
|
|
f2.write('\nCOMMIT;\n-- END\n')
|
|
|
|
def read_csv(self, filename, func):
|
|
print 'parsing %s' % filename
|
|
reader = csv.reader(open(os.path.join(self.subdir, filename), 'rt'), delimiter = ';')
|
|
self.parseHeader(reader)
|
|
for a in reader:
|
|
func(a)
|
|
|
|
def parseHeader(self, reader):
|
|
self.translation_header = []
|
|
self.default_header = []
|
|
self.csv_header = next(reader, None)
|
|
for i in range(0, len(self.csv_header)):
|
|
h = self.csv_header[i]
|
|
if '[' in h and h.endswith(']'):
|
|
lang = h[h.index('[') + 1:-1]
|
|
if lang == self.default_language:
|
|
self.default_header.append(i)
|
|
else:
|
|
self.translation_header.append(i)
|
|
self.translation_lang.append(lang)
|
|
|
|
def toBool(self, val):
|
|
if val == '':
|
|
return 'false'
|
|
if val == 'true' or val == '1':
|
|
return 'true'
|
|
if val == 'false' or val == '0':
|
|
return 'false'
|
|
if bool(val):
|
|
return 'true'
|
|
return 'false'
|
|
|
|
def toInt(self, val):
|
|
if val == '':
|
|
return 'NULL'
|
|
return int(val, 0)
|
|
|
|
def toFloat(self, val):
|
|
val = val.replace(',', '.')
|
|
if val == '':
|
|
return 0
|
|
return float(val)
|
|
|
|
def toString(self, val):
|
|
if val == '':
|
|
return 'NULL'
|
|
return "'" + val + "'"
|
|
|
|
def toJson(self, val):
|
|
return self.toString(val) # for now
|
|
|
|
def create_translation(self, array_idx, line, context, disambiguation):
|
|
iso_code = self.translation_lang[array_idx]
|
|
key = line[self.default_header[array_idx]]
|
|
i18n = line[self.translation_header[array_idx]]
|
|
if len(i18n) == 0:
|
|
return
|
|
self.ins_translation.append("INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES (%s, %s, %s, %s, %s);" % (self.toString(iso_code), self.toString(disambiguation), self.toString(context), self.toString(key), self.toString(i18n)))
|
|
|
|
def gear_type(self, line):
|
|
if len(line[0]) == 0:
|
|
return
|
|
# id;tas_code;name [de_DE];name [en_GB];gear_class_id
|
|
id = self.toInt(line[0])
|
|
|
|
self.ins_gear_type.append("INSERT INTO pdm.pdm_gear_type (id, tas_code, name, gear_class_id, properties) VALUES (%s, %s, %s, %s, %s);" % (id, self.toInt(line[1]), self.toString(line[2]), self.toInt(line[4]), self.toString(line[5])))
|
|
|
|
self.create_translation(0, line, 'GearType', 'name')
|
|
|
|
def charge_type(self, line):
|
|
if len(line[0]) == 0:
|
|
return
|
|
# 0- 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14
|
|
# id,legacy_id,given_name,name [de_DE],shortName [de_DE],name [en_GB],shortName [en_GB],properties,gear_type,max_range,properties,gear_type,max_range,properties,dis_code
|
|
|
|
id = self.toInt(line[0])
|
|
legacy_id = self.toInt(line[1])
|
|
predefined_name = self.toString(line[2])
|
|
name = self.toString(line[3])
|
|
short_name = self.toString(line[4])
|
|
props = self.toJson(line[7])
|
|
dis_entity = self.toJson(line[14]) if len(line) > 14 else 'NULL';
|
|
properties_1 = self.toJson(line[10])
|
|
properties_2 = self.toJson(line[13])
|
|
|
|
self.ins_charge_type.append("INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (%s, %s, %s, %s, %s, %s, %s);" % (id, predefined_name, name, short_name, props, dis_entity, legacy_id))
|
|
|
|
self.upd_charge_type.append("UPDATE pdm.pdm_charge_type SET predefined_name = %s, name = %s, short_name = %s, properties = %s, dis_entity = %s, charge_legacy_id = %s WHERE ID = %s;" % (predefined_name, name, short_name, props, dis_entity, legacy_id, id))
|
|
|
|
for i in (8,11):
|
|
if i >= len(line): break
|
|
gt = line[i]
|
|
if gt == '': continue
|
|
range = ''
|
|
if i + 1 < len(line):
|
|
range = line[i+1]
|
|
if properties_1 == "NULL":
|
|
self.ins_gear_type_charge_type.append("INSERT INTO pdm.pdm_gear_type_charge_type (gear_type_id, charge_type_id, max_range) VALUES (%s, %s, %s);" % (gt, id, self.toInt(range)))
|
|
else:
|
|
self.ins_gear_type_charge_type.append("INSERT INTO pdm.pdm_gear_type_charge_type (gear_type_id, charge_type_id, max_range, properties) VALUES (%s, %s, %s, %s);" % (gt, id, self.toInt(range), properties_1))
|
|
|
|
self.create_translation(0, line, 'ChargeType', 'name')
|
|
self.create_translation(1, line, 'ChargeType', 'shortName')
|
|
|
|
def igniter_type(self, line):
|
|
if len(line[0]) == 0:
|
|
return
|
|
# id;name [de_DE];shortName [de_DE],name [en_GB];shortName [en_GB];properties
|
|
id = self.toInt(line[0])
|
|
name = self.toString(line[1])
|
|
short_name = self.toString(line[2])
|
|
props = self.toJson(line[5])
|
|
|
|
self.ins_igniter_type.append("INSERT INTO pdm.pdm_igniter_type (id, name, short_name, properties) VALUES (%s, %s, %s, %s);" % (id, name, short_name, props))
|
|
|
|
self.create_translation(0, line, 'IngiterType', 'name')
|
|
self.create_translation(1, line, 'IgniterType', 'shortName')
|
|
|
|
def igniter_function(self, line):
|
|
if len(line[0]) == 0:
|
|
return
|
|
# id;name [de_DE];shortName [de_DE],name [en_GB];shortName [en_GB];properties
|
|
id = self.toInt(line[0])
|
|
name = self.toString(line[1])
|
|
short_name = self.toString(line[2])
|
|
props = self.toJson(line[5])
|
|
|
|
self.ins_igniter_function.append("INSERT INTO pdm.pdm_igniter_function (id, name, short_name, properties) VALUES (%s, %s, %s, %s);" % (id, name, short_name, props))
|
|
|
|
self.create_translation(0, line, 'IngiterFunction', 'name')
|
|
self.create_translation(1, line, 'IgniterFunction', 'shortName')
|
|
|
|
def charge_type_igniter_type_igniter_function(self, line):
|
|
if len(line[0]) == 0:
|
|
return
|
|
# charge_type_id;igniter_type_id;igniter_function_id;impact_area,impact_radius;hazard_distance;charge_legacy_id;igniter_function_base_id;properties
|
|
charge_type_id = self.toInt(line[0])
|
|
igniter_type_id = self.toInt(line[1])
|
|
igniter_function_id = self.toInt(line[2])
|
|
impact_area = self.toJson(line[3])
|
|
impact_radius = self.toInt(line[4])
|
|
hazard_distance = self.toInt(line[5])
|
|
charge_legacy_id = self.toInt(line[6])
|
|
igniter_function_base_id = self.toInt(line[7])
|
|
props = self.toJson(line[8])
|
|
|
|
self.ins_charge_type_igniter_type_igniter_function.append("INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s);" % (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, props))
|
|
|
|
def load_type(self, line):
|
|
if len(line[0]) == 0:
|
|
return
|
|
# id;name [de_DE];shortName [de_DE],name [en_GB];shortName [en_GB];properties
|
|
id = self.toInt(line[0])
|
|
name = self.toString(line[1])
|
|
short_name = self.toString(line[2])
|
|
props = self.toJson(line[5])
|
|
|
|
self.ins_load_type.append("INSERT INTO pdm.pdm_load_type (id, name, short_name, properties) VALUES (%s, %s, %s, %s);" % (id, name, short_name, props))
|
|
|
|
self.create_translation(0, line, 'LoadType', 'name')
|
|
self.create_translation(1, line, 'LoadType', 'shortName')
|
|
|
|
def charge_type_load_type(self, line):
|
|
if len(line[0]) == 0:
|
|
return
|
|
# charge_type_id;load_type_id;numbers;properties
|
|
charge_type_id = self.toInt(line[0])
|
|
load_type_id = self.toInt(line[1])
|
|
numbers = self.toString(line[2])
|
|
props = self.toJson(line[3])
|
|
|
|
self.ins_charge_type_load_type.append("INSERT INTO pdm.pdm_charge_type_load_type (charge_type_id, load_type_id, numbers, properties) VALUES (%s, %s, %s, %s);" % (charge_type_id, load_type_id, numbers, props))
|
|
|
|
|
|
def building_charge_effect(self, line):
|
|
if len(line[0]) == 0:
|
|
return
|
|
# id, charge_type_id;destructive_factor;penetration_factor;hit_sound;difcue_light;difcue_pyro
|
|
|
|
ky = self.toInt(line[0])
|
|
ct = self.toInt(line[1])
|
|
df = self.toInt(line[2])
|
|
pf = self.toInt(line[3])
|
|
hs = self.toInt(line[4])
|
|
dl = self.toBool(line[5])
|
|
dp = self.toBool(line[6])
|
|
|
|
self.ins_building_charge_effect.append("INSERT INTO pdm.pdm_building_charge_effect (id, charge_type_id, destructive_factor, penetration_factor, hit_sound, difcue_light, difcue_pyro) VALUES (%s, %s, %s, %s, %s, %s, %s);" % (ky, ct, df, pf, hs, dl, dp))
|
|
|
|
def can_component_string(self, line):
|
|
if len(line[0]) == 0:
|
|
return
|
|
|
|
# name [de_DE], name [en_GB], bit_mask, can_device_id, sub_device_id
|
|
name = self.toString(line[0])
|
|
bm = self.toInt(line[2])
|
|
cd = self.toInt(line[3])
|
|
sd = self.toInt(line[4])
|
|
self.ins_can_component_string.append("INSERT INTO pdm.pdm_can_component_string (name, bit_mask, can_device_id, sub_device_id) VALUES (%s, %s, %s, %s);" % (name, bm, cd, sd))
|
|
self.create_translation(0, line, 'CanComponentString', 'name')
|
|
|
|
def bite_component_text(self, line):
|
|
if len(line[0]) == 0:
|
|
return
|
|
|
|
# can_device_id, sub_device_id, error_number, name
|
|
name = self.toString(line[0])
|
|
cd = self.toInt(line[2])
|
|
sd = self.toInt(line[3])
|
|
er = self.toInt(line[4])
|
|
self.ins_bite_component_text.append("INSERT INTO pdm.pdm_bite_component_text (name, can_device_id, sub_device_id, error_number) VALUES (%s, %s, %s, %s);" % (name, cd, sd, er))
|
|
self.create_translation(0, line, 'BiteComponentText', 'name')
|
|
|
|
def equipment_system_event_filter(self, line):
|
|
if len(line[0]) == 0:
|
|
return
|
|
|
|
# equipment_functional_id, sub_device_id, device_specific_code, hgr_mine_search_filter_type_id
|
|
ef = self.toInt(line[0])
|
|
sd = self.toInt(line[1])
|
|
dsc = self.toInt(line[2])
|
|
hgr = self.toInt(line[3])
|
|
self.ins_pdm_equipment_system_event_filter.append("INSERT INTO pdm.pdm_equipment_system_event_filter (equipment_functional_id, sub_device_id, device_specific_code, hgr_mine_search_filter_type_id) VALUES (%s, %s, %s, %s);" % (ef, sd, dsc, hgr))
|
|
|
|
def event_filter_hgr_mine_search(self, line):
|
|
if len(line[0]) == 0:
|
|
return
|
|
|
|
# hgr_mine_search_filter_type_idm, charge_type_id
|
|
hgr = self.toInt(line[0])
|
|
ct = self.toInt(line[1])
|
|
self.ins_pdm_event_filter_hgr_mine_search.append("INSERT INTO pdm.pdm_event_filter_hgr_mine_search (hgr_mine_search_filter_type_id, charge_type_id) VALUES (%s, %s);" % (hgr, ct))
|
|
|
|
def radio_group(self, line):
|
|
if len(line[0]) == 0:
|
|
return
|
|
|
|
txt = (self.toInt(line[0]), self.toString(line[1]), self.toBool(line[2]), self.toInt(line[3]), self.toInt(line[4]), self.toInt(line[5]), self.toString(line[6]), self.toInt(line[7]), self.toString(line[8]), self.toInt(line[9]))
|
|
if len(line) > 10:
|
|
self.create_translation(0, line, 'RadioGroup', 'name')
|
|
# id, name[def], base_group, issi, group_issi1, group_issi2, radio_hostname, radio_port, radio_backup_hostname, radio_backup_port, name[en_GB] (optional)
|
|
self.ins_radio_group.append("INSERT INTO pdm.pdm_radio_group (id, name, base_group, issi, group_issi1, group_issi2, radio_hostname, radio_port, radio_backup_hostname, radio_backup_port) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s);" % txt);
|
|
|
|
def fire_purpose(self, line):
|
|
if len(line[0]) == 0:
|
|
return
|
|
|
|
# id, name [de_DE], name [en_GB], Description, properties
|
|
id = self.toInt(line[0])
|
|
name = self.toString(line[1])
|
|
props = self.toJson(line[4])
|
|
txt = (id, name, props)
|
|
self.ins_fire_purpose.append("INSERT INTO pdm.pdm_fire_purpose (id, name, properties) VALUES (%s, %s, %s);" % txt)
|
|
self.create_translation(0, line, 'FirePurpose', 'name')
|
|
|
|
def target_type(self, line):
|
|
if len(line[0]) == 0:
|
|
return
|
|
|
|
# id, name [de_DE], name [en_GB], abbreviation
|
|
id = self.toInt(line[0])
|
|
name = self.toString(line[1])
|
|
abbr = self.toString(line[3])
|
|
props = self.toJson(line[4])
|
|
txt = (id, name, abbr, props)
|
|
self.ins_target_type.append("INSERT INTO pdm.pdm_target_type (id, name, abbreviation, properties) VALUES (%s, %s, %s, %s);" % txt)
|
|
self.create_translation(0, line, 'TargetType', 'name')
|
|
|
|
def target_subtype(self, line):
|
|
if len(line[0]) == 0:
|
|
return
|
|
|
|
# id, name [de_DE], name [en_GB], abbreviation
|
|
id = self.toInt(line[0])
|
|
name = self.toString(line[1])
|
|
abbr = self.toString(line[3])
|
|
props = self.toJson(line[4])
|
|
txt = (id, name, abbr, props)
|
|
self.ins_target_subtype.append("INSERT INTO pdm.pdm_target_subtype (id, name, abbreviation, properties) VALUES (%s, %s, %s, %s);" % txt)
|
|
self.create_translation(0, line, 'TargetSubType', 'name')
|
|
|
|
|
|
def target_type_target_subtype(self, line):
|
|
if len(line[0]) == 0:
|
|
return
|
|
|
|
# target_type_id;target_subtype_id
|
|
targetTypeId = self.toInt(line[0])
|
|
targetSubtypeId = self.toString(line[1])
|
|
props = self.toJson(line[2])
|
|
txt = (targetTypeId, targetSubtypeId, props)
|
|
self.ins_target_type_target_subtype.append("INSERT INTO pdm.pdm_target_type_target_subtype (target_type_id, target_subtype_id, properties) VALUES (%s, %s, %s);" % txt)
|
|
|
|
def nuclear_preset(self, line):
|
|
if len(line[0]) == 0:
|
|
return
|
|
|
|
# id name [de_DE] name [en_GB] detonation_value impact_radius border_length_inner border_length_outer
|
|
id = self.toInt(line[0])
|
|
name = self.toString(line[1])
|
|
det = self.toFloat(line[3])
|
|
imp = self.toInt(line[4])
|
|
bli = self.toInt(line[5])
|
|
blo = self.toInt(line[6])
|
|
txt = (id, name, det, imp, bli, blo)
|
|
self.ins_nuclear_preset.append("INSERT INTO pdm.pdm_nuclear_preset (id, name, detonation_value, impact_radius, border_length_inner, border_length_outer) VALUES (%s, %s, %s, %s, %s, %s);" % txt)
|
|
self.create_translation(0, line, 'NuclearPreset', 'name')
|
|
|
|
def vulnerability_kind(self, line):
|
|
if len(line[0]) == 0:
|
|
return
|
|
|
|
# player_type_class_id;ta_vulnerability_kind;vulnerability_class_id;name [de_DE];name [en_GB];Teilnehmer-Name;Teilnehmer-Typ;Index;Fallback
|
|
id = self.toInt(line[0])
|
|
kind = self.toInt(line[1])
|
|
cls = self.toInt(line[2])
|
|
name = self.toString(line[3])
|
|
txt = (id, kind, cls, name)
|
|
self.ins_vulnerability_kind.append("INSERT INTO pdm.pdm_vulnerability_kind (player_type_class_id, ta_vulnerability_kind, vulnerability_class_id, name) VALUES (%s, %s, %s, %s);" % txt)
|
|
self.create_translation(0, line, 'VulnerabilityKind', 'name')
|
|
|
|
def usage():
|
|
print "Usage: %s <Options>" % sys.argv[0]
|
|
print "usage: $0 -p <project>"
|
|
print " -p (--project) : guez / ahtc "
|
|
|
|
def main():
|
|
|
|
p = sql_generator()
|
|
|
|
try:
|
|
opts, args = getopt.getopt(sys.argv[1:], "p:", ["project"])
|
|
except getopt.GetoptError, err:
|
|
print >> sys.stderr, err
|
|
usage()
|
|
sys.exit(2)
|
|
for o, a in opts:
|
|
if o in ("-p", "--project"):
|
|
p.project = a
|
|
print >> sys.stderr, "PROJECT: %s" % a
|
|
|
|
p.initialize()
|
|
|
|
p.execute()
|
|
|
|
sys.exit(0)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
|