Skip to content

Commit a904044

Browse files
authored
chom (#405)
1 parent ee6fc41 commit a904044

File tree

2 files changed

+94
-89
lines changed

2 files changed

+94
-89
lines changed
Lines changed: 2 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,7 @@
11
# pylint: disable=bare-except
22

3-
import hashlib
4-
import urllib
5-
from functools import lru_cache
6-
from datetime import datetime
7-
from typing import Callable
8-
9-
from conditional import app, packet_bp
10-
from conditional.models.models import FreshmanAccount, Freshman, UpperSignature
3+
from conditional import app
4+
from conditional.models.models import FreshmanAccount
115
from conditional.util.cache import service_cache
126
from conditional.util.ldap import ldap_get_member, ldap_is_current_student
137

@@ -45,84 +39,3 @@ def utility_processor():
4539
"get_member_name": get_member_name,
4640
"check_current_student": check_current_student,
4741
}
48-
49-
50-
# pylint: disable=bare-except
51-
@lru_cache(maxsize=128)
52-
def packet_get_csh_name(username: str) -> str:
53-
try:
54-
member = ldap_get_member(username)
55-
return member.cn + " (" + member.uid + ")"
56-
except:
57-
return username
58-
59-
60-
def get_roles(sig: UpperSignature) -> dict[str, str]:
61-
"""
62-
Converts a signature's role fields to a dict for ease of access.
63-
:return: A dictionary of role short names to role long names
64-
"""
65-
out = {}
66-
if sig.eboard:
67-
out["eboard"] = sig.eboard
68-
if sig.active_rtp:
69-
out["rtp"] = "RTP"
70-
if sig.three_da:
71-
out["three_da"] = "3DA"
72-
if sig.w_m:
73-
out["wm"] = "Wiki Maintainer"
74-
if sig.webmaster:
75-
out["webmaster"] = "Webmaster"
76-
if sig.c_m:
77-
out["cm"] = "Constitutional Maintainer"
78-
if sig.drink_admin:
79-
out["drink"] = "Drink Admin"
80-
return out
81-
82-
83-
# pylint: disable=bare-except
84-
@lru_cache(maxsize=256)
85-
def get_rit_name(username: str) -> str:
86-
try:
87-
freshman = Freshman.query.filter_by(rit_username=username).first()
88-
return freshman.name + " (" + username + ")"
89-
except:
90-
return username
91-
92-
93-
# pylint: disable=bare-except
94-
@lru_cache(maxsize=256)
95-
def get_rit_image(username: str) -> str:
96-
if username:
97-
addresses = [username + "@rit.edu", username + "@g.rit.edu"]
98-
for addr in addresses:
99-
url = (
100-
"https://gravatar.com/avatar/"
101-
+ hashlib.md5(addr.encode("utf8")).hexdigest()
102-
+ ".jpg?d=404&s=250"
103-
)
104-
try:
105-
with urllib.request.urlopen(url) as gravatar:
106-
if gravatar.getcode() == 200:
107-
return url
108-
except:
109-
continue
110-
return "https://www.gravatar.com/avatar/freshmen?d=mp&f=y"
111-
112-
113-
def log_time(label: str) -> None:
114-
"""
115-
Used during debugging to log timestamps while rendering templates
116-
"""
117-
print(label, datetime.now())
118-
119-
120-
@packet_bp.context_processor
121-
def packet_utility_processor() -> dict[str, Callable]:
122-
return {
123-
"get_csh_name": packet_get_csh_name,
124-
"get_rit_name": get_rit_name,
125-
"get_rit_image": get_rit_image,
126-
"log_time": log_time,
127-
"get_roles": get_roles,
128-
}
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# pylint: disable=bare-except
2+
3+
import hashlib
4+
import urllib
5+
from functools import lru_cache
6+
from datetime import datetime
7+
from typing import Callable
8+
9+
from conditional import packet_bp
10+
from conditional.models.models import Freshman, UpperSignature
11+
from conditional.util.ldap import ldap_get_member
12+
13+
14+
# pylint: disable=bare-except
15+
@lru_cache(maxsize=128)
16+
def packet_get_csh_name(username: str) -> str:
17+
try:
18+
member = ldap_get_member(username)
19+
return member.cn + " (" + member.uid + ")"
20+
except:
21+
return username
22+
23+
24+
def get_roles(sig: UpperSignature) -> dict[str, str]:
25+
"""
26+
Converts a signature's role fields to a dict for ease of access.
27+
:return: A dictionary of role short names to role long names
28+
"""
29+
out = {}
30+
if sig.eboard:
31+
out["eboard"] = sig.eboard
32+
if sig.active_rtp:
33+
out["rtp"] = "RTP"
34+
if sig.three_da:
35+
out["three_da"] = "3DA"
36+
if sig.w_m:
37+
out["wm"] = "Wiki Maintainer"
38+
if sig.webmaster:
39+
out["webmaster"] = "Webmaster"
40+
if sig.c_m:
41+
out["cm"] = "Constitutional Maintainer"
42+
if sig.drink_admin:
43+
out["drink"] = "Drink Admin"
44+
return out
45+
46+
47+
# pylint: disable=bare-except
48+
@lru_cache(maxsize=256)
49+
def get_rit_name(username: str) -> str:
50+
try:
51+
freshman = Freshman.query.filter_by(rit_username=username).first()
52+
return freshman.name + " (" + username + ")"
53+
except:
54+
return username
55+
56+
57+
# pylint: disable=bare-except
58+
@lru_cache(maxsize=256)
59+
def get_rit_image(username: str) -> str:
60+
if username:
61+
addresses = [username + "@rit.edu", username + "@g.rit.edu"]
62+
for addr in addresses:
63+
url = (
64+
"https://gravatar.com/avatar/"
65+
+ hashlib.md5(addr.encode("utf8")).hexdigest()
66+
+ ".jpg?d=404&s=250"
67+
)
68+
try:
69+
with urllib.request.urlopen(url) as gravatar:
70+
if gravatar.getcode() == 200:
71+
return url
72+
except:
73+
continue
74+
return "https://www.gravatar.com/avatar/freshmen?d=mp&f=y"
75+
76+
77+
def log_time(label: str) -> None:
78+
"""
79+
Used during debugging to log timestamps while rendering templates
80+
"""
81+
print(label, datetime.now())
82+
83+
84+
@packet_bp.context_processor
85+
def packet_utility_processor() -> dict[str, Callable]:
86+
return {
87+
"get_csh_name": packet_get_csh_name,
88+
"get_rit_name": get_rit_name,
89+
"get_rit_image": get_rit_image,
90+
"log_time": log_time,
91+
"get_roles": get_roles,
92+
}

0 commit comments

Comments
 (0)