#!/usr/bin/env python
# Need something to export data to Wildfire

import pg
from twisted.words.xish import domish
mydb = pg.connect('jabberd2')

out = open('roster.xml', 'w')
w = domish.Element(('', 'Wildfire'))

# Lets get all of my users
rs = mydb.query("SELECT * from authreg").dictresult()

for i in range(len(rs)):
  e = domish.Element(('',"User"))
  e.addElement('Username', content= rs[i]['username'] )
  e.addElement('Password', content= rs[i]['password'] )
  email = ""
  if (rs[i]['email'] != ""):
    email = rs[i]['email']

  e.addElement('Email', content= email )
  e.addElement('Name', content='')
  e.addElement('CreationDate', content='1125442154664')
  e.addElement('ModifiedDate', content='1125442154664')

  # Now we get roster
  rs2 = mydb.query("SELECT * from \"roster-items\" WHERE \"collection-owner\" = '%s@%s' " % (rs[i]['username'], rs[i]['realm']) ).dictresult()

  r = domish.Element(('', 'Roster'))
  for j in range(len(rs2)):
    it = domish.Element(('', 'Item'))
    it['jid'] = rs2[j]['jid']
    it['askstatus'] = "-1"
    it['recvstatus'] = "-1"
    it['substatus'] = "3"
    nm = rs2[j]['jid']
    if (rs2[j]['name']):
      nm = rs2[j]['name']
    it['name'] = nm
    # Need to get the group now
    rs3 = mydb.query("SELECT * from \"roster-groups\" WHERE \"collection-owner\" = '%s@%s' and jid = '%s' " % (rs[i]['username'], rs[i]['realm'], rs2[j]['jid'])).dictresult()
    grp = "Buddies"
    if (len(rs3) > 0):
      grp = rs3[0]['group']
    it.addElement('Group', content= grp )
    r.addChild(it)

  e.addChild(r)
  w.addChild(e)


out.write(w.toXml() +"\n")

out.close()
