/
add_wagon.py
76 lines (69 loc) · 2.12 KB
/
add_wagon.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import json
import db
wagon_super_types = {
"xp" : "xp",
"passenger": "non_cargo",
"mail": "non_cargo"
# "cargo": ["rest"]
}
def add_wagon_type(wagon_type, name, capacity, profit, cargo):
db.open()
cur = db.conn.cursor()
sql = """
insert into wagon_types (super_type, type, name, capacity, profit, cargo)
values (?, ?, ?, ?, ?, ?)
"""
super_type = wagon_super_types.get(wagon_type, 'cargo')
cur.execute(sql, (super_type, wagon_type, name, capacity, profit, cargo))
last_id = cur.lastrowid
db.commit()
db.close()
return last_id
def get_wagon_type_id(name):
db.open()
cur = db.conn.cursor()
wagon_id = None
sql = 'select id from wagon_types where name = ?'
cur.execute(sql, (name, ))
res = cur.fetchone()
if res is not None:
wagon_id = res[0]
db.close()
return wagon_id
def add_wagon(name, wagon_type = None, capacity = None, profit = None, cargo = None):
sql = '''
insert into wagons (wagon_type_id)
values (?)
'''
wagon_id = get_wagon_type_id(name)
if wagon_id is None:
wagon_id = add_wagon_type(wagon_type, name, capacity, profit, cargo)
db.open()
cur = db.conn.cursor()
cur.execute(sql, (wagon_id, ))
last_id = cur.lastrowid
db.commit()
db.close()
return last_id
def add_wagon_json(wagon_dict):
count = wagon_dict.get("count", 1)
ids = []
for i in range(count):
wagon_type = wagon_dict.get("type")
name = wagon_dict.get("name")
capacity = wagon_dict.get("capacity")
profit = wagon_dict.get("profit")
cargo = wagon_dict.get("cargo")
ids.append(add_wagon(name, wagon_type, capacity, profit, cargo))
return ids
def load_wagons_file(file_name):
with open(file_name, 'r') as f:
content = f.read()
js = json.loads(content)
for i in range(len(js)):
this_entry = js[i]
add_wagon_json(this_entry)
if __name__ == '__main__':
# add_passenger_wagon('Grasshopper 1st', 200, 200)
load_wagons_file('data/new_wagons.json')
load_wagons_file('data/wagons.json')