Docfile commited on
Commit
1125071
·
verified ·
1 Parent(s): 6b91120

Create cron.py

Browse files
Files changed (1) hide show
  1. app/routes/cron.py +50 -0
app/routes/cron.py ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from flask import Blueprint, jsonify, request, current_app
2
+ import sys
3
+ import os
4
+
5
+ # Import des fonctions existantes
6
+ from scripts.daily_gains import (
7
+ calculate_daily_gains,
8
+ auto_process_withdrawals,
9
+ cleanup_old_notifications
10
+ )
11
+
12
+ bp = Blueprint('cron', __name__, url_prefix='/api/cron')
13
+
14
+ @bp.route('/run-daily', methods=['GET'])
15
+ def run_daily_tasks():
16
+ # 1. Sécurité : Vérifier le token
17
+ token = request.args.get('token')
18
+ secret = current_app.config.get('CRON_SECRET')
19
+
20
+ if not secret or token != secret:
21
+ return jsonify({'status': 'error', 'message': 'Unauthorized'}), 401
22
+
23
+ try:
24
+ # 2. Exécuter les tâches (les fonctions créent leur propre app_context,
25
+ # mais ici nous sommes déjà dans un contexte, on va les appeler directement)
26
+ # Note : Vos scripts actuels font "app = create_app()", ce qui est un peu lourd
27
+ # dans une route mais fonctionnera sans modifier vos scripts originaux.
28
+
29
+ results = []
30
+
31
+ # Tâche 1 : Gains
32
+ calculate_daily_gains()
33
+ results.append("Daily gains calculated")
34
+
35
+ # Tâche 2 : Retraits auto
36
+ auto_process_withdrawals()
37
+ results.append("Withdrawals processed")
38
+
39
+ # Tâche 3 : Nettoyage
40
+ cleanup_old_notifications()
41
+ results.append("Cleanup done")
42
+
43
+ return jsonify({
44
+ 'status': 'success',
45
+ 'tasks_executed': results
46
+ }), 200
47
+
48
+ except Exception as e:
49
+ current_app.logger.error(f"Cron Error: {str(e)}")
50
+ return jsonify({'status': 'error', 'message': str(e)}), 500