File size: 2,501 Bytes
68f0759
59d0b04
 
68f0759
59d0b04
 
 
 
 
 
 
 
bd323f8
 
 
 
 
59d0b04
bd323f8
 
 
68f0759
59d0b04
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71b6b78
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
from flask import Flask, jsonify, request, render_template, Markup
import requests
import json
from traficFranceBleuParis import generate_traffic_html  # Remplacez par le vrai nom de votre fichier Python.

TOMTOM_API_KEY = "PVt4NaZSKKtziZi9DaqNAUzN4flNJnSo"

app = Flask(__name__)

@app.route('/')
def index():
    try:
        # Appeler la fonction qui génère le HTML
        traffic_report_content = generate_traffic_html()
    except Exception as e:
        # En cas d'erreur de génération, vous pouvez afficher un message par défaut
        traffic_report_content = f"<p>Erreur lors de la génération du rapport : {e}</p>"

    # Rendre la page index.html en y injectant le contenu généré
    # Assurez-vous que dans index.html, vous avez un emplacement
    # par exemple : <div id="traffic-report">{{ traffic_report|safe }}</div>
    return render_template('index.html', traffic_report=Markup(traffic_report_content))

@app.route('/api/incidents', methods=['GET'])
def get_incidents():
    """
    Récupère les incidents depuis l'API TomTom Traffic.
    """
    try:
        # Définir les coordonnées pour Paris et une zone de bounding box
        bounding_box = "1.79804455,48.52917947,2.88843762,49.24075760"  # Paris: sud-ouest, nord-est
        url = f"https://api.tomtom.com/traffic/services/5/incidentDetails?bbox={bounding_box}&fields=%7Bincidents%7Btype%2Cgeometry%7Btype%2Ccoordinates%7D%2Cproperties%7BiconCategory%7D%7D%7D&language=en-GB&categoryFilter=0%2C1%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9%2C10%2C11%2C14&timeValidityFilter=present&key={TOMTOM_API_KEY}"
        
        # Appel API
        response = requests.get(url)
        response.raise_for_status()  # Vérifie les erreurs HTTP

        data = response.json()  # Convertit la réponse en JSON
        incidents = data.get("incidents", [])  # Récupère les incidents
        
        # Ajouter un affichage pour voir les incidents
        print(f"Incidents récupérés ({len(incidents)} incidents) : {json.dumps(incidents, indent=2)}")
        
        return jsonify({"status": "success", "data": incidents}), 200

    except requests.exceptions.RequestException as e:
        print(f"Erreur lors de la récupération des incidents: {e}")
        return jsonify({"status": "error", "message": str(e)}), 500

if __name__ == "__main__":
    import os
    port = int(os.environ.get("PORT", 7860))  # Use the default port for Hugging Face Spaces
    app.run(host="0.0.0.0", port=port, debug=True, use_reloader=False)