Beispiel #1
0
def update_player_details():
    with transaction.manager:
        while True:
            players = DBSession.query(Player).filter_by(display_name=None,
                    profile_update_error=False).limit(100).all()

            if not players:
                log.info('All player details up to date')
                break

            player_ids = [
                str(convert_player_id_32_to_64(player.id))
                    for player in players if player.id != 4294967295
            ]

            log.info('Updating player details for {} players'.format(len(player_ids)))

            result = get_player_list_details(celery.settings, player_ids)

            for player in result['players']:
                id_32 = convert_player_id_64_to_32(long(player['steamid']))

                log.info('Updating player {}'.format(id_32))

                db_player = DBSession.query(Player).get(id_32)
                db_player.display_name = player['personaname']
                players.remove(db_player)

            if players:
                log.info('Player not updated: {}'.format(len(players)))

                for player in players:
                    player.profile_update_error = True
Beispiel #2
0
def on_login_success(request):
    context = request.context

    steam_url = context.profile["accounts"][0]["username"]
    steam_id = convert_player_id_64_to_32(long(steam_url.rsplit("/", 1)[1]))

    player = DBSession.query(Player).get(steam_id)

    if player is not None:
        player.is_registerd = True
    else:
        player = Player(id=steam_id, is_registerd=True)
        DBSession.add(player)

    request.session["current_player_steamid"] = steam_id
    request.session["current_player"] = player

    return HTTPSeeOther(location="/")