fix main notification query
This commit is contained in:
parent
69ce9f23b7
commit
b7456dd759
1 changed files with 12 additions and 8 deletions
|
@ -132,6 +132,13 @@ async def handle_triggers(ctx, message):
|
|||
db_updates = []
|
||||
|
||||
search_query = """
|
||||
WITH
|
||||
pauses AS (SELECT user_id FROM user_pauses WHERE guild_id=:guild),
|
||||
ignores AS (
|
||||
SELECT target, user_id FROM user_ignores WHERE guild_id=:guild
|
||||
UNION
|
||||
SELECT target, user_id FROM user_blocks
|
||||
)
|
||||
SELECT keyword, user_id, use_embed
|
||||
FROM ( -- Deduplicate notification recipients by user_id
|
||||
SELECT keyword, user_id, use_embed, row_number() over (partition by user_id) n
|
||||
|
@ -140,14 +147,11 @@ async def handle_triggers(ctx, message):
|
|||
WHERE likely(disabled IS NOT 1) -- Don't notify users who opted out
|
||||
AND (unlikely(notify_self IS 1) OR user_id IS NOT :author) -- Don't notify author unless wanted
|
||||
AND (unlikely(bots_notify IS 1) OR :is_bot IS NOT 1) -- Don't notify from bots unless wanted
|
||||
AND likely(NOT EXISTS(SELECT * FROM ( -- Don't notify if...
|
||||
SELECT target FROM user_ignores -- Author or channel is ignored in this guild
|
||||
WHERE user_id=user_id AND guild_id=:guild
|
||||
UNION
|
||||
SELECT target FROM user_blocks -- Author is blocked
|
||||
WHERE user_id=user_id
|
||||
) WHERE target IN (:author, :channel, :category, :parent)))
|
||||
AND likely(NOT EXISTS(SELECT * FROM user_pauses WHERE user_id=user_id AND guild_id=:guild))
|
||||
AND likely(:author NOT IN (SELECT target FROM ignores WHERE user_id=user_id))
|
||||
AND likely(:channel NOT IN (SELECT target FROM ignores WHERE user_id=user_id))
|
||||
AND likely(:category NOT IN (SELECT target FROM ignores WHERE user_id=user_id))
|
||||
AND likely(:parent NOT IN (SELECT target FROM ignores WHERE user_id=user_id))
|
||||
AND likely(user_id NOT IN pauses)
|
||||
AND guild_id=:guild AND unlikely(contains(:content, keyword, regex))
|
||||
)
|
||||
WHERE n=1
|
||||
|
|
Loading…
Add table
Reference in a new issue