Software /
code /
prosody
Annotate
plugins/mod_motd.lua @ 12579:ca6a43fe0231 0.12
util.jsonschema: Fix validation to not assume presence of "type" field
MattJ reported a curious issue where validation did not work as
expected. Primarily that the "type" field was expected to be mandatory,
and thus leaving it out would result in no checks being performed.
This was likely caused by misreading during initial development.
Spent some time testing against
https://github.com/json-schema-org/JSON-Schema-Test-Suite.git and
discovered a multitude of issues, far too many to bother splitting into
separate commits.
More than half of them fail. Many because of features not implemented,
which have been marked NYI. For example, some require deep comparisons
e.g. when objects or arrays are present in enums fields.
Some because of quirks with how Lua differs from JavaScript, e.g. no
distinct array or object types. Tests involving fractional floating
point numbers. We're definitely not going to follow references to remote
resources. Or deal with UTF-16 sillyness. One test asserted that 1.0 is
an integer, where Lua 5.3+ will disagree.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 08 Jul 2022 14:38:23 +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); |