diff --git a/README.md b/README.md index 8e2c31478..8e4d5ede0 100644 --- a/README.md +++ b/README.md @@ -100,3 +100,4 @@ Lors de vos développements, vous serez peut-être confronté à des erreurs sys Les causes d'erreurs sont quasi illimitées. **Vous devez donc vous tourner vers les logs de votre système pour comprendre d'où vient le problème** : Voici une vidéo pour accéder aux logs de vos Actions GitHUB : [Vidéo Log GitHUB](https://youtu.be/rhGrDLSFH7Y) Voici une vidéo pour vous expliquer comment accéder au logs de votre serveur Alwaysdata : [Vidéo Log Alwaysdata](https://youtu.be/URWMWqVMS2U) + diff --git a/__init__.py b/__init__.py index 78202edfa..ba9d8e004 100644 --- a/__init__.py +++ b/__init__.py @@ -1,8 +1,7 @@ -from flask import Flask, render_template_string, render_template, jsonify -from flask import render_template +from flask import Flask, render_template, jsonify from flask import json from datetime import datetime -from urllib.request import urlopen +from urllib.request import urlopen, Request import sqlite3 app = Flask(__name__) @@ -10,6 +9,70 @@ @app.route('/') def hello_world(): return render_template('hello.html') + +@app.route("/contact/") +def MaPremiereAPI(): + return render_template("contact.html") + +@app.route('/tawarano/') +def meteo(): + response = urlopen('https://samples.openweathermap.org/data/2.5/forecast?lat=0&lon=0&appid=xxx') + raw_content = response.read() + json_content = json.loads(raw_content.decode('utf-8')) + results = [] + for list_element in json_content.get('list', []): + dt_value = list_element.get('dt') + temp_day_value = list_element.get('main', {}).get('temp') - 273.15 # Conversion de Kelvin en °c + results.append({'Jour': dt_value, 'temp': temp_day_value}) + return jsonify(results=results) + +@app.route("/histogramme/") +def monhisto(): + return render_template("histogramme.html") + +@app.route("/rapport/") +def mongraphique(): + return render_template("histogramme.html") + +@app.route('/extract-minutes/') +def extract_minutes(date_string): + date_object = datetime.strptime(date_string, '%Y-%m-%dT%H:%M:%SZ') + minutes = date_object.minute + return jsonify({'minutes': minutes}) + + +@app.route('/commits/data') +def commits_data(): + # Repo source de l’énoncé (tu peux remplacer par ton fork : owner/repo) + api_url = f"https://api.github.com/repos/Gigique/5MCSI_Metriques/commits" + + req = Request(api_url, headers={"User-Agent": "metrics-app"}) + with urlopen(req) as resp: + raw = resp.read() + payload = json.loads(raw.decode("utf-8")) + + minute_counts = [0] * 60 + for item in payload: + commit_info = item.get('commit', {}) + author_info = commit_info.get('author', {}) + date_str = author_info.get('date') # ex: "2024-02-11T11:57:27Z" + if not date_str: + continue + try: + d = datetime.strptime(date_str, '%Y-%m-%dT%H:%M:%SZ') + minute_counts[d.minute] += 1 + except Exception: + continue + + results = [{'minute': i, 'count': minute_counts[i]} for i in range(60)] + return jsonify(results=results) + + +@app.route('/commits/') +def commits_page(): + return render_template('commits.html') + + if __name__ == "__main__": app.run(debug=True) diff --git a/templates/commits.html b/templates/commits.html new file mode 100644 index 000000000..f762f785f --- /dev/null +++ b/templates/commits.html @@ -0,0 +1,53 @@ + + + + + Commits par minute + + + + +

Répartition des commits par minute (0–59)

+

Source: API GitHub → commit.author.date. Chaque barre = nombre de commits dont la minute correspond.

+
+ + + + diff --git a/templates/contact.html b/templates/contact.html new file mode 100644 index 000000000..d4b91043a --- /dev/null +++ b/templates/contact.html @@ -0,0 +1,101 @@ + + + + Contact + + + + +

Formulaire de contact

+ +
+
+

+ +
+

+ +
+

+ +
+

+ + +
+ + + diff --git a/templates/graphique.html b/templates/graphique.html new file mode 100644 index 000000000..8485bee20 --- /dev/null +++ b/templates/graphique.html @@ -0,0 +1,40 @@ + + + + Metrique + + + +
+ + + diff --git a/templates/hello.html b/templates/hello.html index f2fedac0d..d49ae792e 100644 --- a/templates/hello.html +++ b/templates/hello.html @@ -1,7 +1,7 @@ Evaluation

Bienvenue sur votre projet Métriques

-

Ceci est le projet de : Prénom Nom

+

Ceci est le projet de : Angélique Bidot

Si vous avez mis en ligne votre solution et si cette page d'accueil s'affiche dans votre navigateur alors vous avez déjà gagné 4 points sur votre note d'évaluation.

Notions acquises lors de cette étape : Vous avez lors cette première étape apris à créer votre hébergement en ligne sur Alwaydata, installer une application, Forker un projet GitHUB et créer des Secrets qui seront utilisés lors de vos Commits pour mettre à jour votre site en ligne

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

diff --git a/templates/histogramme.html b/templates/histogramme.html new file mode 100644 index 000000000..3a935316e --- /dev/null +++ b/templates/histogramme.html @@ -0,0 +1,42 @@ + + + + Metrique + + + + +
+ + + +