forked from rDrama/rDrama
add !everyone
parent
8d48793c8a
commit
4a52246111
|
@ -132,9 +132,14 @@ def NOTIFY_USERS(text, v):
|
||||||
if word in text and id not in notify_users:
|
if word in text and id not in notify_users:
|
||||||
notify_users.add(id)
|
notify_users.add(id)
|
||||||
|
|
||||||
billed = set()
|
|
||||||
if FEATURES['PING_GROUPS']:
|
if FEATURES['PING_GROUPS']:
|
||||||
|
billed = set()
|
||||||
for i in group_mention_regex.finditer(text):
|
for i in group_mention_regex.finditer(text):
|
||||||
|
if i.group(2) == 'everyone':
|
||||||
|
everyone = [x[0] for x in g.db.query(User.id).all()]
|
||||||
|
billed.update(everyone)
|
||||||
|
notify_users.update(everyone)
|
||||||
|
else:
|
||||||
group = g.db.get(Group, i.group(2))
|
group = g.db.get(Group, i.group(2))
|
||||||
if group:
|
if group:
|
||||||
if v.id not in group.member_ids:
|
if v.id not in group.member_ids:
|
||||||
|
@ -145,11 +150,10 @@ def NOTIFY_USERS(text, v):
|
||||||
cost = len(billed) * 5
|
cost = len(billed) * 5
|
||||||
if cost > v.coins:
|
if cost > v.coins:
|
||||||
abort(403, f"You need {cost} coins for this!")
|
abort(403, f"You need {cost} coins for this!")
|
||||||
|
g.db.query(User).filter(User.id.in_(billed)).update({ User.coins: User.coins + 5 })
|
||||||
v.coins -= cost
|
v.coins -= cost
|
||||||
g.db.add(v)
|
g.db.add(v)
|
||||||
|
|
||||||
g.db.query(User).filter(User.id.in_(billed)).update({ User.coins: User.coins + 5 })
|
|
||||||
|
|
||||||
|
|
||||||
names = set(m.group(2) for m in mention_regex.finditer(text))
|
names = set(m.group(2) for m in mention_regex.finditer(text))
|
||||||
for user in get_users(names, graceful=True):
|
for user in get_users(names, graceful=True):
|
||||||
|
|
|
@ -11,6 +11,8 @@ mention_regex = re.compile('(^|\s|>)@([a-zA-Z0-9_\-]{1,30})(?![^<]*<\/(code|pre|
|
||||||
|
|
||||||
group_mention_regex = re.compile('(^|\s|>)!([a-z0-9_\-]{3,25})(?![^<]*<\/(code|pre|a)>)', flags=re.A)
|
group_mention_regex = re.compile('(^|\s|>)!([a-z0-9_\-]{3,25})(?![^<]*<\/(code|pre|a)>)', flags=re.A)
|
||||||
|
|
||||||
|
everyone_regex = re.compile('(^|\s|>)!(everyone)(?![^<]*<\/(code|pre|a)>)', flags=re.A)
|
||||||
|
|
||||||
valid_password_regex = re.compile("^.{8,100}$", flags=re.A)
|
valid_password_regex = re.compile("^.{8,100}$", flags=re.A)
|
||||||
|
|
||||||
marseyaward_body_regex = re.compile(">[^<\s+]|[^>\s+]<", flags=re.A)
|
marseyaward_body_regex = re.compile(">[^<\s+]|[^>\s+]<", flags=re.A)
|
||||||
|
|
|
@ -422,6 +422,9 @@ def sanitize(sanitized, golden=True, limit_pings=0, showmore=True, count_marseys
|
||||||
if FEATURES['PING_GROUPS']:
|
if FEATURES['PING_GROUPS']:
|
||||||
for i in group_mention_regex.finditer(sanitized):
|
for i in group_mention_regex.finditer(sanitized):
|
||||||
name = i.group(2)
|
name = i.group(2)
|
||||||
|
if name == 'everyone':
|
||||||
|
sanitized = group_mention_regex.sub(r'\1<a href="/users">!\2</a>', sanitized)
|
||||||
|
else:
|
||||||
existing = g.db.get(Group, name)
|
existing = g.db.get(Group, name)
|
||||||
if existing:
|
if existing:
|
||||||
sanitized = group_mention_regex.sub(r'\1<a href="/!\2">!\2</a>', sanitized)
|
sanitized = group_mention_regex.sub(r'\1<a href="/!\2">!\2</a>', sanitized)
|
||||||
|
|
Loading…
Reference in New Issue