# app.py from flask import Flask, render_template, request, jsonify import asyncio from concurrent.futures import ThreadPoolExecutor import json import os from datetime import datetime # Importez toutes vos classes existantes ici from cc import AsyncAccountCreator, save_accounts app = Flask(__name__) executor = ThreadPoolExecutor(max_workers=1) def async_creation(num_accounts): async def run_creation(): creator = AsyncAccountCreator( 'https://gabaohub.alwaysdata.net', max_concurrent=10, rate_limit=20 ) results = await creator.create_multiple_accounts(num_accounts) if results['accounts']: filename = f"accounts_{datetime.now().strftime('%Y%m%d_%H%M%S')}.json" await save_accounts(results['accounts'], filename) results['filename'] = filename return results return asyncio.run(run_creation()) @app.route('/') def index(): return render_template('index.html') @app.route('/create_accounts', methods=['POST']) def create_accounts(): try: num_accounts = int(request.form['num_accounts']) if num_accounts <= 0: return jsonify({'error': 'Le nombre de comptes doit être positif'}), 400 # Lancer la création de comptes en arrière-plan future = executor.submit(async_creation, num_accounts) return jsonify({ 'message': f'Création de {num_accounts} comptes lancée avec succès', 'status': 'pending' }) except ValueError: return jsonify({'error': 'Nombre de comptes invalide'}), 400 except Exception as e: return jsonify({'error': str(e)}), 500 @app.route('/check_status') def check_status(): # Cette route pourrait être implémentée pour vérifier l'état d'avancement # Pour l'instant, retourne un statut générique return jsonify({ 'status': 'running', 'accounts_created': 0, 'total_accounts': 0 })