Mercurial > prosody-modules
annotate mod_filter_chatstates/mod_filter_chatstates.lua @ 1767:ca48eea4785c
mod_filter_chatstates: Backout 02cd4a081db4; no longer required due to changes in mod_smacks
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 08 Jun 2015 15:29:33 +0200 |
parents | 02cd4a081db4 |
children | 23b3c8e294d2 |
rev | line source |
---|---|
1490
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 local filters = require "util.filters"; |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 local st = require "util.stanza"; |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 module:depends("csi"); |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 local function filter_chatstates(stanza) |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 if stanza.name == "message" then |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 stanza = st.clone(stanza); |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 stanza:maptags(function (tag) |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 if tag.attr.xmlns ~= "http://jabber.org/protocol/chatstates" then |
1767
ca48eea4785c
mod_filter_chatstates: Backout 02cd4a081db4; no longer required due to changes in mod_smacks
Kim Alvefur <zash@zash.se>
parents:
1494
diff
changeset
|
11 return tag |
1490
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 end |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 end); |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 if #stanza.tags == 0 then |
1767
ca48eea4785c
mod_filter_chatstates: Backout 02cd4a081db4; no longer required due to changes in mod_smacks
Kim Alvefur <zash@zash.se>
parents:
1494
diff
changeset
|
15 return nil; |
1490
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
16 end |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
17 end |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
18 return stanza; |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
19 end |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
20 |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
21 module:hook("csi-client-inactive", function (event) |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
22 local session = event.origin; |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
23 filters.add_filter(session, "stanzas/out", filter_chatstates); |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
24 end); |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
25 |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
26 module:hook("csi-client-active", function (event) |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
27 local session = event.origin; |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
28 filters.remove_filter(session, "stanzas/out", filter_chatstates); |
b06b5ac5714b
mod_filter_chatstates: Removes chat states from messages to inactive (per CSI) sessions
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
29 end); |