Beispiel #1
0
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        
Beispiel #2
0
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
Beispiel #3
0
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   
Beispiel #4
0
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)
Beispiel #5
0
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