Untitled

 avatar
unknown
python
18 days ago
2.2 kB
5
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