Sha256: ded5aaddf0354147243e830cede6f74d75ed20beca36cb786a85f64d61072081

Contents?: true

Size: 1.3 KB

Versions: 28

Compression:

Stored size: 1.3 KB

Contents

#!/usr/bin/ruby

# This script can get all roster entries

require 'optparse'
require 'xmpp4r'
include Jabber

get = true
jid = JID.new('lucastest@linux.ensimag.fr/rosterget')
password = 'lucastest'
domains = []

OptionParser.new do |opts|
  opts.banner = 'Usage: roster.rb -j jid -p password -d domain'
  opts.separator ''
  opts.on('-j', '--jid JID', 'sets the jid') { |j| jid = JID.new(j) }
  opts.on('-p', '--password PASSWORD', 'sets the password') { |p| password = p }
  opts.on('-d', '--domain DOMAIN', 'sets the domain') { |d| domains << d }
  opts.on_tail('-h', '--help', 'Show this message') {
    puts opts
    exit
  }
  opts.parse!(ARGV)
end

cl = Client.new(jid)
cl.connect
cl.auth(password)
exit = false
nb = 0
cl.add_iq_callback { |i|
  fjid = JID.new(i.from)
  if i.type == :result and fjid.resource == "admin"
    domain = fjid.domain
    items = nil
    i.each_element('item') { |e| items = e }
    raise "items nil" if items.nil?
    puts "--- Online users for #{domain} (seconds, sent, received)"
    c = 0
    items.each_element('user') do |e|
      puts "#{e.attribute('jid')} #{e.attribute('name')}"
      c += 1
    end
    puts "--- #{domain} : #{c} online users"
    nb -= 1
  end
}
for d in domains do
  cl.send(Iq.new_browseget.set_to("#{d}/admin"))
  nb += 1
end
while nb > 0
  cl.process(1)
end
cl.close

Version data entries

28 entries across 28 versions & 10 rubygems

Version Path
brontes3d-xmpp4r-0.4 data/doc/xmpp4r/examples/advanced/getonline.rb
edavey-xmpp4r-0.4.1 data/doc/xmpp4r/examples/advanced/getonline.rb
edavey-xmpp4r-0.4.2 data/doc/xmpp4r/examples/advanced/getonline.rb
edavey-xmpp4r-0.4 data/doc/xmpp4r/examples/advanced/getonline.rb
ln-xmpp4r-0.5 data/doc/xmpp4r/examples/advanced/getonline.rb
mojodna-xmpp4r-0.4.0.2 data/doc/xmpp4r/examples/advanced/getonline.rb
mojodna-xmpp4r-0.4.0.3 data/doc/xmpp4r/examples/advanced/getonline.rb
seanohalpin-xmpp4r-0.4.1 data/doc/xmpp4r/examples/advanced/getonline.rb
xmpp4r-0.5.6 data/doc/xmpp4r/examples/advanced/getonline.rb
xmpp4r-0.5.5 data/doc/xmpp4r/examples/advanced/getonline.rb
mad-p-xmpp4r-0.6.3 data/doc/xmpp4r/examples/advanced/getonline.rb
mad-p-xmpp4r-0.6.2 data/doc/xmpp4r/examples/advanced/getonline.rb
mad-p-xmpp4r-0.6.1 data/doc/xmpp4r/examples/advanced/getonline.rb
mad-p-xmpp4r-0.6.0 data/doc/xmpp4r/examples/advanced/getonline.rb
cerberus-0.8.0 lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/getonline.rb
cerberus-0.7.9 lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/getonline.rb
edavis10-cerberus-0.7.8 lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/getonline.rb
cerberus-0.7.8 lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/getonline.rb
cerberus-0.7.7 lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/getonline.rb
cerberus-0.7.6 lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/getonline.rb