Spaces:
Paused
Paused
Update app.py
Browse files
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()
|
|
|