View full version

Exporting Rabona teams into EXCEL files


The team page on Rabona doesn't let you filter/sort players by their properties. I've needed that functionality to plan my next season's roaster, so I have decided to hack a quick script to get the data and export it to excel (.xlsx format)

import pandas as pdfrom rabona_python import RabonaClientPLAYER_TYPE_GOAL_KEEPER = "1"PLAYER_TYPE_DEFENDER = "2"PLAYER_TYPE_MIDFIELDER = "3"PLAYER_TYPE_ATTACKER = "4"PLAYER_TYPE_MAP = {    PLAYER_TYPE_GOAL_KEEPER: "goal keeper",    PLAYER_TYPE_DEFENDER: "defender",    PLAYER_TYPE_MIDFIELDER: "midfielder",    PLAYER_TYPE_ATTACKER: "attacker",}def get_players(username):    # https://api.rabona.io/team?user=emrebeyler    rabona_client = RabonaClient()    players = rabona_client.team(user=username)    return playersdef normalize_players(players):    normalized_players = []    for player in players:        # human readable type        player["position"] = PLAYER_TYPE_MAP.get(player["type"])        player["OS"] = player["overall_strength"]        player["GK"] = player["goalkeeping"]        player["TP"] = player["teamplayer"]        # not needed        del player["type"]        del player["ask_id"]        del player["teamplayer"]        del player["goalkeeping"]        normalized_players.append(player)    return normalized_playersdef main(username):    players = normalize_players(get_players(username)["players"])    df = pd.DataFrame(players, columns=[        "uid",        "name",        "position",        "age",        "OS",        "GK",        "defending",        "passing",        "dribbling",        "shot",        "headball",        "form",        "speed",        "cleverness",        "TP",        "endurance",        "vulnerability",        "no_yellow_cards",        "salary",        "games_blocked",        "games_injured",        "for_sale",        "frozen",    ])    print(df)    df.to_excel(f"players_{username}.xlsx", header=True)main("emrebeyler")

Just update the first argument in the main function with your username and let the script run. A new file (players_{username} will be created on the script's directory.) You need Python3, pandas, and rabona_python libraries.

Result


I might transform this into a small web app so that you can download the same excel without knowing any scripting spells. Just let me know if that would be something useful for you.