Untitled
unknown
python
9 months ago
2.2 kB
27
Indexable
import pyperclip
import re
import threading
import time
from flask import Flask, jsonify
from flask_cors import CORS
# Inicjalizacja aplikacji Flask
app = Flask(__name__)
json_data = {} # Globalna zmienna przechowująca aktualne dane JSON
CORS(app) # Dodanie obsługi CORS dla całej aplikacji
# Funkcja odczytująca dane z systemowego schowka i przekształcająca je w JSON
def parse_clipboard_data():
clipboard_data = pyperclip.paste()
sections = re.split(r"\*\* (.+?) \*\*", clipboard_data)
if not sections or len(sections) < 2:
return {}
data = {}
for i in range(1, len(sections), 2): # Ta iteracja obsługuje sekcje i ich zawartość
section_name = sections[i].strip()
section_content = sections[i + 1]
section_dict = {}
for line in section_content.splitlines():
line = line.strip()
if line and "=" in line:
key, value = map(str.strip, line.split("="))
try:
value = float(value.replace(",", "."))
except ValueError:
pass
section_dict[key] = value
data[section_name] = section_dict
return data
# Funkcja do regularnej aktualizacji JSONa (co 150 ms)
def update_json_data():
global json_data
while True:
# Parsuj nowe dane z systemowego schowka
parsed_data = parse_clipboard_data()
if parsed_data: # Aktualizuj dane JSON tylko, jeśli są poprawne
json_data = parsed_data
time.sleep(0.15) # Czekaj 150 ms
# Endpoint API: zwraca aktualny JSON
@app.route('/data', methods=['GET'])
def get_data():
global json_data
return jsonify(json_data) # Zwracaj aktualnego JSONa w odpowiedzi
# Funkcja główna do uruchamiania aplikacji Flask
def run_flask():
app.run(host='0.0.0.0', port=5000, debug=False) # Uruchamia serwer na porcie 5000
# Główne uruchomienie
if __name__ == '__main__':
# Wątek 1: Aktualizowanie danych JSON co 150 ms
threading.Thread(target=update_json_data, daemon=True).start()
# Wątek 2: Uruchomienie serwera Flask
run_flask()Editor is loading...
Leave a Comment