Software /
code /
prosody
Comparison
plugins/mod_pubsub/pubsub.lib.lua @ 9180:cc68cb03f85e
mod_pubsub: Add payload type metadata field
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 13 Aug 2018 20:44:01 +0200 |
parent | 9137:4803d2feeecb |
child | 9182:ec48c02ded0c |
comparison
equal
deleted
inserted
replaced
9179:82fad995a149 | 9180:cc68cb03f85e |
---|---|
60 name = "pubsub#description"; | 60 name = "pubsub#description"; |
61 label = "Description"; | 61 label = "Description"; |
62 }; | 62 }; |
63 { | 63 { |
64 type = "text-single"; | 64 type = "text-single"; |
65 name = "pubsub#type"; | |
66 label = "The type of node data, usually specified by the namespace of the payload (if any)"; | |
67 }; | |
68 { | |
69 type = "text-single"; | |
65 name = "pubsub#max_items"; | 70 name = "pubsub#max_items"; |
66 label = "Max # of items to persist"; | 71 label = "Max # of items to persist"; |
67 }; | 72 }; |
68 { | 73 { |
69 type = "boolean"; | 74 type = "boolean"; |
128 }; | 133 }; |
129 { | 134 { |
130 type = "text-single"; | 135 type = "text-single"; |
131 name = "pubsub#description"; | 136 name = "pubsub#description"; |
132 }; | 137 }; |
138 { | |
139 type = "text-single"; | |
140 name = "pubsub#type"; | |
141 }; | |
133 }; | 142 }; |
134 | 143 |
135 local config_field_map = { | 144 local config_field_map = { |
136 title = "pubsub#title"; | 145 title = "pubsub#title"; |
137 description = "pubsub#description"; | 146 description = "pubsub#description"; |
147 payload_type = "pubsub#type"; | |
138 max_items = "pubsub#max_items"; | 148 max_items = "pubsub#max_items"; |
139 persist_items = "pubsub#persist_items"; | 149 persist_items = "pubsub#persist_items"; |
140 notification_type = "pubsub#notification_type"; | 150 notification_type = "pubsub#notification_type"; |
141 access_model = "pubsub#access_model"; | 151 access_model = "pubsub#access_model"; |
142 publish_model = "pubsub#publish_model"; | 152 publish_model = "pubsub#publish_model"; |
147 -- util.pubsub is meant to be agnostic to XEP-0060 | 157 -- util.pubsub is meant to be agnostic to XEP-0060 |
148 local function config_to_xep0060(node_config) | 158 local function config_to_xep0060(node_config) |
149 return { | 159 return { |
150 ["pubsub#title"] = node_config["title"]; | 160 ["pubsub#title"] = node_config["title"]; |
151 ["pubsub#description"] = node_config["description"]; | 161 ["pubsub#description"] = node_config["description"]; |
162 ["pubsub#type"] = node_config["payload_type"]; | |
152 ["pubsub#max_items"] = tostring(node_config["max_items"]); | 163 ["pubsub#max_items"] = tostring(node_config["max_items"]); |
153 ["pubsub#persist_items"] = node_config["persist_items"]; | 164 ["pubsub#persist_items"] = node_config["persist_items"]; |
154 ["pubsub#notification_type"] = node_config["notification_type"]; | 165 ["pubsub#notification_type"] = node_config["notification_type"]; |
155 ["pubsub#access_model"] = node_config["access_model"]; | 166 ["pubsub#access_model"] = node_config["access_model"]; |
156 ["pubsub#publish_model"] = node_config["publish_model"]; | 167 ["pubsub#publish_model"] = node_config["publish_model"]; |
257 reply:tag("identity", { category = "pubsub", type = "leaf" }):up(); | 268 reply:tag("identity", { category = "pubsub", type = "leaf" }):up(); |
258 if node_obj.config then | 269 if node_obj.config then |
259 reply:add_child(node_metadata_form:form({ | 270 reply:add_child(node_metadata_form:form({ |
260 ["pubsub#title"] = node_obj.config.title; | 271 ["pubsub#title"] = node_obj.config.title; |
261 ["pubsub#description"] = node_obj.config.description; | 272 ["pubsub#description"] = node_obj.config.description; |
273 ["pubsub#type"] = node_obj.config.payload_type; | |
262 }, "result")); | 274 }, "result")); |
263 end | 275 end |
264 end | 276 end |
265 | 277 |
266 function _M.handle_disco_items_node(event, service) | 278 function _M.handle_disco_items_node(event, service) |