import time
from flask import Flask, request, Response, session, jsonify
from flask_socketio import SocketIO, emit
from werkzeug.serving import make_server
import requests
import re
import logging
# Configure logging
logger = logging.getLogger(__name__)
class ProxyServer:
def __init__(self, secret_key, host='localhost', port=5000):
self.host = host
self.port = port
self.app = Flask(__name__)
self.app.secret_key = secret_key
self.server = None
self.is_running = False
self.socketio = SocketIO(self.app) # Initialize SocketIO with the Flask app
# self.server_thread = None # Thread for running the server
# self.server_running = False # Flag to track server state
self.setup_routes()
self.highlight_word = None # Initialize the highlight word
@self.app.route('/shutdown', methods=['POST'])
def shutdown():
logger.info("Shutdown request received")
self.shutdown_server()
return 'Server shutting down...'
logger.info("Proxy server initialized")
# Inject JavaScript into HTML content to highlight words and listen for WebSocket updates
def inject_script(self, content):
# Inject the WebSocket listening script
script = f"""
"""
return re.sub(r'