Guest User

Untitled

a guest
Jan 13th, 2015
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.02 KB | None | 0 0
  1. #!/usr/bin/python
  2.  
  3. """
  4. LICENSE based upon http://www.wtfpl.net/
  5.        DO WHAT YOU WANT TO PUBLIC LICENSE
  6.  
  7. Copyright (C) 2015
  8.  
  9. Everyone is permitted to copy and distribute verbatim or modified
  10. copies of this license document, and changing it is allowed as long
  11. as the name is changed.
  12.  
  13.            DO WHAT YOU WANT TO PUBLIC LICENSE
  14.   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
  15.  
  16.  0. You just DO WHAT YOU WANT TO.
  17. """
  18.  
  19. from __future__ import print_function
  20. import MySQLdb
  21. import json
  22.  
  23. MYSQL_HOST = 'localhost'
  24. MYSQL_DB = ''
  25. MYSQL_USER = ''
  26. MYSQL_PASSWD = ''
  27. WHITELIST_FILE = 'whitelist.json'
  28.  
  29. SQL_INSERT = 'INSERT INTO Name_player (uuid, player) VALUES (%s,%s)'
  30. BATCH_SIZE = 25
  31.  
  32. _mysql_params = {
  33.   'host': MYSQL_HOST,
  34.   'db': MYSQL_DB,
  35.   'user': MYSQL_USER,
  36.   'passwd': MYSQL_PASSWD,
  37. }
  38.  
  39. def loadWhitelist(filename=WHITELIST_FILE):
  40.   with open(filename) as wljf:
  41.     return json.load(wljf)
  42.  
  43. _sql_conn = None
  44. def openSql(params=_mysql_params):
  45.   if not _sql_conn:
  46.     _sql_conn = MySQLdb.connect(params['host'], params['user'], params['passwd'], params['db'])
  47.     _sql_conn.autocommit(1)
  48.   return _sql_conn
  49.  
  50. def importToSql(wl):
  51.   total_count = len(wl)
  52.   processed = 0
  53.   conn = openSql()
  54.   batch = []
  55.   for entry in wl:
  56.     batch.append((entry['uuid'], entry['name']))
  57.     if len(batch) > BATCH_SIZE:
  58.       cursor = conn.cursor()
  59.       cursor.executemany(SQL_INSERT, batch)
  60.       cursor.close()
  61.       processed += len(batch)
  62.       print('%d of %d (%d%%)' % (processed, total_count, int(float(processed)/float(total_count)*100.0)))
  63.       batch = []
  64.   if batch:
  65.     cursor = conn.cursor()
  66.     cursor.executemany(SQL_INSERT, batch)
  67.     cursor.close()
  68.     processed += len(batch)
  69.     print('%d of %d (%d%%)' % (processed, total_count, int(float(processed)/float(total_count)*100.0)))
  70.  
  71. def importWhitelistToSql():
  72.   wl = loadWhitelist()
  73.   if not wl:
  74.     print('Empty whitelist')
  75.   else:
  76.     importToSql(wl)
  77.  
  78. if __name__ == '__main__':
  79.   importWhitelistToSql()
Advertisement
Add Comment
Please, Sign In to add comment