Spaces:
Build error
Build error
| from flask import Flask, render_template, request, jsonify, send_file | |
| import json | |
| import os | |
| from datetime import datetime | |
| import csv | |
| from io import StringIO | |
| app = Flask(__name__) | |
| # Ensure data directory exists | |
| os.makedirs('data', exist_ok=True) | |
| # JSON file path | |
| DATA_FILE = 'tickets.json' | |
| def load_data(): | |
| try: | |
| with open(DATA_FILE, 'r') as f: | |
| return json.load(f) | |
| except (FileNotFoundError, json.JSONDecodeError): | |
| return {"tickets": []} | |
| def save_data(data): | |
| with open(DATA_FILE, 'w') as f: | |
| json.dump(data, f, indent=2) | |
| def index(): | |
| return render_template('index.html') | |
| def add_data(email, phone, name, tickets_count, ticket_number, country, region): | |
| data = load_data() | |
| # Create new ticket entry | |
| new_ticket = { | |
| "email": email, | |
| "phone": phone, | |
| "name": name, | |
| "tickets_count": int(tickets_count), | |
| "ticket_number": ticket_number, | |
| "country": country, | |
| "region": region, | |
| "timestamp": datetime.now().strftime("%Y-%m-%d %H:%M:%S") | |
| } | |
| data["tickets"].append(new_ticket) | |
| save_data(data) | |
| return jsonify({"status": "success", "message": "Ticket data added successfully"}) | |
| def get_tickets(): | |
| data = load_data() | |
| return jsonify(data) | |
| def download_csv(): | |
| data = load_data() | |
| # Create CSV in memory | |
| output = StringIO() | |
| writer = csv.writer(output) | |
| # Write header | |
| writer.writerow(["Email", "Phone", "Name", "Tickets Count", "Ticket Number", "Country", "Region", "Timestamp"]) | |
| # Write data | |
| for ticket in data["tickets"]: | |
| writer.writerow([ | |
| ticket["email"], | |
| ticket["phone"], | |
| ticket["name"], | |
| ticket["tickets_count"], | |
| ticket["ticket_number"], | |
| ticket["country"], | |
| ticket["region"], | |
| ticket["timestamp"] | |
| ]) | |
| output.seek(0) | |
| return send_file( | |
| StringIO(output.getvalue()), | |
| mimetype="text/csv", | |
| as_attachment=True, | |
| download_name="tickets_data.csv" | |
| ) | |
| if __name__ == '__main__': | |
| app.run(host='0.0.0.0', port=7860, debug=True) |