Exemple #1
0
def leaderboards_map(map, page=1):
    if map:
        stats_page = DBScore.query.filter_by(
            id=DBMap.get_id_for_game_map(map)).order_by(
                DBScore.tick_time * DBScore.tick_rate).paginate(page)
        if stats_page is not None:
            for stat in stats_page.items:
                try:
                    stat.timeconverted = float(
                        stat.tick_time) * time_convert[str(stat.tick_rate)]
                    stat.timeconverted = str(
                        datetime.timedelta(seconds=stat.timeconverted))
                    if "." in stat.timeconverted:
                        stat.timeconverted = stat.timeconverted[:-4]
                except:
                    print 'Exception caught on leaderboards main page while trying to query it.'
                    continue
            return render_template('leaderboards/index.html',
                                   stats_page=stats_page,
                                   map=map,
                                   qtype='map')
        else:
            flash('No runs recorded for ' + str(map))
            return redirect(url_for('leaderboards_main', page=page))
    else:
        flash('An error ocurred when trying to access runs for ' + str(map))
        return redirect(url_for('leaderboards_main', page=page))
def leaderboars_me_friendsruns(map=None, page=1,):
    try:
        idlist = current_user.get_friendslist()
        if idlist is not None:
            stats_page = DBScore.query.filter(DBScore.steamid.in_(idlist))
            if map is not None:
                stats_page = stats_page.filter_by(id=DBMap.get_id_for_game_map(map))
            stats_page = stats_page.order_by(DBScore.tick_time * DBScore.tick_rate).order_by(DBScore.mapid).paginate(page)
            if stats_page is not None:
                for stat in stats_page.items:
                    try:
                        stat.timeconverted = float(stat.tick_time) * time_convert[str(stat.tick_rate)]
                        stat.timeconverted = str(datetime.timedelta(seconds=stat.timeconverted))
                        if "." in stat.timeconverted:
                            stat.timeconverted = stat.timeconverted[:-4]
                    except:
                        print 'Exception caught on leaderboards main page while trying to query it.'
                        continue
                return render_template('leaderboards/index.html', stats_page=stats_page, map=map, qtype='myfriends')
            else:
                flash('No runs friend runs recorded')
                return redirect(url_for('leaderboards_main'))
        else:
            flash('You need some friends first :)')
            return redirect(url_for('leaderboards_main'))
    except:
        flash('An error ocurred when trying to access runs for ' + str(current_user.steamid))
        return redirect(url_for('leaderboards_main'))
def leaderboards_player(steamid,map=None,page=1):
    try:
        info = get_steam_userinfo(steamid)
        if info is not None:
            stats_page = DBScore.query.filter_by(steamid=steamid)
            if map is not None:
                stats_page = stats_page.filter_by(id=DBMap.get_id_for_game_map(map))
            stats_page = stats_page.order_by(DBScore.tick_time * DBScore.tick_rate).paginate(page)
            if stats_page is not None:
                for stat in stats_page.items:
                    try:
                        stat.timeconverted = float(stat.tick_time) * time_convert[str(stat.tick_rate)]
                        stat.timeconverted = str(datetime.timedelta(seconds=stat.timeconverted))
                        if "." in stat.timeconverted:
                            stat.timeconverted = stat.timeconverted[:-4]
                    except:
                        print 'Exception caught on leaderboards main page while trying to query it.'
                        continue
                return render_template('leaderboards/index.html', stats_page=stats_page, pinfo=info,map=map, qtype='player')
            else:
                flash('No runs recorded for ' + str(steamid))
                return redirect(url_for('leaderboards_main'))
        else:
            flash('Wrong steamid')
            return redirect(url_for('leaderboards_main'))
    except:
        flash('An error ocurred when trying to access runs for ' + str(steamid))
        return redirect(url_for('leaderboards_main'))
Exemple #4
0
def api_post_score(steamid, map, ticks, tickrate):
    response = {}
    if str(tickrate) not in time_convert:
        response['result'] = 'false'
        response['status'] = 'error'
        response['message'] = '#MOM_WebMsg_RunNotSaved_WrongTickrate'
        response['PBdiff'] = None
        return jsonify(json_list=[response])
    else:
        try:
            # takes 64-bit steamid
            mapid = DBMap.get_id_for_game_map(map)
            if mapid == -1:
                response['result'] = 'false'
                response['status'] = 'MissingMap'
                response['message'] = '#MOM_WebMsg_RunNotSaved_MapNotFound'
                response['PBdiff'] = None
                return jsonify(json_list=[response])
            personalbest = DBScore.query.filter_by(steamid=steamid).filter_by(
                mapid=mapid).order_by(DBScore.tick_time *
                                      DBScore.tick_rate).first()
            if personalbest is not None:
                if personalbest.tick_time * personalbest.tick_rate > tickrate * ticks:
                    response['message'] = '#MOM_WebMsg_RunSaved_NewPB'
                else:
                    response['message'] = '#MOM_WebMsg_RunSaved'
                response['PBdiff'] = float(
                    (time_convert[str(tickrate)] * ticks) -
                    (personalbest.tick_time *
                     time_convert[str(personalbest.tick_rate)]))
            else:
                response['message'] = '#MOM_WebMsg_FirstRunSaved'
                response['PBdiff'] = None
            score = DBScore(steamid, mapid, ticks, tickrate, 0)
            db.session.add(score)
            db.session.commit()
            response['result'] = 'true'
            response['status'] = 'submitted'
        except OperationalError as e:
            response['result'] = 'false'
            response['status'] = 'error'
            response[
                'message'] = '#MOM_WebMsg_RunNotSaved_InternalServerErrors'
            response['PBdiff'] = None
        return jsonify(json_list=[response])
Exemple #5
0
def leaderboars_me_friendsruns(
    map=None,
    page=1,
):
    try:
        idlist = current_user.get_friendslist()
        if idlist is not None:
            stats_page = DBScore.query.filter(DBScore.steamid.in_(idlist))
            if map is not None:
                stats_page = stats_page.filter_by(
                    id=DBMap.get_id_for_game_map(map))
            stats_page = stats_page.order_by(DBScore.tick_time *
                                             DBScore.tick_rate).order_by(
                                                 DBScore.mapid).paginate(page)
            if stats_page is not None:
                for stat in stats_page.items:
                    try:
                        stat.timeconverted = float(
                            stat.tick_time) * time_convert[str(stat.tick_rate)]
                        stat.timeconverted = str(
                            datetime.timedelta(seconds=stat.timeconverted))
                        if "." in stat.timeconverted:
                            stat.timeconverted = stat.timeconverted[:-4]
                    except:
                        print 'Exception caught on leaderboards main page while trying to query it.'
                        continue
                return render_template('leaderboards/index.html',
                                       stats_page=stats_page,
                                       map=map,
                                       qtype='myfriends')
            else:
                flash('No runs friend runs recorded')
                return redirect(url_for('leaderboards_main'))
        else:
            flash('You need some friends first :)')
            return redirect(url_for('leaderboards_main'))
    except:
        flash('An error ocurred when trying to access runs for ' +
              str(current_user.steamid))
        return redirect(url_for('leaderboards_main'))
Exemple #6
0
def api_post_score(steamid, map, ticks, tickrate):
    response = {}
    if str(tickrate) not in time_convert:
        response['result'] = 'false'
        response['status'] = 'error'
        response['message'] = '#MOM_WebMsg_RunNotSaved_WrongTickrate'
        response['PBdiff'] = None
        return jsonify(json_list=[response])
    else:
        try:
            # takes 64-bit steamid
            mapid = DBMap.get_id_for_game_map(map)
            if mapid == -1:
                response['result'] = 'false'
                response['status'] = 'MissingMap'
                response['message'] = '#MOM_WebMsg_RunNotSaved_MapNotFound'
                response['PBdiff'] = None
                return jsonify(json_list=[response])
            personalbest = DBScore.query.filter_by(steamid=steamid).filter_by(mapid=mapid).order_by(DBScore.tick_time * DBScore.tick_rate).first()
            if personalbest is not None:
                if personalbest.tick_time * personalbest.tick_rate > tickrate * ticks: 
                    response['message'] = '#MOM_WebMsg_RunSaved_NewPB'
                else:
                    response['message'] = '#MOM_WebMsg_RunSaved'
                response['PBdiff'] = float((time_convert[str(tickrate)] * ticks) - (personalbest.tick_time * time_convert[str(personalbest.tick_rate)]))
            else:
                response['message'] = '#MOM_WebMsg_FirstRunSaved'
                response['PBdiff'] = None
            score = DBScore(steamid, mapid, ticks, tickrate, 0)
            db.session.add(score)
            db.session.commit()  
            response['result'] = 'true'
            response['status'] = 'submitted'
        except OperationalError as e:
            response['result'] = 'false'
            response['status'] = 'error'
            response['message'] = '#MOM_WebMsg_RunNotSaved_InternalServerErrors'
            response['PBdiff'] = None
        return jsonify(json_list=[response])