|
|
|
|
|
|
153
|
# it's a /seum cmd
|
153
|
# it's a /seum cmd
|
|
154
|
m = re.sub(seum_cmd, r"\3", text)
|
154
|
m = re.sub(seum_cmd, r"\3", text)
|
|
155
|
maybe_counter = m.split(' ')[0]
|
155
|
maybe_counter = m.split(' ')[0]
|
|
156
|
- try:
|
|
|
|
157
|
- yes_counter = Counter.objects.get(trigramme=maybe_counter)
|
|
|
|
|
|
156
|
+ # allow multiple seums: /seum ABC+DEF Message
|
|
|
|
157
|
+ counters = [maybe_counter[i:i+3] for i in range(0, len(maybe_counter), 4)]
|
|
|
|
158
|
+ yes_counters = Counter.objects.filter(trigramme__in=counters)
|
|
|
|
159
|
+ seums_to_throw = []
|
|
|
|
160
|
+ user_counter = telegram_user.counter
|
|
|
|
161
|
+ if len(yes_counters):
|
|
158
|
seum_message = ' '.join(m.split(' ')[1:])
|
162
|
seum_message = ' '.join(m.split(' ')[1:])
|
|
159
|
- except Counter.DoesNotExist:
|
|
|
|
160
|
- yes_counter = telegram_user.counter
|
|
|
|
161
|
- seum_message = m
|
|
|
|
|
|
163
|
+ for counter in yes_counters:
|
|
|
|
164
|
+ seums_to_throw.append((user_counter, counter, seum_message))
|
|
|
|
165
|
+ # for non existing trigrams, we throw the seum to the seum giver
|
|
|
|
166
|
+ for not_a_counter in set(counters) - set([c.trigramme for c in yes_counters]):
|
|
|
|
167
|
+ seums_to_throw.append((user_counter, user_counter,
|
|
|
|
168
|
+ f"Trigramme {not_a_counter} qui n'existe pas du seum"))
|
|
|
|
169
|
+ else:
|
|
|
|
170
|
+ seums_to_throw.append((user_counter, user_counter, m))
|
|
162
|
|
171
|
|
|
163
|
- perform_reset(telegram_user.counter, yes_counter, seum_message)
|
|
|
|
|
|
172
|
+ for (who, counter, message) in seums_to_throw:
|
|
|
|
173
|
+ perform_reset(who, counter, message)
|
|
164
|
except TelegramUser.DoesNotExist:
|
174
|
except TelegramUser.DoesNotExist:
|
|
165
|
print('in that case we send a link to the user')
|
175
|
print('in that case we send a link to the user')
|
|
166
|
if chat['type'] == 'private' and chat['id'] == telegram_user_id:
|
176
|
if chat['type'] == 'private' and chat['id'] == telegram_user_id:
|