This feed contains pages in the "jabber" category.

Beim Wechsel des Jabberservers trifft man unweigerlich auf das Problem, dass man seine Kontakte transferieren muss. Dazu gibt es zwei Möglichkeiten: Selber abtippen oder das passende Pythonmodul suchen und ein kleines Script damit schreiben. Natürlich wählt man die letztere Möglichkeit, auch wenn es dreimal so lange dauert ;)

Hier also das Resultat:

 #!/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()

Gibt es auch zum Download.

Posted Do 17 Jan 2008 23:58:39 CET Tags: jabber