Software /
code /
prosody
Annotate
plugins/mod_motd.lua @ 11576:fbd1ebd86369
teal: Add new util.hashes APIs
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 20 May 2021 23:09:45 +0200 |
parent | 9791:ca0473cadd1c |
child | 12977:74b9e05af71e |
rev | line source |
---|---|
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 |
5776
bd0ff8ae98a8
Remove all trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
5371
diff
changeset
|
5 -- |
3169
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 |
3169
e37e83660114
Add motd plugin, giving text to a user on each login.
Jeff Mitchell <jeff@jefferai.org>
parents:
diff
changeset
|
16 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
|
17 |
6009
1579b53351e2
mod_motd: Strip indentation only, leave multiple newlines
Kim Alvefur <zash@zash.se>
parents:
5371
diff
changeset
|
18 motd_text = motd_text:gsub("^%s*(.-)%s*$", "%1"):gsub("\n[ \t]+", "\n"); -- Strip indentation from the config |
4083
4d0599e85411
mod_motd: Process value to strip any indentation from the config
Matthew Wild <mwild1@gmail.com>
parents:
3170
diff
changeset
|
19 |
8135
e20c27e04ecc
mod_motd: Use initial presence event (saves some checking)
Kim Alvefur <zash@zash.se>
parents:
6010
diff
changeset
|
20 module:hook("presence/initial", function (event) |
9791
ca0473cadd1c
mod_motd: Remove unused variable [luacheck]
Kim Alvefur <zash@zash.se>
parents:
9789
diff
changeset
|
21 local session = event.origin; |
9789
abd32bc33a9c
mod_motd: Remove redundant conditions
Kim Alvefur <zash@zash.se>
parents:
8135
diff
changeset
|
22 local motd_stanza = |
abd32bc33a9c
mod_motd: Remove redundant conditions
Kim Alvefur <zash@zash.se>
parents:
8135
diff
changeset
|
23 st.message({ to = session.full_jid, from = motd_jid }) |
abd32bc33a9c
mod_motd: Remove redundant conditions
Kim Alvefur <zash@zash.se>
parents:
8135
diff
changeset
|
24 :tag("body"):text(motd_text); |
abd32bc33a9c
mod_motd: Remove redundant conditions
Kim Alvefur <zash@zash.se>
parents:
8135
diff
changeset
|
25 module:send(motd_stanza); |
abd32bc33a9c
mod_motd: Remove redundant conditions
Kim Alvefur <zash@zash.se>
parents:
8135
diff
changeset
|
26 module:log("debug", "MOTD send to user %s", session.full_jid); |
4654
0975505f5a54
mod_motd: Use presence/bare to catch a client's initial presence and send the MOTD then (fixes #282)
Matthew Wild <mwild1@gmail.com>
parents:
4649
diff
changeset
|
27 end, 1); |