53 lines
1.4 KiB
Python
53 lines
1.4 KiB
Python
import sys
|
|
import logging
|
|
|
|
from app.core.config import settings
|
|
|
|
def setup_logger():
|
|
logger = logging.getLogger()
|
|
|
|
verbosity = settings.VERBOSITY
|
|
level_map = {
|
|
"DEBUG": logging.DEBUG,
|
|
"INFO": logging.INFO,
|
|
"WARNING": logging.WARNING,
|
|
"ERROR": logging.ERROR,
|
|
"CRITICAL": logging.CRITICAL,
|
|
}
|
|
log_level = level_map.get(verbosity)
|
|
|
|
logger.setLevel(log_level)
|
|
|
|
handler = logging.StreamHandler(sys.stdout)
|
|
handler.setLevel(log_level)
|
|
|
|
formatter = logging.Formatter("[%(levelname)s] - %(name)s:%(lineno)d - %(message)s")
|
|
handler.setFormatter(formatter)
|
|
|
|
logger.addHandler(handler)
|
|
|
|
|
|
if sys.platform == "win32":
|
|
import win32con
|
|
import win32gui
|
|
import win32api
|
|
import win32process
|
|
|
|
def make_window_non_activating(win):
|
|
hwnd = int(win.winId())
|
|
|
|
ex_style = win32gui.GetWindowLong(hwnd, win32con.GWL_EXSTYLE)
|
|
|
|
# Add styles
|
|
ex_style |= win32con.WS_EX_NOACTIVATE
|
|
ex_style |= win32con.WS_EX_TOPMOST
|
|
ex_style |= win32con.WS_EX_TOOLWINDOW # optional: hide from Alt+Tab
|
|
|
|
win32gui.SetWindowLong(hwnd, win32con.GWL_EXSTYLE, ex_style)
|
|
|
|
# Force update
|
|
win32gui.SetWindowPos(
|
|
hwnd, win32con.HWND_TOPMOST,
|
|
0, 0, 0, 0,
|
|
win32con.SWP_NOMOVE | win32con.SWP_NOSIZE | win32con.SWP_NOACTIVATE
|
|
) |