from __future__ import unicode_literals import requests import json from datetime import datetime import re from bs4 import BeautifulSoup class RTMTraffic: def __init__(self): self.headers = { 'User-Agent': 'RTM API Python Client', 'From': 'https://github.com/your-username/your-repo' } def get_alerts(self, period='all', line_type=None): """ Récupère les alertes de trafic RTM Args: period (str): 'today', 'coming' ou 'all' line_type (str): None, 'bus', 'metro' ou 'tram' Returns: dict: Dictionnaire contenant les alertes """ if line_type is None: url = 'https://api.rtm.fr/front/getAlertes/FR/All' response = requests.get(url, headers=self.headers) data = response.json()['data'] alerts_today = self._process_alerts(data.get('AlertesToday', [])) alerts_coming = self._process_alerts(data.get('AlertesComing', [])) if period == 'today': return alerts_today elif period == 'coming': return alerts_coming else: return { 'AlertesToday': alerts_today, 'AlertesComing': alerts_coming } else: url = f'https://api.rtm.fr/front/getAlertes/FR/{line_type}' response = requests.get(url, headers=self.headers) data = response.json()['data'] return self._process_alerts(data.get('Alertes', [])) def _extract_description(self, html_content): """ Extrait la description depuis le contenu HTML Args: html_content (str): Contenu HTML de l'alerte Returns: str: Description nettoyée """ if not html_content: return "" # Parser le HTML soup = BeautifulSoup(html_content, 'html.parser') # Supprimer les balises