#!/usr/bin/python
from xmpp import *
import sys

print "Daten des alten Accounts:\nServer: ", 
server1 = sys.stdin.readline()
print "Port: ",
port1 = sys.stdin.readline()
print "Nick: ",
nick1 = sys.stdin.readline()
print "Password: ",
pass1 = sys.stdin.readline()

print "Daten des neuen Accounts:\nServer: ", 
server2 = sys.stdin.readline()
print "Port: ",
port2 = sys.stdin.readline()
print "Nick: ",
nick2 = sys.stdin.readline()
print "Password: ",
pass2 = sys.stdin.readline()

server1 = server1[:-1]
server2 = server2[:-1]
port1 = port1[:-1]
port2 = port2[:-1]
nick1 = nick1[:-1]
nick2 = nick2[:-1]
pass1 = pass1[:-1]
pass2 = pass2[:-1]

print "Source-Server: "+nick1+"@"+server1+":"+port1+"."

cl1=Client(server1,debug=[])
if not cl1.connect(server=(server1,int(port1))):
        raise IOError('Can not connect first server.')
if not cl1.auth(nick1,pass1,'Account Moving Tool'):
    raise IOError('Can not auth with first server.')
cl1.sendInitPresence()

cl1.Roster.getRoster()
tobeadded=[]
buddies = cl1.Roster.getItems()
for b in buddies:
	print "Transfer "+b+"? [Yn]",
	if sys.stdin.readline()[0] not in ["n","N"]:
		tobeadded.append(b)
cl1.disconnect()

cl1=Client(server2,debug=[])
if not cl1.connect(server=(server2,int(port2))):
        raise IOError('Can not connect first server.')
if not cl1.auth(nick2,pass2,'Account Moving Tool'):
    raise IOError('Can not auth with first server.')
cl1.sendInitPresence()
for b in tobeadded:
	print "Adding: "+b
	cl1.Roster.Subscribe(b)
cl1.disconnect()

