Software / code / prosody
Comparison
plugins/mod_pep_plus.lua @ 8332:e89b57d0d80a
mod_pep_plus: Advertise additional features not covered by inspection of pubsub service methods
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Tue, 17 Oct 2017 05:30:09 +0200 |
| parent | 8331:8df0eaa564f0 |
| child | 8333:2abbb01cd756 |
comparison
equal
deleted
inserted
replaced
| 8331:8df0eaa564f0 | 8332:e89b57d0d80a |
|---|---|
| 418 | 418 |
| 419 module:hook("account-disco-info", function(event) | 419 module:hook("account-disco-info", function(event) |
| 420 local origin, reply = event.origin, event.reply; | 420 local origin, reply = event.origin, event.reply; |
| 421 | 421 |
| 422 reply:tag('identity', {category='pubsub', type='pep'}):up(); | 422 reply:tag('identity', {category='pubsub', type='pep'}):up(); |
| 423 reply:tag('feature', {var=xmlns_pubsub}):up(); | |
| 423 | 424 |
| 424 local username = jid_split(reply.attr.from) or origin.username; | 425 local username = jid_split(reply.attr.from) or origin.username; |
| 425 local service = get_pep_service(username); | 426 local service = get_pep_service(username); |
| 426 | 427 |
| 427 local feature_map = { | 428 local feature_map = { |
| 449 for affiliation in pairs(service.config.capabilities) do | 450 for affiliation in pairs(service.config.capabilities) do |
| 450 if affiliation ~= "none" and affiliation ~= "owner" then | 451 if affiliation ~= "none" and affiliation ~= "owner" then |
| 451 reply:tag('feature', {var=xmlns_pubsub.."#"..affiliation.."-affiliation"}):up(); | 452 reply:tag('feature', {var=xmlns_pubsub.."#"..affiliation.."-affiliation"}):up(); |
| 452 end | 453 end |
| 453 end | 454 end |
| 455 | |
| 456 -- Features not covered by the above | |
| 457 local more_features = { | |
| 458 "access-presence", | |
| 459 "auto-subscribe", | |
| 460 "filtered-notifications", | |
| 461 "last-published", | |
| 462 "persistent-items", | |
| 463 "presence-notifications", | |
| 464 "presence-subscribe", | |
| 465 }; | |
| 466 for _, feature in ipairs(more_features) do | |
| 467 reply:tag('feature', {var=xmlns_pubsub.."#"..feature}):up(); | |
| 468 end | |
| 454 end); | 469 end); |
| 455 | 470 |
| 456 module:hook("account-disco-items-node", function(event) | 471 module:hook("account-disco-items-node", function(event) |
| 457 local reply, stanza, origin = event.reply, event.stanza, event.origin; | 472 local reply, stanza, origin = event.reply, event.stanza, event.origin; |
| 458 local node = event.node; | 473 local node = event.node; |