-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path3-listado-socios-categoria.py
executable file
·184 lines (156 loc) · 9.06 KB
/
3-listado-socios-categoria.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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
#!/usr/bin/env python
import common
print("Loading file from disk")
socios = common.readjson(filename="socios")
print("Procesando socios...")
def classifymembers(socios):
resultids = {
"activ": [], # Con actividades
"adult": [], # Adultos
"adultactiv": [], # Adultos con actividades
"adultsinactiv": [], # Adultos sin actividades
"invalid": [], # Socios sin ALTA activa
"kids-and-parents": [], # Niños y tutores
"kids": [], # Niños (CON y SIN)
"kidsactiv-and-parents": [], # Niños CON Actividades y tutores
"kidsactiv": [], # Niños CON Actividades
"kidsinactiv-and-parents": [], # Niños SIN Actividades y tutores
"kidsinactiv": [], # Niños SIN actividades
"profesores": [], # Profesores
"teen13-and-parents": [], # Niños y tutores [13-15)
"teen13": [], # Niños [13-15)
"teen15-and-parents": [], # Niños y tutores [15-24]
"teen15": [], # Niños [15-24]
"tutor": [], # Tutores
"valid": [], # Cualquiera con relación avast
}
# For each user check the custom fields that store the telegram ID for each tutor
for user in socios:
# try:
# fecha = dateutil.parser.parse(user["persona"]["dataNaixement"])
# except Exception:
# fecha = False
if isinstance(user["campsDinamics"], dict):
for field in common.telegramfields:
if field in user["campsDinamics"]:
try:
userid = user["campsDinamics"][field]
except:
userid = False
if userid:
if not (
"estat" in user
and user["estat"] == "COLESTVAL"
and "estatColegiat" in user
and user["estatColegiat"]["nom"] == "ESTALTA"
):
if (
"estat" in user
and user["estat"] == "COLESTVAL"
and "estatColegiat" in user
and user["estatColegiat"]["nom"] == "ESTPERLAB"
):
# We've ID but it's not in good status
resultids["profesores"].append(userid)
else:
# We've ID but it's not in good status
resultids["invalid"].append(userid)
else:
resultids["valid"].append(userid)
# if fecha:
# year, month, day = fecha.year, fecha.month, fecha.day
# edad = (
# today.year
# - year
# - ((today.month, today.day) < (month, day))
# )
# else:
# edad = False
if "colegiatHasModalitats" in user:
# Iterate over all categories for the user
for modalitat in user["colegiatHasModalitats"]:
if "modalitat" in modalitat:
# Save name for comparing the ones we target
agrupacionom = modalitat["modalitat"][
"agrupacio"
]["nom"].lower()
modalitatnom = modalitat["modalitat"][
"nom"
].lower()
# "activ": [], # Con actividades
# "adult": [], # Adultos
# "adultactiv": [], # Adultos con actividades
# "adultsinactiv": [], # Adultos sin actividades
# "invalid": [], # Socios sin ALTA activa
# "kid-and-parents": [], # Niños y tutores
# "kid": [], # Niños (CON y SIN)
# "kidactiv-and-parents": [], # Niños CON Actividades y tutores
# "kidactiv": [], # Niños CON Actividades
# "kidsinactiv-and-parents": [], # Niños SIN Actividades y tutores
# "kidsinactiv": [], # Niños SIN actividades
# "profesores": [], # Profesores
# "teen13-and-parents": [], # Niños y tutores [13-15)
# "teen13": [], # Niños [13-15)
# "teen15-and-parents": [], # Niños y tutores [15-24]
# "teen15": [], # Niños [15-24]
# "tutor": [], # Tutores
# "valid": [], # Cualquiera con relación avast
if "profesores".lower() in agrupacionom:
resultids["profesores"].append(userid)
if field != socios:
# Si no es socio, añadir a tutores
resultids["tutor"].append(userid)
if (
"Socio Adulto Actividades".lower()
in agrupacionom
):
resultids["adult"].append(userid)
resultids["adultactiv"].append(userid)
resultids["activ"].append(userid)
resultids["tutor"].append(userid)
if (
"Socio Adulto SIN Actividades".lower()
in agrupacionom
):
resultids["adult"].append(userid)
resultids["adultsinactiv"].append(userid)
resultids["tutor"].append(userid)
if "Socio Actividades".lower() in agrupacionom:
if field == common.socioid:
resultids["kids"].append(userid)
resultids["kidsactiv"].append(userid)
resultids["activ"].append(userid)
resultids["kidsactiv-and-parents"].append(
userid
)
if (
"Socio SIN Actividades".lower()
in agrupacionom
):
if field == common.socioid:
resultids["kids"].append(userid)
resultids["kidsinactiv"].append(userid)
resultids["kids-and-parents"].append(userid)
resultids["kidsinactiv-and-parents"].append(
userid
)
if "avast15".lower() in modalitatnom:
if field == common.socioid:
resultids["teen15"].append(userid)
resultids["teen15-and-parents"].append(
userid
)
if "avast13".lower() in modalitatnom:
if field == common.socioid:
resultids["teen13"].append(userid)
resultids["teen13-and-parents"].append(
userid
)
# Remove duplicates
for item in resultids:
resultids[item] = sorted(set(resultids[item]))
# pprint.pprint(resultids)
return resultids
resultids = classifymembers(socios)
for item in resultids:
print(item, len(resultids[item]))