CoolFace
Apppublic

tracinginsights/api

sourceHugging Faceupdated 3y agoView on Hugging Face
1likes
utils.py180 linesDownload Raw Back to root
1import json2 3import requests4 5 6# make sure that year can be from 2018 to current year7class LatestData:8 9    def __init__(self, year):10 11        self.year = year12        self.data = self.get_f1_data()13        self.events = self.get_events()14 15    def get_f1_data(self):16        response = requests.get(17            f"https://livetiming.formula1.com/static/{self.year}/Index.json", timeout=5)18        if response.status_code == 200:19            try:20                data = response.content.decode("utf-8-sig")21                return json.loads(data)22            except json.JSONDecodeError as e:23                print("Failed to parse JSON data:", e)24                return None25        else:26            print("Failed to get data. Status code:", response.status_code)27            return None28 29    def get_events(self):30        events = []31        for meeting in self.data['Meetings']:32            events.append(meeting['Name'])33 34        return events35 36    def get_sessions(self, event):37        sessions = []38        for meeting in self.data['Meetings']:39            if meeting['Name'] == event:40                for session in meeting['Sessions']:41                    sessions.append(session['Name'])42 43        return sessions44 45 46def team_colors(year: int) -> dict:47    team_colors = {}48 49    if year == 2023:50        team_colors = {51            "Red Bull Racing": "#ffe119",52            "Ferrari": "#e6194b",53            "Aston Martin": "#3cb44b",54            "Mercedes": "#00c0bf",55            "Alpine": "#f032e6",56            "Haas F1 Team": "#ffffff",57            "McLaren": "#f58231",58            "Alfa Romeo": "#800000",59            "AlphaTauri": "#dcbeff",60            "Williams": "#4363d8",61 62            "Red Bull Racing Honda RBPT": "#ffe119",63            "Ferrari": "#e6194b",64            "Aston Martin Aramco Mercedes": "#3cb44b",65            "Mercedes": "#00c0bf",66            "Alpine Renault": "#f032e6",67            "Haas Ferrari": "#ffffff",68            "McLaren Mercedes": "#f58231",69            "Alfa Romeo Ferrari": "#800000",70            "AlphaTauri Honda RBPT": "#dcbeff",71            "Williams Mercedes": "#4363d8",72            "Red Bull": "#ffe119",73            "Alpine F1 Team": "#f032e6",74 75 76 77        }78    if year == 2022:79 80        team_colors = {81            "Red Bull Racing": "#ffe119",82            "Ferrari": "#e6194b",83            "Aston Martin": "#3cb44b",84            "Mercedes": "#00c0bf",85            "Alpine": "#f032e6",86            "Haas F1 Team": "#ffffff",87            "McLaren": "#f58231",88            "Alfa Romeo": "#800000",89            "AlphaTauri": "#dcbeff",90            "Williams": "#4363d8",91 92            "Red Bull": "#ffe119",93            "Alpine F1 Team": "#f032e6",94 95 96        }97 98    if year == 2021:99 100        team_colors = {101            "Red Bull Racing": "#ffe119",102            "Mercedes": "#00c0bf",103            "Ferrari": "#e6194b",104            "Alpine": "#f032e6",105            "McLaren": "#f58231",106            "Alfa Romeo Racing": "#800000",107            "Aston Martin": "#3cb44b",108            "Haas F1 Team": "#ffffff",109            "AlphaTauri": "#dcbeff",110            "Williams": "#4363d8",111 112            "Red Bull": "#ffe119",113            "Alpine F1 Team": "#f032e6",114            "Alfa Romeo": "#800000",115 116 117        }118 119    if year == 2020:120 121        team_colors = {122            "Red Bull Racing": "#000099",123            "Renault": "#ffe119",124            "Racing Point": "#f032e6",125            "Mercedes": "#00c0bf",126            "Ferrari": "#e6194b",127            "McLaren": "#f58231",128            "Alfa Romeo Racing": "#800000",129            "Haas F1 Team": "#ffffff",130            "AlphaTauri": "#dcbeff",131            "Williams": "#4363d8",132 133            "Red Bull": "#000099",134            "Alfa Romeo": "#800000",135 136 137        }138 139    if year == 2019:140 141        team_colors = {142            "Red Bull Racing": "#000099",143            "Renault": "#ffe119",144            "Racing Point": "#f032e6",145            "Toro Rosso": "#dcbeff",146            "Mercedes": "#00c0bf",147            "Ferrari": "#e6194b",148            "McLaren": "#f58231",149            "Alfa Romeo Racing": "#800000",150            "Haas F1 Team": "#ffffff",151            "Williams": "#4363d8",152 153            "Red Bull": "#000099",154            "Alfa Romeo": "#800000",155 156 157        }158 159    if year == 2018:160 161        team_colors = {162            "Red Bull Racing": "#000099",163            "Renault": "#ffe119",164            "Toro Rosso": "#dcbeff",165            "Force India": "#f032e6",166            "Sauber": "#800000",167            "Mercedes": "#00c0bf",168            "Ferrari": "#e6194b",169            "McLaren": "#f58231",170            "Haas F1 Team": "#ffffff",171            "Williams": "#4363d8",172 173            "Red Bull": "#000099",174 175 176 177        }178 179    return team_colors180