Example #1
0
    def test_auth_to_steam64(self):
        input = 'STEAM_0:1:52245092'
        expected = '76561198064755913'
        suc, actual = steamid.auth_to_steam64(input)
        self.assertTrue(suc)
        self.assertEqual(actual, expected)

        input = 'STEAM_1:1:52245092'
        expected = '76561198064755913'
        suc, actual = steamid.auth_to_steam64(input)
        self.assertTrue(suc)
        self.assertEqual(actual, expected)

        input = '76561198064755913'
        expected = '76561198064755913'
        suc, actual = steamid.auth_to_steam64(input)
        self.assertTrue(suc)
        self.assertEqual(actual, expected)

        input = '1:1:52245092'
        expected = '76561198064755913'
        suc, actual = steamid.auth_to_steam64(input)
        self.assertTrue(suc)
        self.assertEqual(actual, expected)

        input = '[U:1:104490185]'
        expected = '76561198064755913'
        suc, actual = steamid.auth_to_steam64(input)
        self.assertTrue(suc)
        self.assertEqual(actual, expected)

        input = 'steamcommunity.com/profiles/76561198064755913'
        expected = '76561198064755913'
        suc, actual = steamid.auth_to_steam64(input)
        self.assertTrue(suc)
        self.assertEqual(actual, expected)

        input = 'http://steamcommunity.com/profiles/76561198064755913'
        expected = '76561198064755913'
        suc, actual = steamid.auth_to_steam64(input)
        self.assertTrue(suc)
        self.assertEqual(actual, expected)

        input = 'http://steamcommunity.com/profiles/76561198064755913/'
        expected = '76561198064755913'
        suc, actual = steamid.auth_to_steam64(input)
        self.assertTrue(suc)
        self.assertEqual(actual, expected)

        input = 'http://steamcommunity.com/id/splewis'
        expected = '76561198064755913'
        suc, actual = steamid.auth_to_steam64(input)
        self.assertTrue(suc)
        self.assertEqual(actual, expected)

        input = 'splewis'
        expected = '76561198064755913'
        suc, actual = steamid.auth_to_steam64(input)
        self.assertTrue(suc)
        self.assertEqual(actual, expected)
Example #2
0
    def test_auth_to_steam64(self):
        input = 'STEAM_0:1:52245092'
        expected = '76561198064755913'
        suc, actual = steamid.auth_to_steam64(input)
        self.assertTrue(suc)
        self.assertEqual(actual, expected)

        input = 'STEAM_1:1:52245092'
        expected = '76561198064755913'
        suc, actual = steamid.auth_to_steam64(input)
        self.assertTrue(suc)
        self.assertEqual(actual, expected)

        input = '76561198064755913'
        expected = '76561198064755913'
        suc, actual = steamid.auth_to_steam64(input)
        self.assertTrue(suc)
        self.assertEqual(actual, expected)

        input = '1:1:52245092'
        expected = '76561198064755913'
        suc, actual = steamid.auth_to_steam64(input)
        self.assertTrue(suc)
        self.assertEqual(actual, expected)

        input = '[U:1:104490185]'
        expected = '76561198064755913'
        suc, actual = steamid.auth_to_steam64(input)
        self.assertTrue(suc)
        self.assertEqual(actual, expected)

        input = 'steamcommunity.com/profiles/76561198064755913'
        expected = '76561198064755913'
        suc, actual = steamid.auth_to_steam64(input)
        self.assertTrue(suc)
        self.assertEqual(actual, expected)

        input = 'http://steamcommunity.com/profiles/76561198064755913'
        expected = '76561198064755913'
        suc, actual = steamid.auth_to_steam64(input)
        self.assertTrue(suc)
        self.assertEqual(actual, expected)

        input = 'http://steamcommunity.com/profiles/76561198064755913/'
        expected = '76561198064755913'
        suc, actual = steamid.auth_to_steam64(input)
        self.assertTrue(suc)
        self.assertEqual(actual, expected)

        input = 'http://steamcommunity.com/id/splewis'
        expected = '76561198064755913'
        suc, actual = steamid.auth_to_steam64(input)
        self.assertTrue(suc)
        self.assertEqual(actual, expected)

        input = 'splewis'
        expected = '76561198064755913'
        suc, actual = steamid.auth_to_steam64(input)
        self.assertTrue(suc)
        self.assertEqual(actual, expected)
Example #3
0
def match_adduser(matchid):
    match = Match.query.get_or_404(matchid)
    app.logger.info("Our user: {}".format(g.user))
    admintools_check(match)
    server = GameServer.query.get_or_404(match.server_id)
    team = request.values.get('team')
    if not team:
        raise BadRequestError('No team specified')

    auth = request.values.get('auth')
    suc, new_auth = steamid.auth_to_steam64(auth)
    if suc:
        try:
            command = 'get5_addplayer {} {}'.format(new_auth, team)
            response = server.send_rcon_command(command, raise_errors=True)
            match_audit.create(g.user.id, matchid, datetime.now(), command)
            if (team == "spec"):
                MatchSpectator.set_or_create(matchid, new_auth)
            db.session.commit()
            flash(response)
        except util.RconError as e:
            flash('Failed to send command: ' + str(e))

    else:
        flash('Invalid steamid: {}'.format(auth))

    return redirect('/match/{}'.format(matchid))
Example #4
0
def valid_auth(form, field):
    # Ignore empty data fields
    if field.data is None or field.data == '':
        return

    # Otherwise validate and coerce to steam64
    suc, newauth = steamid.auth_to_steam64(field.data)
    if suc:
        field.data = newauth
    else:
        raise ValidationError('Invalid Steam ID')
Example #5
0
def valid_auth(form, field):
    # Ignore empty data fields
    if field.data is None or field.data == '':
        return

    # Otherwise validate and coerce to steam64
    suc, newauth = steamid.auth_to_steam64(field.data)
    if suc:
        field.data = newauth
    else:
        raise ValidationError('Invalid Steam ID')
Example #6
0
def match_adduser(matchid):
    match = Match.query.get_or_404(matchid)
    admintools_check(g.user, match)
    server = GameServer.query.get_or_404(match.server_id)
    team = request.values.get('team')
    if not team:
        raise BadRequestError('No team specified')

    auth = request.values.get('auth')
    suc, new_auth = steamid.auth_to_steam64(auth)
    if suc:
        try:
            command = 'get5_addplayer {} {}'.format(new_auth, team)
            response = server.send_rcon_command(command, raise_errors=True)
            flash(response)
        except util.RconError as e:
            flash('Failed to send command: ' + str(e))

    else:
        flash('Invalid steamid: {}'.format(auth))

    return redirect('/match/{}'.format(matchid))
Example #7
0
def match_adduser(matchid):
    match = Match.query.get_or_404(matchid)
    admintools_check(g.user, match)
    server = GameServer.query.get_or_404(match.server_id)
    team = request.values.get('team')
    if not team:
        raise BadRequestError('No team specified')

    auth = request.values.get('auth')
    suc, new_auth = steamid.auth_to_steam64(auth)
    if suc:
        try:
            command = 'get5_addplayer {} {}'.format(new_auth, team)
            response = server.send_rcon_command(command, raise_errors=True)
            flash(response)
        except util.RconError as e:
            flash('Failed to send command: ' + str(e))

    else:
        flash('Invalid steamid: {}'.format(auth))

    return redirect('/match/{}'.format(matchid))
Example #8
0
def match_create():
    if not g.user:
        return redirect('/login')

    form = MatchForm(request.form)
    form.add_teams(g.user)
    form.add_servers(g.user)
    form.add_seasons()

    if request.method == 'POST':
        num_matches = g.user.matches.count()
        max_matches = config_setting('USER_MAX_MATCHES')
        season_id = None

        if max_matches >= 0 and num_matches >= max_matches and not (
                g.user.admin or g.user.super_admin):
            flash(
                'You already have the maximum number of matches ({}) created'.
                format(num_matches))

        elif form.validate():
            mock = config_setting('TESTING')

            server = GameServer.query.get_or_404(form.data['server_id'])

            match_on_server = g.user.matches.filter_by(
                server_id=server.id, end_time=None, cancelled=False).first()

            server_available = False
            json_reply = None

            if g.user.id != server.user_id and not server.public_server:
                server_available = False
                message = 'This is not your server!'
            elif match_on_server is not None:
                server_available = False
                message = 'Match {} is already using this server'.format(
                    match_on_server.id)
            elif mock:
                server_available = True
                message = 'Success'
            else:
                json_reply, message = util.check_server_avaliability(
                    server, dbKey)
                server_available = (json_reply is not None)

            if server_available:
                skip_veto = 'preset' in form.data['series_type']
                try:
                    max_maps = int(form.data['series_type'][2])
                except ValueError:
                    max_maps = 1

                if form.data['season_selection'] != 0:
                    season_id = form.data['season_selection']

                # Series Score Feature.
                team1_series_score = form.data[
                    'team1_series_score'] if not None else 0
                team2_series_score = form.data[
                    'team2_series_score'] if not None else 0
                # End Series Score Feature.

                # Spectator Feature
                specList = []
                if form.data['spectator_string']:
                    for auth in form.data['spectator_string'].split():
                        suc, new_auth = steamid.auth_to_steam64(auth)
                        if suc:
                            specList.append(new_auth)
                if not specList:
                    specList = None
                # End Spectator Feature

                match = Match.create(
                    g.user, form.data['team1_id'], form.data['team2_id'],
                    form.data['team1_string'], form.data['team2_string'],
                    max_maps, skip_veto, form.data['match_title'],
                    form.data['veto_mappool'], season_id,
                    form.data['side_type'], form.data['veto_first'],
                    form.data['server_id'], team1_series_score,
                    team2_series_score, specList, form.data['private_match'],
                    form.data['enforce_teams'], form.data['min_player_ready'])

                # Save plugin version data if we have it
                if json_reply and 'plugin_version' in json_reply:
                    match.plugin_version = json_reply['plugin_version']
                else:
                    match.plugin_version = 'unknown'

                server.in_use = True

                db.session.commit()

                # Implement normalized spectator list.
                if specList:
                    for singleAuth in specList:
                        MatchSpectator.set_or_create(match.id, auth)

                app.logger.info(
                    'User {} created match {}, assigned to server {}'.format(
                        g.user.id, match.id, server.id))

                if mock or match.send_to_server():
                    return redirect('/mymatches')
                else:
                    flash('Failed to load match configs on server')
            else:
                flash(message)

        else:
            get5.flash_errors(form)

    return render_template(
        'match_create.html',
        form=form,
        user=g.user,
        teams=g.user.teams,
        match_text_option=config_setting('CREATE_MATCH_TITLE_TEXT'))