|
1 | 1 | import json
|
2 | 2 | import logging
|
3 | 3 | import uuid
|
| 4 | +from enum import Enum |
4 | 5 |
|
5 | 6 | import requests
|
6 | 7 | from affluence.line_mappings import line_end_points
|
7 | 8 |
|
| 9 | +logging.basicConfig(level=logging.INFO) |
| 10 | + |
| 11 | + |
| 12 | +class LineID(Enum): |
| 13 | + RER_A = "LIG:IDFM:C01742" |
| 14 | + RER_B = "LIG:IDFM:C01743" |
| 15 | + RER_C = "LIG:IDFM:C01727" |
| 16 | + RER_D = "LIG:IDFM:C01728" |
| 17 | + RER_E = "LIG:IDFM:C01729" |
| 18 | + TRANSILIEN_H = "LIG:IDFM:C01737" |
| 19 | + TRANSILIEN_J = "LIG:IDFM:C01739" |
| 20 | + TRANSILIEN_K = "LIG:IDFM:C01738" |
| 21 | + TRANSILIEN_L = "LIG:IDFM:C01740" |
| 22 | + TRANSILIEN_N = "LIG:IDFM:C01736" |
| 23 | + TRANSILIEN_P = "LIG:IDFM:C01730" |
| 24 | + TRANSILIEN_R = "LIG:IDFM:C01731" |
| 25 | + TRANSILIEN_U = "LIG:IDFM:C01741" |
| 26 | + METRO_1 = "LIG:IDFM:C01371" |
| 27 | + METRO_2 = "LIG:IDFM:C01372" |
| 28 | + METRO_3 = "LIG:IDFM:C01373" |
| 29 | + METRO_3BIS = "LIG:IDFM:C01386" |
| 30 | + METRO_4 = "LIG:IDFM:C01374" |
| 31 | + METRO_5 = "LIG:IDFM:C01375" |
| 32 | + METRO_6 = "LIG:IDFM:C01376" |
| 33 | + METRO_7 = "LIG:IDFM:C01377" |
| 34 | + METRO_7BIS = "LIG:IDFM:C01387" |
| 35 | + METRO_8 = "LIG:IDFM:C01378" |
| 36 | + METRO_9 = "LIG:IDFM:C01379" |
| 37 | + METRO_10 = "LIG:IDFM:C01380" |
| 38 | + METRO_11 = "LIG:IDFM:C01381" |
| 39 | + METRO_12 = "LIG:IDFM:C01382" |
| 40 | + METRO_13 = "LIG:IDFM:C01383" |
| 41 | + METRO_14 = "LIG:IDFM:C01384" |
| 42 | + METRO_FUNICULAIRE = "LIG:IDFM:C01385" |
| 43 | + METRO_ORLYVAL = "LIG:IDFM:C01388" |
| 44 | + TRAM_T1 = "LIG:IDFM:C01389" |
| 45 | + TRAM_T2 = "LIG:IDFM:C01390" |
| 46 | + TRAM_T3A = "LIG:IDFM:C01391" |
| 47 | + TRAM_T3B = "LIG:IDFM:C01679" |
| 48 | + TRAM_T4 = "LIG:IDFM:C01843" |
| 49 | + TRAM_T5 = "LIG:IDFM:C01684" |
| 50 | + TRAM_T6 = "LIG:IDFM:C01794" |
| 51 | + TRAM_T7 = "LIG:IDFM:C01774" |
| 52 | + TRAM_T8 = "LIG:IDFM:C01795" |
| 53 | + TRAM_T9 = "LIG:IDFM:C02317" |
| 54 | + TRAM_T10 = "LIG:IDFM:C02528" |
| 55 | + TRAM_T11_EXPRESS = "LIG:IDFM:C01999" |
| 56 | + TRAM_T12 = "LIG:IDFM:C02529" |
| 57 | + TRAM_T13 = "LIG:IDFM:C02344" |
| 58 | + |
| 59 | + def __str__(self): |
| 60 | + return self.value |
| 61 | + |
8 | 62 |
|
9 | 63 | class RatpAPI:
|
10 | 64 | """
|
@@ -37,10 +91,9 @@ def get_session(self) -> requests.Session:
|
37 | 91 | "x-client-guid": self.x_client_guid,
|
38 | 92 | "x-client-platform": "bonjour_ios",
|
39 | 93 | "x-client-version": "latest",
|
40 |
| - "Accept": "application/vnd.rss.bff.itinerary.v8+json", |
41 |
| - "Content-Type": "application/vnd.rss.bff.itineraries-query.v8+json", |
42 | 94 | "User-Agent": "RATP/10.35.1 (com.ratp.ratp; build:231; iOS 17.0.3)",
|
43 | 95 | }
|
| 96 | + |
44 | 97 | session.headers.update(headers)
|
45 | 98 | return session
|
46 | 99 |
|
@@ -69,7 +122,7 @@ def get_global_traffic(self) -> dict:
|
69 | 122 | """
|
70 | 123 | return self.make_request("GET", self.GLOBAL_TRAFFIC_URL)
|
71 | 124 |
|
72 |
| - def get_line_traffic(self, line_id: str) -> dict: |
| 125 | + def get_line_traffic(self, line_id: LineID) -> dict: |
73 | 126 | """
|
74 | 127 | Retrieve traffic information for a specific line.
|
75 | 128 |
|
@@ -160,4 +213,4 @@ def get_all_lines_affluence(self):
|
160 | 213 |
|
161 | 214 | if __name__ == "__main__":
|
162 | 215 | api = RatpAPI(api_key="e2rDkJzd2c1dPaFh7e0pJ9H7NjeqTQHg6ql31LmZ")
|
163 |
| - logging.info(api.get_all_lines_affluence()) |
| 216 | + print(api.get_line_traffic(line_id=LineID.METRO_1)) |
0 commit comments