-
Notifications
You must be signed in to change notification settings - Fork 10
/
filters.py
141 lines (123 loc) · 4.23 KB
/
filters.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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
import flask
from datetime import datetime
from app.constants import teamDict, teamShortDict, comparisonchoices, standingsglossary
blueprint = flask.Blueprint('filters', __name__)
@blueprint.app_template_filter()
def format_currency(value):
value = round(value,0)
return "${:,.0f}".format(value)
@blueprint.app_template_filter()
def get_team_color(team, primary=True):
for line in open("teamcolors.csv"):
line = line.replace("\n", "").split(",")
try:
names = [line[1], line[4], line[5]]
print names
if team in names:
if primary is True:
return line[2]
else:
return line[3]
except:
pass
@blueprint.app_template_filter()
def tooltip_standings(column):
return find_tooltip(column, standingsglossary)
@blueprint.app_template_filter()
def tooltip(column):
return find_tooltip(column, comparisonchoices)
def find_tooltip(column, choices):
for choice in choices:
if choice[0] == column:
return choice[1]
return column
@blueprint.app_template_filter()
def format_date(value):
dateObj = datetime.strptime(value, "%Y-%m-%d")
return dateObj.strftime('%b %-d, %Y')
@blueprint.app_template_filter()
def teamname(value):
for team in teamDict:
if teamDict[team] == value:
return team
return value
@blueprint.app_template_filter()
def teamshortname(value):
for team in teamShortDict:
if teamShortDict[team] == value:
return team
return value
@blueprint.app_template_filter()
def get_status(value):
try:
if value.status == 3:
if value.seconds > 3600:
return "Final (OT)"
return "Final"
elif value.status == 4:
return "Not Started"
elif value.status == 2:
ps = 0
period = "1st"
if value.seconds < 1200:
ps = value.seconds
period = "1st"
elif value.seconds == 1200:
return "End of 1st"
elif value.seconds > 1200 and value.seconds < 2400:
ps = value.seconds - 1200
period = "2nd"
elif value.seconds == 2400:
return "End of 2nd"
elif value.seconds > 2400 and value.seconds < 3600:
ps = value.seconds - 2400
period = "3rd"
elif value.seconds == "3600":
return "End of 3rd"
else:
ps = value.seconds - 3600
period = "OT"
minutes, seconds = divmod(ps, 60)
seconds = str(int(60 - seconds))
if len(seconds) == 1:
seconds = "0" + seconds
return str(int(19 - minutes)) + ":" + seconds + ", " + period
return value.status
except:
if value["status"] == 3:
if value["seconds"] > 3600:
return "Final (OT)"
return "Final"
elif value["status"] == 4:
return "Not Started"
elif value["status"] == 2:
ps = 0
period = "1st"
if value["seconds"] < 1200:
ps = value["seconds"]
period = "1st"
elif value["seconds"] == 1200:
return "End of 1st"
elif value["seconds"] > 1200 and value["seconds"] < 2400:
ps = value["seconds"] - 1200
period = "2nd"
elif value["seconds"] == 2400:
return "End of 2nd"
elif value["seconds"] > 2400 and value["seconds"] < 3600:
ps = value["seconds"] - 2400
period = "3rd"
elif value["seconds"] == "3600":
return "End of 3rd"
else:
ps = value["seconds"] - 3600
period = "OT"
minutes, seconds = divmod(ps, 60)
seconds = str(int(60 - seconds))
if len(seconds) == 1:
seconds = "0" + seconds
return str(int(19 - minutes)) + ":" + seconds + ", " + period
return value["status"]
@blueprint.app_template_filter()
def calc_toi(seconds):
m, s = divmod(seconds, 60)
return str(int(m)) + ":" + str(s)