Untitled

 avatar
unknown
plain_text
a year ago
1.7 kB
3
Indexable
from flask import Flask, send_from_directory
from flask_socketio import SocketIO
import csv
import threading
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

app = Flask(__name__)
socketio = SocketIO(app, cors_allowed_origins="*")
data = []

file_path = '/Users/scott/Desktop/tkinter_vscode/overlay/overlaytest.csv'

def read_csv(file_path):
    global data
    try:
        with open(file_path, mode='r') as file:
            reader = csv.reader(file)
            data = [row for row in reader]
        print("Read data:", data)  # Debug line
        socketio.emit('update_data', data)
    except Exception as e:
        print(f"Error reading CSV file: {e}")

class FileChangeHandler(FileSystemEventHandler):
    def __init__(self, file_path):
        self.file_path = file_path

    def on_modified(self, event):
        if event.src_path == self.file_path:
            print(f"File changed: {event.src_path}")  # Debug line
            read_csv(self.file_path)

read_csv(file_path)

event_handler = FileChangeHandler(file_path)
observer = Observer()
observer.schedule(event_handler, path='/Users/scott/Desktop/tkinter_vscode/overlay', recursive=False)
observer.start()

@app.route('/')
def index():
    return send_from_directory('.', 'overlay.html')

if __name__ == '__main__':
    def observer_thread():
        try:
            while True:
                time.sleep(1)
        except KeyboardInterrupt:
            observer.stop()
        observer.join()

    thread = threading.Thread(target=observer_thread)
    thread.daemon = True
    thread.start()
    
    socketio.run(app, debug=True)
Editor is loading...
Leave a Comment