Guest User

Untitled

a guest
Jul 14th, 2018
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. import os, os.path, sys
  3. try:
  4. from twisted.web import microdom as dom
  5. from twisted.web.domhelpers import *
  6. from twisted.internet import defer, utils
  7. from twisted.enterprise import adbapi, util as dbutil
  8. from twisted.words.protocols.jabber import jid
  9. from twisted.enterprise import util
  10. except:
  11. print "python-twisted is not installed"
  12.  
  13. s = util.safe
  14. from twisted.internet import reactor
  15.  
  16. def start():
  17. if len(sys.argv) != 6 and len(sys.argv) != 7:
  18. print sys.argv[0] + " pyicqt_directory database username password host [mysql_prefix]"
  19. reactor.stop()
  20. return
  21. maindir = sys.argv[1]
  22.  
  23. prefix = ""
  24. if len(sys.argv) == 7:
  25. prefix = sys.argv[6]
  26. dict = {}
  27. db = adbapi.ConnectionPool('MySQLdb', db = sys.argv[2], user = sys.argv[3], passwd = sys.argv[4], host = sys.argv[5], cp_min=1, cp_max=1)
  28. c = 0
  29. for dr in os.listdir(maindir):
  30. if os.path.isdir(maindir+dr):
  31. for dr2 in os.listdir(maindir+dr):
  32. for f in os.listdir(maindir+dr+'/'+dr2):
  33. if os.path.isfile(maindir+dr+'/'+dr2+'/'+f):
  34. fp = open(maindir+dr+'/'+dr2+'/'+f, 'r')
  35. c += 1
  36. print c
  37. buff = fp.read()
  38. fp.close()
  39. try:
  40. x = dom.parseXMLString(buff)
  41. except:
  42. continue
  43. jid = f.replace('%','@')[:-4]
  44. p = x.getElementsByTagName('password')
  45. if len(p) != 1:
  46. continue
  47. password = gatherTextNodes(p[0])
  48. u = x.getElementsByTagName('username')
  49. uin = gatherTextNodes(u[0])
  50. print jid
  51. db.runQuery('insert ignore into ' + prefix + 'users (jid, uin, password, lang) values ("%s", "%s", "%s", "en")'%(s(jid), s(uin),s(password))).addCallback(done)
  52. items = x.getElementsByTagName('item')
  53. for j in items:
  54. db.runQuery('insert ignore into ' + prefix + 'buddies (uin, user_id, nickname, groups, subscription) values ("%s", "%s", "%s","Buddies", "both")'%(s(j.getAttribute('jid')), s(str(user_id)), s(j.getAttribute('jid')))).addCallback(done)
  55.  
  56. def done(res):
  57. print '..done'
  58.  
  59. reactor.callWhenRunning(start)
  60. reactor.run()
Add Comment
Please, Sign In to add comment