-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgen_table.py
123 lines (103 loc) · 3.92 KB
/
gen_table.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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
import json
class gen_table:
content_file = ''
days = []
table_row0 = []
table_row1 = []
table_row2 = []
table_row3 = []
table_row4 = []
table_row5 = []
content = {}
table_data = {}
def __init__(self, content_file, days):
self.content_file = content_file
self.days = days
self.build_table_data()
self.build_table_body()
self.display_table()
@staticmethod
def save_json(data, file_name):
try:
with open(file_name, 'w') as fp:
json.dump(data, fp)
except (FileNotFoundError, FileExistsError, IOError) as err:
print(err)
@staticmethod
def load_json(file_name):
try:
with open(file_name, 'r') as fp:
return json.load(fp)
except (FileExistsError, IOError) as err:
print(err)
def build_table_data(self):
self.content = dict(self.load_json(self.content_file))
for day in self.content.keys():
for day_data in self.content[day].items():
key = str(day) + ":" + str(day_data[0])
self.table_data[key] = []
if day_data[1]['function'] == 'date':
for days in self.days:
if str(days.format('dddd')).lower() == day.lower():
text = str(days.format('DD-MMM')) + "<br>" + str(days.format('dddd'))
self.table_data[key].append({'text': text})
elif day_data[1]['function'] == 'info':
self.table_data[key].append({'text': day_data[1]['text']})
self.table_data[key].append({'bgcolor': day_data[1]['bgcolor']})
def build_table_body(self):
for table_data in self.table_data.items():
if ":0" in table_data[0]:
self.table_row0.append(self.build_td(table_data[1]))
elif ":1" in table_data[0]:
self.table_row1.append(self.build_td(table_data[1]))
elif ":2" in table_data[0]:
self.table_row2.append(self.build_td(table_data[1]))
elif ":3" in table_data[0]:
self.table_row3.append(self.build_td(table_data[1]))
elif ":4" in table_data[0]:
self.table_row4.append(self.build_td(table_data[1]))
elif ":5" in table_data[0]:
self.table_row5.append(self.build_td(table_data[1]))
def build_row(self, table_row):
row = ''
for cell in table_row:
row = row + cell
return row
def build_td(self, td_data):
cell = "<td bgcolor=" + td_data[1]['bgcolor'] + " align=center>"
cell = cell + td_data[0]['text']
cell = cell + "</td>"
return cell
def display_table(self):
print("<table border=1 width=100%>")
print("<tr>")
print("<td height=75 align=center></td>")
for table_row in self.table_row0:
print(self.build_row(table_row))
print("</tr>")
print("<tr>")
print("<td height=75 align=center>1</td>")
for table_row in self.table_row1:
print(self.build_row(table_row))
print("</tr>")
print("<tr>")
print("<td height=75 align=center>2</td>")
for table_row in self.table_row2:
print(self.build_row(table_row))
print("</tr>")
print("<tr>")
print("<td height=75 align=center>3</td>")
for table_row in self.table_row3:
print(self.build_row(table_row))
print("</tr>")
print("<tr>")
print("<td height=75 align=center>4</td>")
for table_row in self.table_row4:
print(self.build_row(table_row))
print("</tr>")
print("<tr>")
print("<td height=75 align=center>5</td>")
for table_row in self.table_row5:
print(self.build_row(table_row))
print("</tr>")
print("</table>")