def import_player(filename): reader = csv.reader(open(filename, 'rb')) serverCache = {} header = {} c=0 print "Procesando players" #trans.begin() for row in reader: if header: # find the associated server server = None serverkey = str(helper.reverse_str_to_appid_key(row[header['server']], 'ipdburt')) if serverCache.has_key(serverkey): server = serverCache[serverkey] else: servers = list(Server.selectBy(gaekey=serverkey)) if len(servers)>0: server = servers[0] if server: c+=1 serverCache[serverkey] = server #if row[header['note']] != '': # note != transform_datetime(row[header['updated']]) #else: note = None data = {'serverid':server.id, 'guid':row[header['guid']], 'nickname':row[header['nickname']], 'ip':row[header['ip']], 'clientid':none_to_int(row[header['clientId']]), 'connected':False, 'level':none_to_int(row[header['level']]), 'baninfo':transform_datetime(row[header['baninfoupdated']]), 'created':transform_datetime(row[header['created']]), 'updated':transform_datetime(row[header['updated']]), 'note':note, 'gaekey':str(helper.reverse_str_to_appid_key(row[header['key']], 'ipdburt'))} insert = Insert('player', values = data) query = connection.sqlrepr(insert) connection.query(query) # commit every 500 players if c % 500 == 0: print "Processing %d" % c #trans.commit() else: print "Server %s not found" % row[header['server']] else: header = processHeader(row) #trans.commit(close=True) print "%d players importados" % c
def import_server(filename): reader = csv.reader(open(filename, 'rb')) header = {} c = 0 print "Procesando servers" #trans.begin() for row in reader: if header: c+=1 data = {'updated':transform_datetime(row[header['updated']]), 'name':row[header['name']], 'created':transform_datetime(row[header['created']]), 'admin':row[header['admin']], 'address':row[header['ip']], 'permission':none_to_int(row[header['permission']]), 'onlineplayers':none_to_int(row[header['players']]), 'pluginversion':row[header['pluginversion']], 'isdirty':False, 'gaekey':str(helper.reverse_str_to_appid_key(row[header['key']], 'ipdburt')), 'maxlevel':none_to_int(row[header['maxlevel']]), 'uid':row[header['uid']]} insert = Insert('server', values = data) query = connection.sqlrepr(insert) connection.query(query) else: header = processHeader(row) #trans.commit(close=True) print "%d servers importados" % c
def import_alias(filename): reader = csv.reader(open(filename, 'rb')) header = {} c=0 print "Procesando aliases" for row in reader: if header: player = None key = extractPlayerParent(row[header['key']]) playerkey = str(helper.reverse_str_to_appid_key(key, 'ipdburt')) if playerCache.has_key(playerkey): player = playerCache[playerkey] else: players = list(Player.selectBy(gaekey=playerkey)) if len(players) > 0: player = players[0] if player: c+=1 playerCache[playerkey] = player name = normalize(row[header['nickname']]) aliases = list(Alias.selectBy(playerid=player.id, nickname=name)) if len(aliases) > 0: alias = aliases[0] if alias.updated < transform_datetime(row[header['updated']]): alias.updated = transform_datetime(row[header['updated']]) alias.count = alias.count + none_to_int(row[header['count']]) alias.syncUpdate() print "Found duplicated %s" % name else: data = {'playerid':player.id, 'nickname': name, 'count':none_to_int(row[header['count']]), 'created':transform_datetime(row[header['created']]), 'updated':transform_datetime(row[header['updated']]), 'normalized': ''} insert = Insert('alias', values = data) query = connection.sqlrepr(insert) connection.query(query) # commit every 500 players if c % 100 == 0: print "Processing %d" % c #trans.commit() else: print "Player %s not found" % key else: header = processHeader(row) #trans.commit() print "%d aliases importados" % c
def create_baninfo(filename): '''process the player file again to fill the penalty table''' reader = csv.reader(open(filename, 'rb')) header = {} c=0 print "Procesando penalties" for row in reader: if header: baninfo = row[header['baninfo']] if baninfo == '': continue player = None playerkey = str(helper.reverse_str_to_appid_key(row[header['key']], 'ipdburt')) players = list(Player.selectBy(gaekey=playerkey)) if len(players) > 0: player = players[0] if player: playerCache[playerkey] = player try: status, reason, duration, created = procesarBanInfo(baninfo) if status: data = {'playerid':player.id, 'type': 0, 'reason': reason, 'duration': duration, 'created': created, 'updated': created, 'synced': True, 'active': True } insert = Insert('penalty', values = data) query = connection.sqlrepr(insert) connection.query(query) c+=1 # commit every 500 players if c % 100 == 0: print "Processing %d" % c #trans.commit() except Exception, e: print "%s playerid %s" % (str(e),player.id) else: print "Player %s not found" % row[header['key']] else: header = processHeader(row)
def import_aliasip(filename): reader = csv.reader(open(filename, 'rb')) header = {} c=0 print "Procesando ip aliases" for row in reader: if header: # find the associated server player = None key = extractPlayerParent(row[header['key']]) playerkey = str(helper.reverse_str_to_appid_key(key, 'ipdburt')) if playerCache.has_key(playerkey): player = playerCache[playerkey] else: players = list(Player.selectBy(gaekey=playerkey)) if len(players) > 0: player = players[0] if player: c+=1 playerCache[playerkey] = player data = {'playerid':player.id, 'ip':none_to_long(row[header['ip']]), 'count':none_to_int(row[header['count']]), 'created':transform_datetime(row[header['created']]), 'updated':transform_datetime(row[header['updated']])} insert = Insert('aliasip', values = data) query = connection.sqlrepr(insert) connection.query(query) # commit every 500 players if c % 100 == 0: print "Processing %d" % c #trans.commit() else: print "Player %s not found" % key else: header = processHeader(row) #trans.commit() print "%d ip aliases importados" % c