mirror of
https://github.com/zulip/zulip.git
synced 2025-11-11 17:36:27 +00:00
35 lines
1.0 KiB
Python
35 lines
1.0 KiB
Python
import re
|
|
|
|
import zerver.models
|
|
|
|
import itertools
|
|
import logging
|
|
import ujson
|
|
|
|
def alert_words_in_realm(realm):
|
|
users = zerver.models.UserProfile.objects.filter(realm=realm, is_active=True)
|
|
all_user_words = dict((user, user_alert_words(user)) for user in users)
|
|
users_with_words = dict((u, w) for (u, w) in all_user_words.iteritems() if len(w))
|
|
return users_with_words
|
|
|
|
def user_alert_words(user_profile):
|
|
return ujson.loads(user_profile.alert_words)
|
|
|
|
def add_user_alert_words(user_profile, alert_words):
|
|
words = user_alert_words(user_profile)
|
|
|
|
new_words = [w for w in alert_words if not w in words]
|
|
words.extend(new_words)
|
|
|
|
set_user_alert_words(user_profile, words)
|
|
|
|
def remove_user_alert_words(user_profile, alert_words):
|
|
words = user_alert_words(user_profile)
|
|
words = [w for w in words if not w in alert_words]
|
|
|
|
set_user_alert_words(user_profile, words)
|
|
|
|
def set_user_alert_words(user_profile, alert_words):
|
|
user_profile.alert_words = ujson.dumps(alert_words)
|
|
user_profile.save(update_fields=['alert_words'])
|