diff --git a/utils/generate_enum_categories.py b/utils/generate_enum_categories.py index eb478db..4a48377 100644 --- a/utils/generate_enum_categories.py +++ b/utils/generate_enum_categories.py @@ -1,24 +1,48 @@ import lbc from typing import Optional + def transform_str(string: str) -> str: - return string.strip().replace(" ", "_").replace("-", "_").replace("&", "et").upper().replace("É", "E").replace("È", "E").replace("Ê", "E").replace("Ë", "E").replace("À", "A").replace("Á", "A").replace("Ô", "O").replace(",", "").replace("___", "_").replace("'", "") + return ( + string.strip() + .replace(" ", "_") + .replace("-", "_") + .replace("&", "et") + .upper() + .replace("É", "E") + .replace("È", "E") + .replace("Ê", "E") + .replace("Ë", "E") + .replace("À", "A") + .replace("Á", "A") + .replace("Ô", "O") + .replace(",", "") + .replace("___", "_") + .replace("'", "") + ) + def print_category(category_data: dict, category_name: Optional[str] = None) -> None: label: str = category_data["label"] category_name: str = transform_str(category_name) if category_name else None label = transform_str(label) - print(f'{f"{category_name}_" if category_name else ""}{label} = "{category_data['catId']}"') + print( + f'{f"{category_name}_" if category_name else ""}{label} = "{category_data["catId"]}"' + ) + def main() -> None: client = lbc.Client(impersonate="chrome_android") - body = client._fetch(method="GET", url="https://api.leboncoin.fr/api/frontend/v1/data/v7/fdata") - + body = client._fetch( + method="GET", url="https://api.leboncoin.fr/api/frontend/v1/data/v7/fdata" + ) + for category in body["categories"]: print_category(category) if category.get("subcategories", None): for sub_category in category["subcategories"]: print_category(sub_category, category_name=category["label"]) + if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/utils/generate_enum_departments.py b/utils/generate_enum_departments.py index a36dccd..c8a626a 100644 --- a/utils/generate_enum_departments.py +++ b/utils/generate_enum_departments.py @@ -1,21 +1,45 @@ import lbc + def transform_str(string: str) -> str: - return string.strip().replace(" ", "_").replace("-", "_").replace("&", "et").upper().replace("É", "E").replace("È", "E").replace("Ê", "E").replace("Ë", "E").replace("À", "A").replace("Á", "A").replace("Ô", "O").replace(",", "").replace("___", "_").replace("'", "") + return ( + string.strip() + .replace(" ", "_") + .replace("-", "_") + .replace("&", "et") + .upper() + .replace("É", "E") + .replace("È", "E") + .replace("Ê", "E") + .replace("Ë", "E") + .replace("À", "A") + .replace("Á", "A") + .replace("Ô", "O") + .replace(",", "") + .replace("___", "_") + .replace("'", "") + ) + def print_department(department_data: dict, region: dict) -> None: name: str = department_data["name"] name = transform_str(name) - print(f'{name} = ("{region['rId']}", "{transform_str(region['rName'])}", "{department_data["dId"]}", "{name}")') + print( + f'{name} = ("{region["rId"]}", "{transform_str(region["rName"])}", "{department_data["dId"]}", "{name}")' + ) + def main() -> None: client = lbc.Client(impersonate="chrome_android") - body = client._fetch(method="GET", url="https://api.leboncoin.fr/api/frontend/v1/data/v7/fdata") + body = client._fetch( + method="GET", url="https://api.leboncoin.fr/api/frontend/v1/data/v7/fdata" + ) for region in body["regions"]: if region.get("departments", None): for department in region["departments"]: print_department(department, region=region) + if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/utils/generate_enum_regions.py b/utils/generate_enum_regions.py index f4c4633..c0319f8 100644 --- a/utils/generate_enum_regions.py +++ b/utils/generate_enum_regions.py @@ -1,19 +1,41 @@ import lbc + def transform_str(string: str) -> str: - return string.strip().replace(" ", "_").replace("-", "_").replace("&", "et").upper().replace("É", "E").replace("È", "E").replace("Ê", "E").replace("Ë", "E").replace("À", "A").replace("Á", "A").replace("Ô", "O").replace(",", "").replace("___", "_").replace("'", "") + return ( + string.strip() + .replace(" ", "_") + .replace("-", "_") + .replace("&", "et") + .upper() + .replace("É", "E") + .replace("È", "E") + .replace("Ê", "E") + .replace("Ë", "E") + .replace("À", "A") + .replace("Á", "A") + .replace("Ô", "O") + .replace(",", "") + .replace("___", "_") + .replace("'", "") + ) + def print_region(region_data: dict) -> None: name: str = region_data["rName"] name = transform_str(name) - print(f'{name} = ("{region_data['rId']}", "{name}")') + print(f'{name} = ("{region_data["rId"]}", "{name}")') + def main() -> None: client = lbc.Client(impersonate="chrome_android") - body = client._fetch(method="GET", url="https://api.leboncoin.fr/api/frontend/v1/data/v7/fdata") - + body = client._fetch( + method="GET", url="https://api.leboncoin.fr/api/frontend/v1/data/v7/fdata" + ) + for region in body["regions"]: print_region(region) + if __name__ == "__main__": - main() \ No newline at end of file + main()