Example #1
0
def add_platform():
    platform = Platform(request.form['name'])
    db_session.add(platform)
    try:
        db_session.commit()
    except Exception, e:
        return "Failed"
Example #2
0
def add_relation():
    in1 = request.form['g1_id']
    in2 = request.form['g2_id']
    if in1 == in2:
        return jsonify({"error":"Can not relate to self"})
    g1id = in1 if in1 < in2 else in2
    g2id = in2 if in1 < in2 else in1
    g1 = db_session.query(Game).get(g1id)
    g2 = db_session.query(Game).get(g2id)
    if g1 == None:
        return jsonify({"error":"Source id doesn't exist"})
    if g2 == None:
        return jsonify({"error":"Target id doesn't exist"})
    #Always least id first
    relation = db_session.query(Relation).get((g1.g_id,g2.g_id))
    if relation == None:
        print "Relation was None"
        relation = Relation(g1,g2)
        db_session.add(relation)
    else:
        relation.count = relation.count + 1
    try:
        db_session.commit()
    except Exception, e:
        return "Failed"
Example #3
0
def add_game():
    title = request.form['title']
    platform_id = str(request.form['platform_id'])
    games = Game.query.filter(Game.title.like(title)).all()
    exists = False
    for game in games:
        print "games like ", title, game.title
        if game.title == title and str(game.platform_id) == platform_id:
            exists = True
    if exists:
        return backend.get_error_response(
            message="A game with that title and platform already exists.",
            status_code=400)
    platform = db_session.query(Platform).get(request.form['platform_id'])
    if platform == None:
        print "Platform doesn't exist"
        return backend.get_error_response(message="Platform ID invalid.",
                                          status_code=401)
    game = Game(request.form['title'], platform)
    game.edited_by = g.backend_user.email
    db_session.add(game)
    db_session.commit()
    return jsonify({
        "game_id": game.g_id,
        "game_title": game.title,
        "platform": game.platform.name,
        "platform_id": game.platform.p_id,
        "info": game.info,
        "picture": game.picture,
        "release_date": game.release_date.strftime("%Y-%m-%d"),
        "developer": game.developer,
        "publisher": game.publisher,
        "edited_by": game.edited_by,
        "relations": game.relations
    })
Example #4
0
def edit_game(id):
    game = db_session.query(Game).get(id)
    game.title = request.form['title']
    platform = db_session.query(Platform).get(request.form['platform_id'])
    if not platform:
        return backend.get_error_response(message="Platform ID invalid.",
                                          status_code=400)
    game.platform = platform
    game.platform_id = platform.p_id
    games = Game.query.filter(Game.title.like(game.title)).all()
    exists = False
    for ga in games:
        print "game platform:", game.platform_id, " ", game.g_id
        print "ga platform:", ga.platform_id, " ", game.g_id
        if ga.g_id != game.g_id and game.title == ga.title and str(
                game.platform_id) == str(ga.platform_id):
            exists = True
    if exists:
        return backend.get_error_response(
            message="A game with that title and platform already exists.",
            status_code=400)
    game.info = request.form['info']
    game.release_date = dateutil.parser.parse(request.form['release_date'])
    game.developer = request.form['developer']
    game.publisher = request.form['publisher']
    game.edited_by = g.backend_user.email
    try:
        db_session.commit()
    except Exception, e:
        return backend.get_error_response(message="Info text too long.",
                                          status_code=400)
Example #5
0
def edit_image(id):
    print "Edit image backend"
    image = request.files['image']
    #fn = secure_filename(f.filename)
    #f_size = sys.getsizeof(f)
    # Makea da fix @ adding to database lol.

    game = db_session.query(Game).get(id)
    game.image = image.read()
    game.image_name = image.filename
    game.image_size = sys.getsizeof(image)
    game.picture = BACKEND_URL + '/game/' + str(id) + '/image/'
    db_session.commit()
    return jsonify({
        "game_id": game.g_id,
        "game_title": game.title,
        "platform": game.platform.name,
        "platform_id": game.platform.p_id,
        "info": game.info,
        "picture": game.picture,
        "release_date": game.release_date.strftime("%Y-%m-%d"),
        "developer": game.developer,
        "publisher": game.publisher,
        "edited_by": game.edited_by,
        "relations": game.relations
    })
Example #6
0
def add_game_relations(id):
    if id == request.form['g_id']:
        return jsonify({"error":"Can not relate to self"})
    g1id = id if id < int(request.form['g_id']) else request.form['g_id']
    print "low id: ", g1id
    g2id = request.form['g_id'] if id < int(request.form['g_id']) else id
    print "high id: ", g2id
    g1 = db_session.query(Game).get(g1id)
    g2 = db_session.query(Game).get(g2id)
    if g1 == None:
        if g1id == id:
            return backend.get_error_response(
                message="Source id doesn't exist",
                status_code=404)
        else:
            return backend.get_error_response(
                message="Target id doesn't exist",
                status_code=404)
    if g2 == None:
        if g2id == id:
            return backend.get_error_response(
                message="Source id doesn't exist",
                status_code=404)
        else:
            return backend.get_error_response(
                message="Target id doesn't exist",
                status_code=404)

    uniqueRelation = db_session.query(UniqueRelation).get((g.backend_user.openid, g1.g_id, g2.g_id))
    print "unik relation", uniqueRelation

    if uniqueRelation != None:
        print "Not unique relation"
        return backend.get_error_response(message="You have already done this relation earlier", status_code=404)
    else:
        #Target-game from users point of view
        game = db_session.query(Game).get(request.form['g_id'])
        #Always least id first
        relation = db_session.query(Relation).get((g1.g_id,g2.g_id))
        if relation == None:
            print "Relation was None"
            relation = Relation(g1,g2)
            db_session.add(relation)
            uniqueRelation = UniqueRelation(g.backend_user.openid, g1.g_id, g2.g_id)
            db_session.add(uniqueRelation)
        else:
            print "Relation already existed"
            relation.count = relation.count + 1
            uniqueRelation =UniqueRelation(g.backend_user.openid, relation.game1_id, relation.game2_id)
            db_session.add(uniqueRelation)
        print "relation: ", relation
        print "relations: ", relation.count
        g1.relations = g1.relations + 1
        g2.relations = g2.relations + 1
    try:
        db_session.commit()
    except Exception, e:
        return backend.get_error_response(
                message="Commit has failed.",
                status_code=404)
Example #7
0
def add_game():
    title = request.form['title']
    platform_id = str(request.form['platform_id'])
    games = Game.query.filter(Game.title.like(title)).all()
    exists = False
    for game in games:
        print "games like ", title, game.title
        if game.title == title and str(game.platform_id) == platform_id:
            exists = True
    if exists:
        return backend.get_error_response(
                message="A game with that title and platform already exists.",
                status_code=400)
    platform = db_session.query(Platform).get(request.form['platform_id'])
    if platform == None:
        print "Platform doesn't exist"
        return backend.get_error_response(
            message="Platform ID invalid.",
            status_code=401)
    game = Game(request.form['title'], platform)
    game.edited_by = g.backend_user.email
    db_session.add(game)
    db_session.commit()
    return jsonify({"game_id":game.g_id,
                    "game_title":game.title,
                    "platform":game.platform.name,
                    "platform_id":game.platform.p_id,
                    "info":game.info,
                    "picture":game.picture,
                    "release_date":game.release_date.strftime("%Y-%m-%d"),
                    "developer":game.developer,
                    "publisher":game.publisher,
                    "edited_by":game.edited_by,
                    "relations":game.relations})
Example #8
0
def edit_game(id):
    game = db_session.query(Game).get(id)
    game.title = request.form['title']
    platform = db_session.query(Platform).get(request.form['platform_id'])
    if not platform:
        return backend.get_error_response(
            message="Platform ID invalid.",
            status_code=400)
    game.platform = platform
    game.platform_id = platform.p_id
    games = Game.query.filter(Game.title.like(game.title)).all()
    exists = False
    for ga in games:
        print "game platform:", game.platform_id, " ", game.g_id
        print "ga platform:", ga.platform_id, " ", game.g_id
        if ga.g_id != game.g_id and game.title == ga.title and str(game.platform_id) == str(ga.platform_id):
            exists = True
    if exists:
        return backend.get_error_response(
                message="A game with that title and platform already exists.",
                status_code=400)
    game.picture = request.form['picture']
    game.info = request.form['info']
    game.release_date = dateutil.parser.parse(request.form['release_date'])
    game.developer = request.form['developer']
    game.publisher = request.form['publisher']
    game.edited_by = g.backend_user.email
    try:
        db_session.commit()
    except Exception, e:
        return backend.get_error_response(
            message="Info text too long.",
            status_code=400)
Example #9
0
def add_platform():
    platform = Platform(request.form['name'])
    db_session.add(platform)
    try:
        db_session.commit()
    except Exception, e:
        return "Failed"
Example #10
0
def api_login():
    if not "openid" in session:
        print "no openid in session redirecting to google"
        return oid.try_login( 'https://www.google.com/accounts/o8/id', ask_for=['email'])
    else:
        print "openid in session: ", session['openid']
        user = db_session.query(User).filter_by(openid=session['openid']).first()
        if user is None:
            return backend.get_error_response(
                message="No user with that openid exists.",
                status_code=404)
        user.generate_new_ott()
        db_session.commit()
        return redirect(FRONTEND_URL + '/auth/?one_time_token=%s' % user.one_time_token)
Example #11
0
def api_login():
    if not "openid" in session:
        print "no openid in session redirecting to google"
        return oid.try_login('https://www.google.com/accounts/o8/id',
                             ask_for=['email'])
    else:
        print "openid in session: ", session['openid']
        user = db_session.query(User).filter_by(
            openid=session['openid']).first()
        if user is None:
            return backend.get_error_response(
                message="No user with that openid exists.", status_code=404)
        user.generate_new_ott()
        db_session.commit()
        return redirect(FRONTEND_URL +
                        '/auth/?one_time_token=%s' % user.one_time_token)
Example #12
0
def api_token():
    print "api token"
    ott = request.form.get('one_time_token', None)
    #ott = request.args.get("one_time_token", None)
    if not ott:
        print "/api/token/ there was no one time token"
        return backend.get_error_response(
            message="No OneTimeToken was provided.", status_code=404)
    # Get one time token from database
    # check if it existed as described in database
    user = db_session.query(User).filter_by(one_time_token=ott).first()
    if user is None:
        print "Invalid one time token"
        return backend.get_error_response(
            message="The one time token was invalid, try logging in again.",
            status_code=404)
    user.generate_new_token()
    db_session.commit()
    return user.token
Example #13
0
def api_token():
    print "api token"
    ott = request.form.get('one_time_token', None)
    #ott = request.args.get("one_time_token", None)
    if not ott:
        print "/api/token/ there was no one time token"
        return backend.get_error_response(
            message="No OneTimeToken was provided.",
            status_code=404)
    # Get one time token from database 
    # check if it existed as described in database
    user = db_session.query(User).filter_by(one_time_token=ott).first()
    if user is None:
        print "Invalid one time token"
        return backend.get_error_response(
            message="The one time token was invalid, try logging in again.",
            status_code=404)
    user.generate_new_token()
    db_session.commit()
    return user.token
Example #14
0
def edit_image(id):
    image = request.files['image']
    #fn = secure_filename(f.filename)
    #f_size = sys.getsizeof(f) 
    # Makea da fix @ adding to database lol.

    game = db_session.query(Game).get(id)
    game.image = image.read()
    game.image_name = image.filename
    game.image_size = sys.getsizeof(image)
    db_session.commit()
    return jsonify({"game_id":game.g_id,
                    "game_title":game.title,
                    "platform":game.platform.name,
                    "platform_id":game.platform.p_id,
                    "info":game.info,
                    "picture":game.picture,
                    "release_date":game.release_date.strftime("%Y-%m-%d"),
                    "developer":game.developer,
                    "publisher":game.publisher,
                    "edited_by":game.edited_by,
                    "relations":game.relations})
Example #15
0
def create_or_login(resp):
    print "create or login"
    session['openid'] = resp.identity_url
    user = db_session.query(User).filter_by(openid=resp.identity_url).first()
    if user is not None:
        #flash(u'Successfully signed in')
        print "user found - openid: ", session['openid']
        g.user = user
        user.generate_new_ott()
        db_session.commit()
        return redirect(FRONTEND_URL + '/auth/?one_time_token=%s' % user.one_time_token)
    print "no user - openid: ", session['openid']
    user = User(openid=session['openid'], email=resp.email)
    db_session.add(user)
    db_session.commit()
    user.generate_new_ott()
    db_session.commit()
    return redirect(FRONTEND_URL + '/auth/?one_time_token=%s' % user.one_time_token)
Example #16
0
def create_or_login(resp):
    print "create or login"
    session['openid'] = resp.identity_url
    user = db_session.query(User).filter_by(openid=resp.identity_url).first()
    if user is not None:
        #flash(u'Successfully signed in')
        print "user found - openid: ", session['openid']
        g.user = user
        user.generate_new_ott()
        db_session.commit()
        return redirect(FRONTEND_URL +
                        '/auth/?one_time_token=%s' % user.one_time_token)
    print "no user - openid: ", session['openid']
    user = User(openid=session['openid'], email=resp.email)
    db_session.add(user)
    db_session.commit()
    user.generate_new_ott()
    db_session.commit()
    return redirect(FRONTEND_URL +
                    '/auth/?one_time_token=%s' % user.one_time_token)
Example #17
0
def init_server():
    # -- Clients --
    c1 = Client(1337, "you no take candle")
    db_session.add(c1)

    #**********platforms************
    p1 = Platform("PC")
    db_session.add(p1)
    p2 = Platform("Xbox 360")
    db_session.add(p2)
    p3 = Platform("PlayStation 3")
    db_session.add(p3)
    p4 = Platform("PlayStation 4")
    db_session.add(p4)
    p5 = Platform("Xbox One")
    db_session.add(p5)
    p6 = Platform("Nintendo Entertainment System")
    db_session.add(p6)
    db_session.commit()
    #**********games************
    game1 = Game("Battlefield 3",p1)
    game1.developer = "DICE"
    game1.info = "Battlefield 3 is a First-Person Shooter (FPS) that is designed to attack your senses, delivering a visceral combat experience like no other FPS before it. Sequel to 2005's Battlefield 2, Battlefield 3 utilizes the updated Frostbite 2 game engine, which allows for advanced destruction, sound, and graphics as well as a focus on dense in-game urban settings."
    game1.picture = "http://upload.wikimedia.org/wikipedia/en/6/69/Battlefield_3_Game_Cover.jpg"
    game1.publisher = "EA"
    game1.release_date =  dateutil.parser.parse("2011-10-25")
    #game1.relations = 3
    game1.edited_by = "*****@*****.**"
    db_session.add(game1)

    game2 = Game("ARMA 3",p1)
    game2.developer = "Bohemia Interactive"
    game2.info = "After years of intense warfare against Eastern armies, Europe has become the last stand for the battered NATO forces. On the verge of being driven into the sea, NATO command embarks upon a most desperate measure. In the hope of seizing what seems to be a well-guarded military secret, Operation Magnitude is launched. A small group of Special Forces and Researchers are sent to a Mediterranean island deep behind enemy lines."
    game2.picture = "http://www.blogcdn.com/www.joystiq.com/media/2013/03/arma-3-cover.jpg"
    game2.publisher = "Bohemia Interactive"
    game2.release_date =  dateutil.parser.parse("2013-09-12")
    #game2.relations = 2
    game2.edited_by = "*****@*****.**"
    db_session.add(game2)

    game3 = Game("Grand Theft Auto: Vice City",p1)
    game3.developer = "Rockstar North"
    game3.info = "SOMETEXT"
    game3.picture = "http://upload.wikimedia.org/wikipedia/en/c/ce/Vice-city-cover.jpg"
    game3.publisher = "Rockstar"
    game3.release_date =  dateutil.parser.parse("2002-10-27")
    #game3.relations = 2
    game3.edited_by = "*****@*****.**"
    db_session.add(game3)

    game4 = Game("Battlefield 4",p1)
    game4.developer = "DICE"
    game4.info = "Battlefield 4 is the genre-defining action blockbuster made from moments that blur the line between game and glory. Fueled by the next-generation power and fidelity of Frostbite 3, Battlefield 4 provides a visceral, dramatic experience unlike any other."
    game4.picture = "http://upload.wikimedia.org/wikipedia/en/e/ed/Battlefield_4.jpg"
    game4.publisher = "EA"
    game4.release_date =  dateutil.parser.parse("2013-10-29")
    #game4.relations = 2
    game4.edited_by = "*****@*****.**"
    db_session.add(game4)

    game5 = Game("Minecraft",p1)
    game5.developer = "Mojang"
    game5.info = "Minecraft is a sandbox indie game originally created by Swedish programmer Markus \"Notch\" Persson and later developed and published by Mojang. It was publicly released for the PC on May 17, 2009, as a developmental alpha version and, after gradual updates, was published as a full release version on November 18, 2011."
    game5.picture = "http://pcgamerparadise.com/images/Minecraft_cover.jpg"
    game5.publisher = "Mojang"
    game5.release_date =  dateutil.parser.parse("2009-05-17")
    #game5.relations = 2
    game5.edited_by = "*****@*****.**"
    db_session.add(game5)

    game6 = Game("Terraria",p1)
    game6.developer = "Re-Logic"
    game6.info = "Terraria is an open-ended sandbox 2D game with gameplay revolved around exploration, building, and action. The game has a 2D sprite tile-based graphical style reminiscent of the 16-bit sprites found on the SNES. The game is noted for its classic exploration-adventure style of play, similar to titles such as Metroid and Minecraft."
    game6.picture = "http://www.pageofreviews.com/wp-content/uploads/terraria1.png"
    game6.publisher = "Re-Logic"
    game6.release_date =  dateutil.parser.parse("2011-05-16")
    #game6.relations = 1
    game6.edited_by = "*****@*****.**"
    db_session.add(game6)

    game7 = Game("Ace of Spades",p1)
    game7.developer = "Jagex Game Studio"
    game7.info = "Ace of Spades is a sandbox building and FPS game, originally developed by Ben Aksoy for the PC and released in 2011 as a beta version. In late 2012, RuneScape developer, Jagex took over development of the game, making it payware on Steam and updating its gameplay."
    game7.picture = "http://media.ign.com/games/image/object/106/106949/Ace-Of-Spades_PCDL.jpg"
    game7.publisher = "Jagex Game Studio"
    game7.release_date =  dateutil.parser.parse("2012-12-12")
    #game7.relations = 2
    game7.edited_by = "*****@*****.**"
    db_session.add(game7)

    game8 = Game("Fallout 2",p1)
    game8.developer = ""
    game8.info = ""
    game8.picture = "http://pics.mobygames.com/images/covers/large/1124464345-00.jpg"
    game8.publisher = ""
    game8.release_date =  dateutil.parser.parse("2013-12-29")
    game8.edited_by = "*****@*****.**"
    db_session.add(game8)

    game9 = Game("Dishonored",p1)
    game9.developer = "Arkane Studios"
    game9.info = ""
    game9.picture = "http://i.imgur.com/CMiXt.jpg"
    game9.publisher = "Bethesda Softworks"
    game9.release_date =  dateutil.parser.parse("2012-10-09")
    #game9.relations = 1
    game9.edited_by = "*****@*****.**"
    db_session.add(game9)

    game10 = Game("Saints Row IV",p1)
    game10.developer = "Volition Inc"
    game10.info = ""
    game10.picture = "http://fronttowardsgamer.com/wp-content/uploads/2013/05/srivbox.jpg"
    game10.publisher = "Deep Silver"
    game10.release_date =  dateutil.parser.parse("2013-08-20")
    #game10.relations = 1
    game10.edited_by = "*****@*****.**"
    db_session.add(game10)

    game11 = Game("Prototype 2",p1)
    game11.developer = "Radical Entertainment"
    game11.info = "SOMETEXT"
    game11.picture = "http://www.yellmagazine.com/wp-content/uploads/2012/05/prototype-2-cover.jpg"
    game11.publisher = "Activision"
    game11.release_date =  dateutil.parser.parse("2012-04-24")
    #game11.relations = 2
    game11.edited_by = "*****@*****.**"
    db_session.add(game11)

    """
    #***********relation*********************
    rel = Relation(game1, game2)    #BF3 -> ARMA 3
    db_session.add(rel)
    rel = Relation(game1, game4)    #BF3 -> BF4
    db_session.add(rel)
    rel = Relation(game2, game4)    #BF4 -> ARMA 3
    db_session.add(rel)
    rel = Relation(game1, game7)    #BF3 -> Ace of spades
    db_session.add(rel)
    rel = Relation(game5, game7)    #Minecraft -> Ace of spades
    db_session.add(rel)
    rel = Relation(game5, game6)    #Minecraft -> Terraria
    db_session.add(rel)
    rel = Relation(game3, game11)    #GTA:Vice city -> prototype 2
    db_session.add(rel)
    rel = Relation(game3, game10)    #GTA:Vice city -> Saints row
    db_session.add(rel)
    rel = Relation(game11, game9)    #prototype 2 -> Dishonored
    db_session.add(rel)
    """
    db_session.commit()
    return redirect(url_for('backend.games'))
Example #18
0
def add_game_relations(id):
    if id == request.form['g_id']:
        return jsonify({"error": "Can not relate to self"})
    g1id = id if id < int(request.form['g_id']) else request.form['g_id']
    print "low id: ", g1id
    g2id = request.form['g_id'] if id < int(request.form['g_id']) else id
    print "high id: ", g2id
    g1 = db_session.query(Game).get(g1id)
    g2 = db_session.query(Game).get(g2id)
    if g1 == None:
        if g1id == id:
            return backend.get_error_response(
                message="Source id doesn't exist", status_code=404)
        else:
            return backend.get_error_response(
                message="Target id doesn't exist", status_code=404)
    if g2 == None:
        if g2id == id:
            return backend.get_error_response(
                message="Source id doesn't exist", status_code=404)
        else:
            return backend.get_error_response(
                message="Target id doesn't exist", status_code=404)

    uniqueRelation = db_session.query(UniqueRelation).get(
        (g.backend_user.openid, g1.g_id, g2.g_id))
    print "unik relation", uniqueRelation

    if uniqueRelation != None:
        print "Not unique relation"
        return backend.get_error_response(
            message="You have already done this relation earlier",
            status_code=404)
    else:
        #Target-game from users point of view
        game = db_session.query(Game).get(request.form['g_id'])
        #Always least id first
        relation = db_session.query(Relation).get((g1.g_id, g2.g_id))
        if relation == None:
            print "Relation was None"
            relation = Relation(g1, g2)
            db_session.add(relation)
            uniqueRelation = UniqueRelation(g.backend_user.openid, g1.g_id,
                                            g2.g_id)
            db_session.add(uniqueRelation)
        else:
            print "Relation already existed"
            relation.count = relation.count + 1
            uniqueRelation = UniqueRelation(g.backend_user.openid,
                                            relation.game1_id,
                                            relation.game2_id)
            db_session.add(uniqueRelation)
        print "relation: ", relation
        print "relations: ", relation.count
        g1.relations = g1.relations + 1
        g2.relations = g2.relations + 1
    try:
        db_session.commit()
    except Exception, e:
        return backend.get_error_response(message="Commit has failed.",
                                          status_code=404)