-
Notifications
You must be signed in to change notification settings - Fork 2
/
reminders.py
78 lines (71 loc) · 2.7 KB
/
reminders.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
from typing import Dict, Any, List, Optional
from fun import get_top_image_from_subreddit
def slack_user_list_string(users):
if users is None or len(users) == 0:
return None
if len(users) == 1:
return f"<@{users[0]}>"
else:
return f"{', '.join([f'<@{u}>' for u in users[:-1]])} og <@{users[-1]}>"
def get_chores_messages(cleaners, is_communal, chores) -> Optional[List[str]]:
if chores is None:
return None
if is_communal:
return chores.communal
messages = [f"<@{cleaner}>\n{chores.pair[i]}" for i, cleaner in enumerate(cleaners[:2])]
if "special" in chores:
messages.append(f"<@{cleaners[2]}>\n{chores.special}")
return messages
def reminder_messages(cleaners, is_communal, chores) -> Dict[str, Any]:
alpha = {
"image_url": get_top_image_from_subreddit("tuckedinkitties"),
"pretext": "Ukas inntullede kattunge:",
"fallback": "😺🛏️"
}
beta_image = get_top_image_from_subreddit("CatsOnPizza")
if beta_image is not None:
beta = {
"image_url": beta_image,
"pretext": "Ukas katt på pizza:",
"fallback": "😺🍕"
}
else:
# Fallback to supermodel
beta = {
"image_url": get_top_image_from_subreddit("SupermodelCats"),
"pretext": "Ukas supermodell:",
"fallback": "😺💫"
}
chores_messages = get_chores_messages(cleaners, is_communal, chores)
return {
'alpha': {
'text': ":timer_clock::broom:\n" +
(
f"Ukas vaskere er {slack_user_list_string(cleaners)}"
if not is_communal else
f"Denne uka er det fellesvask <!channel>!"
) + ("\nOppgaver i :thread:" if chores_messages is not None else ""),
"attachments": [
{
**alpha,
"color": "#039BE5"
}
] if alpha["image_url"] is not None else None,
"chores": chores_messages
},
'beta': {
'text': ":broom::soap::sparkles:\n" +
(
f"{slack_user_list_string(cleaners)}, husk at dere er ukas beærede vaskere!"
if not is_communal else
"Minner om fellesvask denne uka <!channel>!"
) + ("\nOppgaver i :thread:" if chores_messages is not None else ""),
"attachments": [
{
**beta,
"color": "#2eb886"
}
] if beta["image_url"] is not None else None,
"chores": chores_messages
}
}