arcanus commited on
Commit
49a32e9
·
verified ·
1 Parent(s): be2c5c7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +63 -2
app.py CHANGED
@@ -11,11 +11,19 @@ import browser_cookie3
11
  import json
12
  import time
13
  import sys
14
-
 
 
 
15
  import requests
16
 
 
17
  app = Flask(__name__)
18
 
 
 
 
 
19
  app.secret_key = os.environ.get('SECRET_KEY', 'default_secret_key')
20
  APP_PASSWORD = os.environ.get('APP_PASSWORD', 'default_password')
21
  YOUTUBE_USERNAME = os.environ.get('YOUTUBE_USERNAME', 'default_ysecret_key')
@@ -44,6 +52,8 @@ def login():
44
  return redirect(url_for('index'))
45
  return render_template('login.html', error='Nesprávné heslo')
46
  return render_template('login.html')
 
 
47
  @app.route('/logout')
48
  def logout():
49
  session.pop('logged_in', None)
@@ -723,7 +733,58 @@ def get_current_video_path():
723
  })
724
  return jsonify({'success': False, 'error': 'No video path in session'})
725
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
726
  # Pokud je skript spuštěn přímo, exportujeme cookies
727
  if __name__ == "__main__":
728
  get_youtube_cookies()
729
-
 
11
  import json
12
  import time
13
  import sys
14
+ import logging
15
+ from flask import Response
16
+ import queue
17
+ import threading
18
  import requests
19
 
20
+
21
  app = Flask(__name__)
22
 
23
+ # Create TTS_Info instance to get XTTS status
24
+ tts_info = TTS_Info(piper_enabled=True, xtts_enabled=True) # Adjust these values based on your setup
25
+ logger = logging.getLogger()
26
+ logger.info(f"XTTS is {'enabled' if tts_info.xtts_enabled else 'disabled'}")
27
  app.secret_key = os.environ.get('SECRET_KEY', 'default_secret_key')
28
  APP_PASSWORD = os.environ.get('APP_PASSWORD', 'default_password')
29
  YOUTUBE_USERNAME = os.environ.get('YOUTUBE_USERNAME', 'default_ysecret_key')
 
52
  return redirect(url_for('index'))
53
  return render_template('login.html', error='Nesprávné heslo')
54
  return render_template('login.html')
55
+
56
+
57
  @app.route('/logout')
58
  def logout():
59
  session.pop('logged_in', None)
 
733
  })
734
  return jsonify({'success': False, 'error': 'No video path in session'})
735
 
736
+ @app.route('/get_status')
737
+ def get_status():
738
+ # Check if ngrok server is online
739
+ try:
740
+ response = requests.get(
741
+ 'https://7701-185-68-219-242.ngrok-free.app/',
742
+ params={'api_key': '5as4d4f12sxdf45sfg46vawd74879ad5sd5AF4g6d8f4hfgb5'},
743
+ headers={'accept': 'application/json'},
744
+ timeout=5
745
+ )
746
+ ngrok_online = response.status_code == 200
747
+ logger.info(f"Ngrok server status check: {response.status_code}")
748
+ except Exception as e:
749
+ logger.error(f"Error checking ngrok server: {str(e)}")
750
+ ngrok_online = False
751
+
752
+ return jsonify({
753
+ 'xtts_enabled': tts_info.xtts_enabled,
754
+ 'piper_enabled': tts_info.piper_enabled,
755
+ 'ngrok_server_online': ngrok_online
756
+ })
757
+
758
+ # Create a queue for log messages
759
+ log_queue = queue.Queue()
760
+
761
+ # Create a custom handler that puts messages into the queue
762
+ class QueueHandler(logging.Handler):
763
+ def emit(self, record):
764
+ log_queue.put({
765
+ 'level': record.levelname,
766
+ 'message': self.format(record)
767
+ })
768
+
769
+ # Add the queue handler to the logger
770
+ logger = logging.getLogger()
771
+ queue_handler = QueueHandler()
772
+ logger.addHandler(queue_handler)
773
+
774
+ @app.route('/logs')
775
+ def logs():
776
+ def generate():
777
+ while True:
778
+ try:
779
+ # Get message from queue
780
+ message = log_queue.get(timeout=20) # 20 second timeout
781
+ yield f"data: {json.dumps(message)}\n\n"
782
+ except queue.Empty:
783
+ # Send keepalive every 20 seconds
784
+ yield f"data: {json.dumps({'level': 'INFO', 'message': 'keepalive'})}\n\n"
785
+
786
+ return Response(generate(), mimetype='text/event-stream')
787
+
788
  # Pokud je skript spuštěn přímo, exportujeme cookies
789
  if __name__ == "__main__":
790
  get_youtube_cookies()