def test_update():
    table = dynamo.table_ceplayer
    index = 'name-index'
    key = 'name'
    value = 'Testplayer1'
    data = {"rank": "Raider", "class": "Warlock"}
    dynamo.generic_update(table, index, key, value, data)
예제 #2
0
파일: bench.py 프로젝트: TimRoadley/ce
def bench(bench_name, bench_date, players):
    recorded = utc_from_date_string(bench_date)
    data = {
        "bench_date": bench_date,
        "players": players,
        "recorded": recorded,
    }
    table = dynamo.table_cebench
    index = 'bench_name-recorded-index'
    key = 'bench_name'
    value = bench_name
    dynamo.generic_update(table, index, key, value, data, timestamp_key='recorded', timestamp_value=recorded)
예제 #3
0
def test_update():
    table = dynamo.table_cestanding
    index = 'name-recorded-index'
    key = 'name'
    value = 'zzzTestUser1'
    timestamp_key = 'recorded'
    timestamp_value = 1599028400
    data = {"ep": 10000, "gp": 20000}
    dynamo.generic_update(table,
                          index,
                          key,
                          value,
                          data,
                          timestamp_key=timestamp_key,
                          timestamp_value=timestamp_value)
예제 #4
0
파일: handler.py 프로젝트: TimRoadley/ce
def update_players(event, context):

    print('## EVENT')
    print(event)

    records = 0
    data = {}
    for record in event['Records']:
        records += 1
        bucket = record['s3']['bucket']['name']  # ce-standings
        key = unquote_plus(
            record['s3']['object']['key'])  # 2020/2020-07-29_standings.json
        date_utc = utc_from_filekey(key)
        tmpkey = key.replace('/', '')
        download_path = '/tmp/{}{}'.format(uuid.uuid4(), tmpkey)
        s3_client = boto3.client('s3')
        s3_client.download_file(bucket, key, download_path)
        result = load_json(download_path)

        print('## RESULT')
        print(result)

        roster = result.get('roster')
        if roster != None:
            print('## ROSTER')

            for player in roster:
                # ["Absolute","Hunter","Alt",0,100,0]
                player_name = player[0]
                player_class = player[1]
                player_rank = player[2]
                player_ep = player[3]
                player_gp = player[4]
                player_priority = player[5]

                if player_rank == "Alt":
                    print('Skipped ALT', player_rank, player_class,
                          player_name)

                elif player_name == "Agielz" or player_name == "Leiga" or player_name == "Agiels":
                    print('Skipped AGIELx ALTS', player_rank, player_class,
                          player_name)

                elif player_name == "Kf":
                    print('Skipped GKICKED', player_rank, player_class,
                          player_name)

                elif player_gp == 100 and player_ep == 0 and player_priority == 0:
                    print('Skipped INACTIVE', player_rank, player_class,
                          player_name)

                else:
                    print('>>> UPDATING', player_rank, player_class,
                          player_name, "GP", player_gp, "EP", player_ep,
                          "PRIORITY", player_priority)

                    # Update ceplayer
                    data = {
                        "class": player_class,
                        "rank": player_rank,
                        "latest_ep": player_ep,
                        "latest_gp": player_gp,
                        "latest_priority": player_priority,
                        "latest_update":
                        date_utc  # TODO: run a post process to align with the latest data in cestanding
                    }
                    dynamo.generic_update(dynamo.table_ceplayer, 'name-index',
                                          'name', player_name, data)

                    # Update cestanding
                    data = {
                        "ep": player_ep,
                        "gp": player_gp,
                        "priority": player_priority,
                        "recorded":
                        date_utc  # TODO: run a post process to align with the latest data in cestanding
                    }
                    dynamo.generic_update(dynamo.table_cestanding,
                                          'name-recorded-index',
                                          'name',
                                          player_name,
                                          data,
                                          timestamp_key='recorded')

    print('## END')

    body = {"original_event": event, "records": records, "data": data}

    response = {"statusCode": 200, "body": json.dumps(body)}

    return response