Software / code / verse
Comparison
plugins/browsing.lua @ 403:6f4f60ebb796
Add plugin for XEP-0195: User Browsing
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sun, 15 May 2016 16:23:54 +0200 |
| child | 466:1eaec52ff71a |
comparison
equal
deleted
inserted
replaced
| 402:81b109281879 | 403:6f4f60ebb796 |
|---|---|
| 1 local verse = require "verse"; | |
| 2 | |
| 3 local xmlns_browsing = "urn:xmpp:browsing:0"; | |
| 4 | |
| 5 function verse.plugins.browsing(stream) | |
| 6 stream:add_plugin("pep"); | |
| 7 function stream:browsing(infos, callback) | |
| 8 if type(infos) == "string" then | |
| 9 infos = { uri = infos; }; | |
| 10 end | |
| 11 | |
| 12 local link = verse.stanza("page", {xmlns=xmlns_browsing}) | |
| 13 for info, value in pairs(infos) do | |
| 14 link:tag(info):text(value):up(); | |
| 15 end | |
| 16 return stream:publish_pep(link, callback); | |
| 17 end | |
| 18 | |
| 19 stream:hook_pep(xmlns_browsing, function(event) | |
| 20 local item = event.item; | |
| 21 return stream:event("browsing", { | |
| 22 from = event.from; | |
| 23 description = item:get_child_text"description"; | |
| 24 keywords = item:get_child_text"keywords"; | |
| 25 title = item:get_child_text"title"; | |
| 26 uri = item:get_child_text"uri"; | |
| 27 }); | |
| 28 end); | |
| 29 end | |
| 30 |