Prva verzija mini web serverja (flask). Hvala, Github Copilot.

This commit is contained in:
2026-03-05 18:15:27 +01:00
parent 9e32e58c4c
commit 6ed45d2ebc
13 changed files with 1164 additions and 5 deletions

View File

@@ -9,6 +9,7 @@ import math
import subprocess
import sys
import tkinter.messagebox as messagebox
from web.server import start_server_thread
DB_PATH = 'songs.db'
SETTINGS_PATH = 'settings.json'
@@ -22,7 +23,8 @@ class SongProjector:
# ...
try:
# Odpri read-only; ne bo ustvaril prazne baze, če datoteka manjka
self.conn = sqlite3.connect(f"file:{DB_PATH}?mode=ro", uri=True)
# check_same_thread=False omogoča uporabo v večih nitih
self.conn = sqlite3.connect(f"file:{DB_PATH}?mode=ro", uri=True, check_same_thread=False)
self.cursor = self.conn.cursor()
except sqlite3.OperationalError as e:
# Jasno sporočilo in varen izhod
@@ -143,6 +145,17 @@ class SongProjector:
self.clear_screen()
# --------------------------------------------------
# Zagon Flask web serverja (če je port nastavljen)
# --------------------------------------------------
web_port = self.settings.get("web_port", 0)
if web_port and web_port > 0:
try:
start_server_thread(self, host='127.0.0.1', port=web_port)
print(f"Web server zažet na http://127.0.0.1:{web_port}")
except Exception as e:
print(f"Napaka pri zagonu web servera: {e}")
# ------------------------------------------------------
# NOVA METODA: enakomeren prelom predolgih vrstic
# ------------------------------------------------------
@@ -370,12 +383,16 @@ class SongProjector:
# Očisti zaslon
# ------------------------------------------------------
def clear_screen(self, event=None):
# odstranimo vse strani, da se tudi API posodobi
self.pages = []
self.current_page_index = 0
self.waiting_for_song = True
self.label.config(text="")
self.label.pack_forget()
self.color_frame.config(bg="black", width=self.color_width, height=self.screen_height)
self.color_frame.place(relx=0.5, rely=0.5, anchor="center")
self.song_info_label.config(text="")
self.waiting_for_song = True
# ------------------------------------------------------
# Iskanje pesmi