#!/usr/bin/ruby

# This script can get all roster entries

require 'optparse'
require 'xmpp4r'
require 'xmpp4r/roster/iq/roster'
include Jabber

jid = JID::new('ccrb22@jabber.org')
password = 'asdasd'

OptionParser::new do |opts|
  opts.banner = 'Usage: roster.rb -t get -j jid -p password'
  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_tail('-h', '--help', 'Show this message') {
    puts opts
    exit
  }
  opts.parse!(ARGV)
end

cl = Client::new(jid, false)
cl.connect
cl.auth(password)
cl.send(Iq::new_rosterget)
exit = false
cl.add_iq_callback { |i|
  if i.type == :result and i.query.kind_of?(Roster::IqQueryRoster)
    i.query.each_element { |e|
      e.text = ''
      puts e.to_s
    }
    exit = true
  end
}
while not exit
  cl.process
end
cl.close
