Mercurial > prosody-hg
comparison plugins/mod_pep_plus.lua @ 8215:835bb32c36b4
mod_pep_plus: Add item persistency.
| author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
|---|---|
| date | Sat, 15 Apr 2017 09:35:33 +0100 |
| parents | da8bc600902a |
| children | 2c75a5ba58fc |
comparison
equal
deleted
inserted
replaced
| 8214:da8bc600902a | 8215:835bb32c36b4 |
|---|---|
| 17 | 17 |
| 18 local services = {}; | 18 local services = {}; |
| 19 local recipients = {}; | 19 local recipients = {}; |
| 20 local hash_map = {}; | 20 local hash_map = {}; |
| 21 | 21 |
| 22 local archive = module:open_store("pubsub", "archive"); | |
| 23 | |
| 22 function module.save() | 24 function module.save() |
| 23 return { services = services }; | 25 return { services = services }; |
| 24 end | 26 end |
| 25 | 27 |
| 26 function module.restore(data) | 28 function module.restore(data) |
| 30 local function subscription_presence(user_bare, recipient) | 32 local function subscription_presence(user_bare, recipient) |
| 31 local recipient_bare = jid_bare(recipient); | 33 local recipient_bare = jid_bare(recipient); |
| 32 if (recipient_bare == user_bare) then return true; end | 34 if (recipient_bare == user_bare) then return true; end |
| 33 local username, host = jid_split(user_bare); | 35 local username, host = jid_split(user_bare); |
| 34 return is_contact_subscribed(username, host, recipient_bare); | 36 return is_contact_subscribed(username, host, recipient_bare); |
| 37 end | |
| 38 | |
| 39 local function simple_itemstore(config, node) | |
| 40 return lib_pubsub.simple_itemstore(archive, config, node, false); | |
| 35 end | 41 end |
| 36 | 42 |
| 37 local function get_broadcaster(name) | 43 local function get_broadcaster(name) |
| 38 local function simple_broadcast(kind, node, jids, item) | 44 local function simple_broadcast(kind, node, jids, item) |
| 39 if item then | 45 if item then |
| 158 }; | 164 }; |
| 159 | 165 |
| 160 autocreate_on_publish = true; | 166 autocreate_on_publish = true; |
| 161 autocreate_on_subscribe = true; | 167 autocreate_on_subscribe = true; |
| 162 | 168 |
| 169 itemstore = simple_itemstore; | |
| 163 broadcaster = get_broadcaster(name); | 170 broadcaster = get_broadcaster(name); |
| 164 get_affiliation = function (jid) | 171 get_affiliation = function (jid) |
| 165 if jid_bare(jid) == name then | 172 if jid_bare(jid) == name then |
| 166 return "owner"; | 173 return "owner"; |
| 167 elseif subscription_presence(name, jid) then | 174 elseif subscription_presence(name, jid) then |
