Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- """
- LICENSE based upon http://www.wtfpl.net/
- DO WHAT YOU WANT TO PUBLIC LICENSE
- Copyright (C) 2015
- Everyone is permitted to copy and distribute verbatim or modified
- copies of this license document, and changing it is allowed as long
- as the name is changed.
- DO WHAT YOU WANT TO PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
- 0. You just DO WHAT YOU WANT TO.
- """
- from __future__ import print_function
- import MySQLdb
- import json
- MYSQL_HOST = 'localhost'
- MYSQL_DB = ''
- MYSQL_USER = ''
- MYSQL_PASSWD = ''
- WHITELIST_FILE = 'whitelist.json'
- SQL_INSERT = 'INSERT INTO Name_player (uuid, player) VALUES (%s,%s)'
- BATCH_SIZE = 25
- _mysql_params = {
- 'host': MYSQL_HOST,
- 'db': MYSQL_DB,
- 'user': MYSQL_USER,
- 'passwd': MYSQL_PASSWD,
- }
- def loadWhitelist(filename=WHITELIST_FILE):
- with open(filename) as wljf:
- return json.load(wljf)
- _sql_conn = None
- def openSql(params=_mysql_params):
- if not _sql_conn:
- _sql_conn = MySQLdb.connect(params['host'], params['user'], params['passwd'], params['db'])
- _sql_conn.autocommit(1)
- return _sql_conn
- def importToSql(wl):
- total_count = len(wl)
- processed = 0
- conn = openSql()
- batch = []
- for entry in wl:
- batch.append((entry['uuid'], entry['name']))
- if len(batch) > BATCH_SIZE:
- cursor = conn.cursor()
- cursor.executemany(SQL_INSERT, batch)
- cursor.close()
- processed += len(batch)
- print('%d of %d (%d%%)' % (processed, total_count, int(float(processed)/float(total_count)*100.0)))
- batch = []
- if batch:
- cursor = conn.cursor()
- cursor.executemany(SQL_INSERT, batch)
- cursor.close()
- processed += len(batch)
- print('%d of %d (%d%%)' % (processed, total_count, int(float(processed)/float(total_count)*100.0)))
- def importWhitelistToSql():
- wl = loadWhitelist()
- if not wl:
- print('Empty whitelist')
- else:
- importToSql(wl)
- if __name__ == '__main__':
- importWhitelistToSql()
Advertisement
Add Comment
Please, Sign In to add comment