Class | Jabber::PubSub::NodeBrowser |
In: |
lib/xmpp4r/pubsub/helper/nodebrowser.rb
|
Parent: | Object |
get_info | -> | get_metadata |
this is only for a xep <-> nodebrowser.rb understanding |
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 167 167: def category(jid,node) 168: info = get_info(jid,node) 169: return info['category'] 170: end
# File lib/xmpp4r/pubsub/helper/nodebrowser.rb, line 116 116: def get_info(jid,node) 117: iq = Iq.new(:get,jid) 118: iq.from = @stream.jid 119: discoinfo = Discovery::IqQueryDiscoInfo.new 120: discoinfo.node = node 121: iq.add(discoinfo) 122: info = {} 123: @stream.send_with_id(iq) { |answer| 124: if answer.type == :result 125: 126: identity = answer.query.identity 127: info['type'] = identity.type 128: info['category'] = identity.category 129: 130: info['features'] = answer.query.features 131: 132: # i think its not needed - if you think so then delete it 133: # answer.query.each_element('identity') { |identity| 134: # info['type'] = identity.type 135: # info['category'] = identity.category 136: # } 137: # 138: # features = [] 139: # answer.query.each_element('feature') { |feature| 140: # features.push(feature) 141: # } 142: # info['features'] = features 143: # 144: answer.query.each_element('x') { |x| 145: info['nodeinformation'] = x 146: } 147: end 148: } 149: return info 150: end
Retrive the items from a node Throws an ErrorExeption when reciving <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 82 82: def items(jid,node) 83: iq = Iq.new(:get,jid) 84: iq.from = @stream.jid 85: discoitems = Discovery::IqQueryDiscoItems.new 86: discoitems.node = node 87: iq.add(discoitems) 88: items = [] 89: err = nil 90: @stream.send_with_id(iq) { |answer| 91: if answer.type == :result 92: answer.query.each_element('item') { |item| 93: items.push( {'jid' => item.jid,'name' => item.iname } ) 94: } 95: true 96: elsif answer.type == :error 97: err = answer.error 98: true 99: else 100: false 101: end 102: } 103: return items 104: end
Retrive the nodes Throws an ErrorException 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: err = nil 30: @stream.send_with_id(iq) { |answer| 31: if answer.type == :result 32: answer.query.each_element('item') { |item| 33: nodes.push(item.node) 34: } 35: true 36: elsif answer.type == :error 37: err = answer.error 38: true 39: else 40: false 41: end 42: } 43: return nodes 44: end
Retrive the nodes with names Throws an ErrorExeption when reciving <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 52 52: def nodes_names(jid) 53: iq = Iq.new(:get,jid) 54: iq.from = @stream.jid 55: iq.add(Discovery::IqQueryDiscoItems.new) 56: nodes = [] 57: err = nil 58: @stream.send_with_id(iq) { |answer| 59: if answer.type == :result 60: answer.query.each_element('item') { |item| 61: nodes.push( {'node' => item.node,'name' => item.iname } ) 62: } 63: true 64: elsif answer.type == :error 65: err = answer.error 66: true 67: else 68: false 69: end 70: } 71: return nodes 72: end
get type of node
jid: | [Jabber::JID] |
node: | [String] |
# File lib/xmpp4r/pubsub/helper/nodebrowser.rb, line 157 157: def type(jid,node) 158: info = get_info(jid,node) 159: return info['type'] 160: end