Prva verzija mini web serverja (flask). Hvala, Github Copilot.
This commit is contained in:
21
projector.py
21
projector.py
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user