Software / code / prosody
Annotate
plugins/muc/description.lib.lua @ 6482:410067cdeb2f
net/server: If server.hook_signal exists, overwrite signal.signal; else make server.hook_signal == signal.signal
No longer server_event specific
server.hook_signal will always exist
| author | daurnimator <quae@daurnimator.com> |
|---|---|
| date | Tue, 21 Oct 2014 17:26:48 -0400 |
| parent | 6204:c3254827698d |
| child | 6991:84e01dbb739e |
| rev | line source |
|---|---|
|
6204
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
1 -- Prosody IM |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
2 -- Copyright (C) 2008-2010 Matthew Wild |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
3 -- Copyright (C) 2008-2010 Waqas Hussain |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
4 -- Copyright (C) 2014 Daurnimator |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
5 -- |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
6 -- This project is MIT/X11 licensed. Please see the |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
7 -- COPYING file in the source package for more information. |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
8 -- |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
9 |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
10 local function get_description(room) |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
11 return room._data.description; |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
12 end |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
13 |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
14 local function set_description(room, description) |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
15 if description == "" then description = nil; end |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
16 if get_description(room) == description then return false; end |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
17 room._data.description = description; |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
18 if room.save then room:save(true); end |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
19 return true; |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
20 end |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
21 |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
22 local function add_form_option(event) |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
23 table.insert(event.form, { |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
24 name = "muc#roomconfig_roomdesc"; |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
25 type = "text-single"; |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
26 label = "Description"; |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
27 value = get_description(event.room) or ""; |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
28 }); |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
29 end |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
30 module:hook("muc-disco#info", add_form_option); |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
31 module:hook("muc-config-form", add_form_option); |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
32 |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
33 module:hook("muc-config-submitted", function(event) |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
34 local new = event.fields["muc#roomconfig_roomdesc"]; |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
35 if new ~= nil and set_description(event.room, new) then |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
36 event.status_codes["104"] = true; |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
37 end |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
38 end); |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
39 |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
40 return { |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
41 get = get_description; |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
42 set = set_description; |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
43 }; |