def update_games_data(games, update_value=False):
    games_to_add = []
    games_to_update_value = []
    existing_games = MySqlConnector.get_existing_games_data(games.keys())
    for game in sorted(games.values(), key=lambda x: x.game_name):
        game_name = game.game_name.decode('utf-8')
        if game_name not in existing_games.keys():
            update_game_data(game)
            games_to_add.append(game)
        elif update_value and game.value != existing_games[game_name].value:
            games_to_update_value.append(game)

    if games_to_add:
        MySqlConnector.save_games(games_to_add)

    if games_to_update_value:
        MySqlConnector.update_existing_games(games_to_update_value)
def update_all_db_games_data():
    #Load all games from DB
    games = MySqlConnector.get_all_games()
    #Go over all games, and update their data
    changed_games = []
    removed_games = []
    for game_data in games:
        new_game_data = GameData(game_data.game_name, game_data.game_link, game_data.value)
        update_game_data(new_game_data)
        if game_data.num_of_reviews == -1 and game_data.steam_score == -1 and game_data.equals(new_game_data):
            removed_games.append(new_game_data)
        elif not game_data.equals(new_game_data):
            changed_games.append(new_game_data)
    # Save changed games to the DB
    if changed_games:
        MySqlConnector.update_existing_games(changed_games)
    # Delete from DB Games with no available data
    if removed_games:
        MySqlConnector.remove_games(removed_games)