author | Matthew Wild <mwild1@gmail.com> |
Sat, 21 Apr 2012 21:16:53 +0100 | |
changeset 4649 | e07ce18c503e |
parent 4390 | 5e84fb3c4ba0 |
child 4654 | 0975505f5a54 |
permissions | -rw-r--r-- |
3169
e37e83660114
Add motd plugin, giving text to a user on each login.
Jeff Mitchell <jeff@jefferai.org>
parents:
diff
changeset
|
1 |
-- Prosody IM |
e37e83660114
Add motd plugin, giving text to a user on each login.
Jeff Mitchell <jeff@jefferai.org>
parents:
diff
changeset
|
2 |
-- Copyright (C) 2008-2010 Matthew Wild |
e37e83660114
Add motd plugin, giving text to a user on each login.
Jeff Mitchell <jeff@jefferai.org>
parents:
diff
changeset
|
3 |
-- Copyright (C) 2008-2010 Waqas Hussain |
e37e83660114
Add motd plugin, giving text to a user on each login.
Jeff Mitchell <jeff@jefferai.org>
parents:
diff
changeset
|
4 |
-- Copyright (C) 2010 Jeff Mitchell |
e37e83660114
Add motd plugin, giving text to a user on each login.
Jeff Mitchell <jeff@jefferai.org>
parents:
diff
changeset
|
5 |
-- |
e37e83660114
Add motd plugin, giving text to a user on each login.
Jeff Mitchell <jeff@jefferai.org>
parents:
diff
changeset
|
6 |
-- This project is MIT/X11 licensed. Please see the |
e37e83660114
Add motd plugin, giving text to a user on each login.
Jeff Mitchell <jeff@jefferai.org>
parents:
diff
changeset
|
7 |
-- COPYING file in the source package for more information. |
e37e83660114
Add motd plugin, giving text to a user on each login.
Jeff Mitchell <jeff@jefferai.org>
parents:
diff
changeset
|
8 |
-- |
e37e83660114
Add motd plugin, giving text to a user on each login.
Jeff Mitchell <jeff@jefferai.org>
parents:
diff
changeset
|
9 |
|
e37e83660114
Add motd plugin, giving text to a user on each login.
Jeff Mitchell <jeff@jefferai.org>
parents:
diff
changeset
|
10 |
local host = module:get_host(); |
4390
5e84fb3c4ba0
mod_motd: Update to use module:get_option_string
Matthew Wild <mwild1@gmail.com>
parents:
4389
diff
changeset
|
11 |
local motd_text = module:get_option_string("motd_text"); |
5e84fb3c4ba0
mod_motd: Update to use module:get_option_string
Matthew Wild <mwild1@gmail.com>
parents:
4389
diff
changeset
|
12 |
local motd_jid = module:get_option_string("motd_jid", host); |
3169
e37e83660114
Add motd plugin, giving text to a user on each login.
Jeff Mitchell <jeff@jefferai.org>
parents:
diff
changeset
|
13 |
|
4389
886eebf10802
mod_motd: Send no message (instead of 'blank') if no message is set in the config (thanks medics)
Matthew Wild <mwild1@gmail.com>
parents:
4083
diff
changeset
|
14 |
if not motd_text then return; end |
886eebf10802
mod_motd: Send no message (instead of 'blank') if no message is set in the config (thanks medics)
Matthew Wild <mwild1@gmail.com>
parents:
4083
diff
changeset
|
15 |
|
4649
e07ce18c503e
mod_motd: Send only to resource coming online, not the user's bare JID (fixes #282)
Matthew Wild <mwild1@gmail.com>
parents:
4390
diff
changeset
|
16 |
local jid_join = require "util.jid".join; |
3169
e37e83660114
Add motd plugin, giving text to a user on each login.
Jeff Mitchell <jeff@jefferai.org>
parents:
diff
changeset
|
17 |
local st = require "util.stanza"; |
e37e83660114
Add motd plugin, giving text to a user on each login.
Jeff Mitchell <jeff@jefferai.org>
parents:
diff
changeset
|
18 |
|
4083
4d0599e85411
mod_motd: Process value to strip any indentation from the config
Matthew Wild <mwild1@gmail.com>
parents:
3170
diff
changeset
|
19 |
motd_text = motd_text:gsub("^%s*(.-)%s*$", "%1"):gsub("\n%s+", "\n"); -- Strip indentation from the config |
4d0599e85411
mod_motd: Process value to strip any indentation from the config
Matthew Wild <mwild1@gmail.com>
parents:
3170
diff
changeset
|
20 |
|
4649
e07ce18c503e
mod_motd: Send only to resource coming online, not the user's bare JID (fixes #282)
Matthew Wild <mwild1@gmail.com>
parents:
4390
diff
changeset
|
21 |
module:hook("resource-bind", function (event) |
3169
e37e83660114
Add motd plugin, giving text to a user on each login.
Jeff Mitchell <jeff@jefferai.org>
parents:
diff
changeset
|
22 |
local session = event.session; |
e37e83660114
Add motd plugin, giving text to a user on each login.
Jeff Mitchell <jeff@jefferai.org>
parents:
diff
changeset
|
23 |
local motd_stanza = |
4649
e07ce18c503e
mod_motd: Send only to resource coming online, not the user's bare JID (fixes #282)
Matthew Wild <mwild1@gmail.com>
parents:
4390
diff
changeset
|
24 |
st.message({ to = jid_join(session.username, session.host, session.resource), from = motd_jid }) |
3169
e37e83660114
Add motd plugin, giving text to a user on each login.
Jeff Mitchell <jeff@jefferai.org>
parents:
diff
changeset
|
25 |
:tag("body"):text(motd_text); |
e37e83660114
Add motd plugin, giving text to a user on each login.
Jeff Mitchell <jeff@jefferai.org>
parents:
diff
changeset
|
26 |
core_route_stanza(hosts[host], motd_stanza); |
e37e83660114
Add motd plugin, giving text to a user on each login.
Jeff Mitchell <jeff@jefferai.org>
parents:
diff
changeset
|
27 |
module:log("debug", "MOTD send to user %s@%s", session.username, session.host); |
e37e83660114
Add motd plugin, giving text to a user on each login.
Jeff Mitchell <jeff@jefferai.org>
parents:
diff
changeset
|
28 |
|
e37e83660114
Add motd plugin, giving text to a user on each login.
Jeff Mitchell <jeff@jefferai.org>
parents:
diff
changeset
|
29 |
end); |