Annotate

plugins/mod_motd.lua @ 12518:73ee3855f970

mod_smacks: Factor out some convenience functions Those lines are long and the risk of mistakes if another one needs to be added seems high, but lower when factored out like this.
author Kim Alvefur <zash@zash.se>
date Fri, 11 Feb 2022 16:09:42 +0100
parent 9791:ca0473cadd1c
child 12977:74b9e05af71e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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);