Serveur / app.py
Docfile's picture
Update app.py
ef4e324 verified
raw
history blame
2.5 kB
from flask import Flask, render_template, redirect, url_for, request, jsonify
import csv
import requests
import os
from dotenv import load_dotenv
load_dotenv()
app = Flask(__name__)
# Configuration Telegram
BOT_TOKEN = "7126991043:AAEzeKswNo6eO7oJA49Hxn_bsbzgzUoJ-6A"
CHAT_ID = "-1002081124539"
TELEGRAM_API_URL = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
# Chargement du dataset de traductions
def load_translations(filename):
translations = []
with open(filename, 'r', encoding='utf-8') as file:
reader = csv.DictReader(file)
for i, row in enumerate(reader):
translations.append({
"id": i,
"fr": row["fr"],
"yi": row["yi"],
"likes": 0,
"dislikes": 0,
})
return translations
translations = load_translations('translations.csv') # Votre dataset au format csv
@app.route('/data')
def data():
return jsonify(translations=translations)
@app.route('/')
def index():
return render_template('index.html', translations=translations)
@app.route('/vote/<int:id>/<string:action>')
def vote(id, action):
translation = next((t for t in translations if t["id"] == id), None)
if translation:
if action == "like":
translation["likes"] += 1
elif action == "dislike":
translation["dislikes"] += 1
return redirect(url_for('index'))
@app.route('/submit_feedback/<int:id>', methods=['POST'])
def submit_feedback(id):
translation = next((t for t in translations if t["id"] == id), None)
if translation:
feedback = request.form['feedback']
message = f"Feedback sur la traduction #{translation['id']}:\n\n" \
f"Français: {translation['fr']}\n\n" \
f"Yipunu: {translation['yi']}\n\n" \
f"Avis de l'utilisateur:\n{feedback}"
params = {
"chat_id": CHAT_ID,
"text": message,
"parse_mode": "HTML"
}
response = requests.post(TELEGRAM_API_URL, params=params)
if response.status_code == 200:
return jsonify({"message": "Feedback sent succesfully"})
else:
print(f"Error sending message to Telegram. Status code: {response.status_code}, Response: {response.text}")
return jsonify({"message": "Error sending message to Telegram"}), 500
return redirect(url_for('index'))
if __name__ == '__main__':
app.run(debug=True)