Software / code / prosody
Comparison
plugins/mod_message.lua @ 1232:6ddbb583f067
mod_message: Initial commit
| author | Waqas Hussain <waqas20@gmail.com> |
|---|---|
| date | Sat, 30 May 2009 17:36:05 +0500 |
| child | 1234:0ff02499f05c |
comparison
equal
deleted
inserted
replaced
| 1231:6f251813f1e5 | 1232:6ddbb583f067 |
|---|---|
| 1 | |
| 2 local full_sessions = full_sessions; | |
| 3 local bare_sessions = bare_sessions; | |
| 4 | |
| 5 local jid_bare = require "util.jid".bare; | |
| 6 local user_exists = require "core.usermanager".user_exists; | |
| 7 | |
| 8 module:hook("message/full", function(data) | |
| 9 -- message to full JID recieved | |
| 10 local origin, stanza = data.origin, data.stanza; | |
| 11 | |
| 12 local session = full_sessions[stanza.attr.to]; | |
| 13 if session then | |
| 14 -- TODO fire post processing event | |
| 15 session.send(stanza); | |
| 16 return true; | |
| 17 else -- resource not online | |
| 18 -- TODO fire event to send to bare JID | |
| 19 end | |
| 20 end); | |
| 21 | |
| 22 module:hook("message/bare", function(data) | |
| 23 -- message to bare JID recieved | |
| 24 local origin, stanza = data.origin, data.stanza; | |
| 25 | |
| 26 local sessions = bare_sessoins[stanza.attr.to]; | |
| 27 if sessions then sessions = sessions.sessions; end | |
| 28 | |
| 29 if sessions then | |
| 30 -- some resources are online | |
| 31 -- TODO find top resources willing to accept this message | |
| 32 -- TODO then send them each the stanza | |
| 33 else | |
| 34 -- no resources are online | |
| 35 -- TODO check if the user exists | |
| 36 -- TODO if it doesn't, return an error reply | |
| 37 -- TODO otherwise, apply the default privacy list | |
| 38 -- TODO and store into offline storage | |
| 39 -- TODO or maybe the offline store can apply privacy lists | |
| 40 end | |
| 41 end); |