Class | Jabber::PubSub::NodeBrowser |
In: |
lib/xmpp4r/pubsub/helper/nodebrowser.rb
|
Parent: | Object |
Initialize a new NodeBrowser new(stream,pubsubservice)
stream: | [Jabber::Stream] |
# File lib/xmpp4r/pubsub/helper/nodebrowser.rb, line 14 14: def initialize(stream) 15: @stream = stream 16: end
get category of node
jid: | [Jabber::JID] |
node: | [String] |
# File lib/xmpp4r/pubsub/helper/nodebrowser.rb, line 123 123: def category(jid,node) 124: info = get_info(jid,node) 125: return info['category'] 126: end
get disco info for a node
jid: | [Jabber::JID] |
node: | [String] |
return:: [Hash] with possible keys type:: [String] ,category:: [String],features:: [Array] of feature, nodeinformation: | [Jabber::XData] |
check www.xmpp.org/extensions/xep-0060.html#entity for more infos
# File lib/xmpp4r/pubsub/helper/nodebrowser.rb, line 86 86: def get_info(jid,node) 87: iq = Iq.new(:get,jid) 88: iq.from = @stream.jid 89: discoinfo = Discovery::IqQueryDiscoInfo.new 90: discoinfo.node = node 91: iq.add(discoinfo) 92: info = {} 93: @stream.send_with_id(iq) do |answer| 94: identity = answer.query.identity 95: info['type'] = identity.type 96: info['category'] = identity.category 97: info['features'] = answer.query.features 98: 99: answer.query.each_element('x') { |x| 100: info['nodeinformation'] = x 101: } 102: end 103: info 104: end
Retrieve the items from a node Throws an ServerError when receiving <iq type=‘error’/>
jid: | [Jabber::JID] Target entity (set only domain!) |
node: | [String] |
return: | [Array] of [Hash] with keys ‘name’ => [String] and ‘jid’ => [Jabber::JID] |
# File lib/xmpp4r/pubsub/helper/nodebrowser.rb, line 64 64: def items(jid,node) 65: iq = Iq.new(:get,jid) 66: iq.from = @stream.jid 67: discoitems = Discovery::IqQueryDiscoItems.new 68: discoitems.node = node 69: iq.add(discoitems) 70: items = [] 71: err = nil 72: @stream.send_with_id(iq) do |answer| 73: answer.query.each_element('item') { |item| 74: items.push( {'jid' => item.jid,'name' => item.iname } ) 75: } 76: end 77: items 78: end
Retrieve the nodes Throws an ServerError when receiving <iq type=‘error’/>
jid: | [JID] Target entity (set only domain!) |
return: | [Array] of [String] or [nil] |
# File lib/xmpp4r/pubsub/helper/nodebrowser.rb, line 24 24: def nodes(jid) 25: iq = Iq.new(:get,jid) 26: iq.from = @stream.jid 27: iq.add(Discovery::IqQueryDiscoItems.new) 28: nodes = [] 29: @stream.send_with_id(iq) do |answer| 30: answer.query.each_element('item') { |item| 31: nodes.push(item.node) 32: } 33: end 34: nodes 35: end
Retrieve the nodes with names Throws a ServerError when receiving <iq type=‘error’/>
jid: | [Jabber::JID] Target entity (set only domain!) |
return: | [Array] of [Hash] with keys ‘node’ => [String] and ‘name’ => [String] or [nil] |
# File lib/xmpp4r/pubsub/helper/nodebrowser.rb, line 43 43: def nodes_names(jid) 44: iq = Iq.new(:get,jid) 45: iq.from = @stream.jid 46: iq.add(Discovery::IqQueryDiscoItems.new) 47: nodes = [] 48: @stream.send_with_id(iq) { |answer| 49: answer.query.each_element('item') do |item| 50: nodes.push( {'node' => item.node,'name' => item.iname } ) 51: } 52: end 53: nodes 54: end
get type of node
jid: | [Jabber::JID] |
node: | [String] |
# File lib/xmpp4r/pubsub/helper/nodebrowser.rb, line 113 113: def type(jid,node) 114: info = get_info(jid,node) 115: return info['type'] 116: end