updated to tkinter

This commit is contained in:
2025-08-05 16:51:15 +03:00
parent 93c0637bca
commit 8293111e09
47 changed files with 2118 additions and 1077 deletions

View File

@@ -0,0 +1,10 @@
{
"screen_orientation": "Landscape",
"screen_name": "tv-holba1",
"quickconnect_key": "8887779",
"server_ip": "192.168.1.245",
"port": "5000",
"screen_w": "1920",
"screen_h": "1080",
"playlist_version": 5
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 537 KiB

View File

@@ -0,0 +1,15 @@
{
"playlist": [
{
"file_name": "demo1.jpg",
"url": "Resurse/demo1.jpg",
"duration": 20
},
{
"file_name": "demo2.jpg",
"url": "Resurse/demo2.jpg",
"duration": 20
}
],
"version": 1
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -0,0 +1,20 @@
{
"playlist": [
{
"file_name": "1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg",
"url": "static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg",
"duration": 20
},
{
"file_name": "wp2782770-1846651530.jpg",
"url": "static/resurse/wp2782770-1846651530.jpg",
"duration": 15
},
{
"file_name": "SampleVideo_1280x720_1mb.mp4",
"url": "static/resurse/SampleVideo_1280x720_1mb.mp4",
"duration": 5
}
],
"version": 5
}

View File

@@ -0,0 +1,833 @@
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Configuration loaded: server=192.168.1.74, host=, quick=8887779, port=5000
[INFO] [SignageApp] Screen size set to 1920x1080
[INFO] [SignageApp] MediaPlayer: Starting on_enter method.
[INFO] [SignageApp] MediaPlayer: Loaded server settings: server=192.168.1.74, host=, quick=8887779, port=5000
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
[WARNING] [SignageApp] python_functions: Local playlist file not found.
[INFO] [SignageApp] MediaPlayer: Loaded local playlist: [], Version: 0
[WARNING] [SignageApp] MediaPlayer: No local playlist found. Attempting to load demo playlist...
[INFO] [SignageApp] MediaPlayer: Demo playlist loaded successfully.
[WARNING] [SignageApp] MediaPlayer: Invalid server settings. Using demo playlist.
[INFO] [SignageApp] MediaPlayer: Starting play_media method.
[INFO] [SignageApp] MediaPlayer: Playing media: Resurse/demo1.jpg
[INFO] [SignageApp] MediaPlayer: Starting log_event function.
2025-06-25 15:53:54 - STARTED: demo1.jpg
[INFO] [SignageApp] MediaPlayer: Logged event: 2025-06-25 15:53:54 - STARTED: demo1.jpg
[INFO] [SignageApp] MediaPlayer: Finished log_event function.
[INFO] [SignageApp] Showing image: Resurse/demo1.jpg
[INFO] [SignageApp] MediaPlayer: Finished play_media method.
[INFO] [SignageApp] MediaPlayer: Finished on_enter method.
[INFO] [SignageApp] SettingsScreen: Log messages loaded successfully.
[INFO] [SignageApp] SettingsScreen: Configuration saved.
[INFO] [SignageApp] MediaPlayer: Starting on_enter method.
[INFO] [SignageApp] MediaPlayer: Loaded server settings: server=192.168.1.74, host=rpi-tv11, quick=8887779, port=5000
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
[WARNING] [SignageApp] python_functions: Local playlist file not found.
[INFO] [SignageApp] MediaPlayer: Loaded local playlist: [], Version: 0
[WARNING] [SignageApp] MediaPlayer: No local playlist found. Attempting to load demo playlist...
[INFO] [SignageApp] MediaPlayer: Demo playlist loaded successfully.
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.74:5000/api/playlists with params: {'hostname': '', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Configuration loaded: server=192.168.1.74, host=rpi-tv11, quick=8887779, port=5000
[INFO] [SignageApp] Screen size set to 1920x1080
[INFO] [SignageApp] MediaPlayer: Starting on_enter method.
[INFO] [SignageApp] MediaPlayer: Loaded server settings: server=192.168.1.74, host=rpi-tv11, quick=8887779, port=5000
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
[WARNING] [SignageApp] python_functions: Local playlist file not found.
[INFO] [SignageApp] MediaPlayer: Loaded local playlist: [], Version: 0
[WARNING] [SignageApp] MediaPlayer: No local playlist found. Attempting to load demo playlist...
[INFO] [SignageApp] MediaPlayer: Demo playlist loaded successfully.
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.74:5000/api/playlists with params: {'hostname': 'rpi-tv11', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Configuration loaded: server=192.168.1.74, host=rpi-tv11, quick=8887779, port=5000
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
[WARNING] [SignageApp] python_functions: Local playlist file not found.
[WARNING] [SignageApp] No local playlist found, creating demo content
[INFO] [SignageApp] Created demo playlist with 9 images
[INFO] [SignageApp] Playing media: left-arrow-green.png
2025-08-05 12:22:33 - STARTED: left-arrow-green.png
[INFO] [SignageApp] Starting Simple Tkinter Media Player
[INFO] [SignageApp] Playing media: pause.png
2025-08-05 12:22:38 - STARTED: pause.png
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Playing media: home_icon.png
2025-08-05 12:22:44 - STARTED: home_icon.png
[INFO] [SignageApp] Playing media: play.png
2025-08-05 12:22:49 - STARTED: play.png
[INFO] [SignageApp] Playing media: demo1.jpg
2025-08-05 12:22:54 - STARTED: demo1.jpg
[INFO] [SignageApp] Playing media: demo2.jpeg
2025-08-05 12:22:59 - STARTED: demo2.jpeg
[INFO] [SignageApp] Playing media: left-arrow-blue.png
2025-08-05 12:23:04 - STARTED: left-arrow-blue.png
[INFO] [SignageApp] Playing media: right-arrow-blue.png
2025-08-05 12:23:09 - STARTED: right-arrow-blue.png
[INFO] [SignageApp] Playing media: right-arrow-green.png
2025-08-05 12:23:15 - STARTED: right-arrow-green.png
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] Playing media: left-arrow-green.png
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
2025-08-05 12:23:20 - STARTED: left-arrow-green.png
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.74:5000/api/playlists with params: {'hostname': 'rpi-tv11', 'quickconnect_code': '8887779'}
[ERROR] [SignageApp] Failed to fetch playlist: HTTPConnectionPool(host='192.168.1.74', port=5000): Max retries exceeded with url: /api/playlists?hostname=rpi-tv11&quickconnect_code=8887779 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xf4fc2090>: Failed to establish a new connection: [Errno 113] No route to host'))
[INFO] [SignageApp] Playing media: pause.png
2025-08-05 12:23:25 - STARTED: pause.png
[INFO] [SignageApp] Playing media: home_icon.png
2025-08-05 12:23:30 - STARTED: home_icon.png
[INFO] [SignageApp] Playing media: play.png
2025-08-05 12:23:35 - STARTED: play.png
[INFO] [SignageApp] Playing media: demo1.jpg
2025-08-05 12:23:40 - STARTED: demo1.jpg
[INFO] [SignageApp] Playing media: demo2.jpeg
2025-08-05 12:23:45 - STARTED: demo2.jpeg
[INFO] [SignageApp] Playing media: left-arrow-blue.png
2025-08-05 12:23:51 - STARTED: left-arrow-blue.png
[INFO] [SignageApp] Playing media: right-arrow-blue.png
2025-08-05 12:23:56 - STARTED: right-arrow-blue.png
[INFO] [SignageApp] Playing media: right-arrow-green.png
2025-08-05 12:24:01 - STARTED: right-arrow-green.png
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] Playing media: left-arrow-green.png
2025-08-05 12:24:06 - STARTED: left-arrow-green.png
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.74:5000/api/playlists with params: {'hostname': 'rpi-tv11', 'quickconnect_code': '8887779'}
[ERROR] [SignageApp] Failed to fetch playlist: HTTPConnectionPool(host='192.168.1.74', port=5000): Max retries exceeded with url: /api/playlists?hostname=rpi-tv11&quickconnect_code=8887779 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xf58310d0>: Failed to establish a new connection: [Errno 113] No route to host'))
[INFO] [SignageApp] Playing media: pause.png
2025-08-05 12:24:11 - STARTED: pause.png
[INFO] [SignageApp] Playing media: home_icon.png
2025-08-05 12:24:16 - STARTED: home_icon.png
[INFO] [SignageApp] Playing media: play.png
2025-08-05 12:24:21 - STARTED: play.png
[INFO] [SignageApp] Playing media: demo1.jpg
2025-08-05 12:24:26 - STARTED: demo1.jpg
[INFO] [SignageApp] Playing media: demo2.jpeg
2025-08-05 12:24:31 - STARTED: demo2.jpeg
[INFO] [SignageApp] Playing media: left-arrow-blue.png
2025-08-05 12:24:37 - STARTED: left-arrow-blue.png
[INFO] [SignageApp] Playing media: right-arrow-blue.png
2025-08-05 12:24:42 - STARTED: right-arrow-blue.png
[INFO] [SignageApp] Playing media: right-arrow-green.png
2025-08-05 12:24:47 - STARTED: right-arrow-green.png
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] Playing media: left-arrow-green.png
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
2025-08-05 12:24:52 - STARTED: left-arrow-green.png
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.74:5000/api/playlists with params: {'hostname': 'rpi-tv11', 'quickconnect_code': '8887779'}
[ERROR] [SignageApp] Failed to fetch playlist: HTTPConnectionPool(host='192.168.1.74', port=5000): Max retries exceeded with url: /api/playlists?hostname=rpi-tv11&quickconnect_code=8887779 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xf4fc2690>: Failed to establish a new connection: [Errno 113] No route to host'))
[INFO] [SignageApp] Playing media: pause.png
2025-08-05 12:24:57 - STARTED: pause.png
[INFO] [SignageApp] Playing media: home_icon.png
2025-08-05 12:25:02 - STARTED: home_icon.png
[INFO] [SignageApp] Playing media: play.png
2025-08-05 12:25:07 - STARTED: play.png
[INFO] [SignageApp] Playing media: demo1.jpg
2025-08-05 12:25:12 - STARTED: demo1.jpg
[INFO] [SignageApp] Playing media: demo2.jpeg
2025-08-05 12:25:17 - STARTED: demo2.jpeg
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Configuration saved via settings window
[INFO] [SignageApp] Playing media: left-arrow-blue.png
2025-08-05 12:25:23 - STARTED: left-arrow-blue.png
[INFO] [SignageApp] Playing media: right-arrow-blue.png
2025-08-05 12:25:28 - STARTED: right-arrow-blue.png
[INFO] [SignageApp] Playing media: right-arrow-green.png
2025-08-05 12:25:33 - STARTED: right-arrow-green.png
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] Playing media: left-arrow-green.png
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
2025-08-05 12:25:38 - STARTED: left-arrow-green.png
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.74:5000/api/playlists with params: {'hostname': 'rpi-tv11', 'quickconnect_code': '8887779'}
[ERROR] [SignageApp] Failed to fetch playlist: HTTPConnectionPool(host='192.168.1.74', port=5000): Max retries exceeded with url: /api/playlists?hostname=rpi-tv11&quickconnect_code=8887779 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xf5824ff0>: Failed to establish a new connection: [Errno 113] No route to host'))
[INFO] [SignageApp] Playing media: pause.png
2025-08-05 12:25:43 - STARTED: pause.png
[INFO] [SignageApp] Playing media: home_icon.png
2025-08-05 12:25:48 - STARTED: home_icon.png
[INFO] [SignageApp] Playing media: play.png
2025-08-05 12:25:50 - STARTED: play.png
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Playing media: demo1.jpg
2025-08-05 12:25:55 - STARTED: demo1.jpg
[INFO] [SignageApp] Playing media: demo2.jpeg
2025-08-05 12:26:01 - STARTED: demo2.jpeg
[INFO] [SignageApp] Playing media: left-arrow-blue.png
2025-08-05 12:26:06 - STARTED: left-arrow-blue.png
[INFO] [SignageApp] Application exit requested
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Configuration loaded: server=192.168.1.245, host=tv-holba1, quick=8887779, port=5000
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
[WARNING] [SignageApp] python_functions: Local playlist file not found.
[WARNING] [SignageApp] No local playlist found, creating demo content
[INFO] [SignageApp] Created demo playlist with 9 images
[INFO] [SignageApp] Playing media: left-arrow-green.png
2025-08-05 12:29:21 - STARTED: left-arrow-green.png
[INFO] [SignageApp] Starting Simple Tkinter Media Player
[INFO] [SignageApp] Playing media: pause.png
2025-08-05 12:29:26 - STARTED: pause.png
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Playing media: home_icon.png
2025-08-05 12:29:31 - STARTED: home_icon.png
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Playing media: play.png
2025-08-05 12:29:36 - STARTED: play.png
[INFO] [SignageApp] Playing media: demo1.jpg
2025-08-05 12:29:41 - STARTED: demo1.jpg
[INFO] [SignageApp] Application exit requested
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Configuration loaded: server=192.168.1.245, host=tv-holba1, quick=8887779, port=5000
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Configuration loaded: server=192.168.1.245, host=tv-holba1, quick=8887779, port=5000
[INFO] [SignageApp] python_functions: Starting load_config function.
[ERROR] [SignageApp] python_functions: Configuration file ./Resurse/app_config.txt not found.
[INFO] [SignageApp] python_functions: Configuration loaded: server=, host=, quick=, port=
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Configuration loaded: server=192.168.1.245, host=tv-holba1, quick=8887779, port=5000
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Initializing with settings: server=192.168.1.245, host=tv-holba1, port=5000
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$ReP1AQ/YknPWyoFLGwSgH.80kBv.Bm13XdRUTALyA6vD20T1vEOl.', 'playlist': [{'duration': 20, 'file_name': 'har_page_001.jpg', 'url': 'http://192.168.1.245:5000/media/har_page_001.jpg'}, {'duration': 20, 'file_name': 'har_page_002.jpg', 'url': 'http://192.168.1.245:5000/media/har_page_002.jpg'}, {'duration': 20, 'file_name': 'har_page_003.jpg', 'url': 'http://192.168.1.245:5000/media/har_page_003.jpg'}, {'duration': 20, 'file_name': 'har_page_004.jpg', 'url': 'http://192.168.1.245:5000/media/har_page_004.jpg'}, {'duration': 20, 'file_name': 'har_page_005.jpg', 'url': 'http://192.168.1.245:5000/media/har_page_005.jpg'}, {'duration': 20, 'file_name': 'har_page_006.jpg', 'url': 'http://192.168.1.245:5000/media/har_page_006.jpg'}, {'duration': 20, 'file_name': 'har_page_007.jpg', 'url': 'http://192.168.1.245:5000/media/har_page_007.jpg'}, {'duration': 20, 'file_name': 'har_page_008.jpg', 'url': 'http://192.168.1.245:5000/media/har_page_008.jpg'}, {'duration': 20, 'file_name': 'har_page_009.jpg', 'url': 'http://192.168.1.245:5000/media/har_page_009.jpg'}, {'duration': 20, 'file_name': 'har_page_010.jpg', 'url': 'http://192.168.1.245:5000/media/har_page_010.jpg'}], 'playlist_version': 4}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 4.
[INFO] [SignageApp] Server playlist found with 10 items, version 4
[INFO] [SignageApp] python_functions: Starting media file download...
[INFO] [SignageApp] python_functions: Created directory /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse for media files.
[INFO] [SignageApp] python_functions: Successfully downloaded har_page_001.jpg to /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/har_page_001.jpg
[INFO] [SignageApp] python_functions: Successfully downloaded har_page_002.jpg to /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/har_page_002.jpg
[INFO] [SignageApp] python_functions: Successfully downloaded har_page_003.jpg to /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/har_page_003.jpg
[INFO] [SignageApp] python_functions: Successfully downloaded har_page_004.jpg to /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/har_page_004.jpg
[INFO] [SignageApp] python_functions: Successfully downloaded har_page_005.jpg to /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/har_page_005.jpg
[INFO] [SignageApp] python_functions: Successfully downloaded har_page_006.jpg to /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/har_page_006.jpg
[INFO] [SignageApp] python_functions: Successfully downloaded har_page_007.jpg to /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/har_page_007.jpg
[INFO] [SignageApp] python_functions: Successfully downloaded har_page_008.jpg to /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/har_page_008.jpg
[INFO] [SignageApp] python_functions: Successfully downloaded har_page_009.jpg to /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/har_page_009.jpg
[INFO] [SignageApp] python_functions: Successfully downloaded har_page_010.jpg to /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/har_page_010.jpg
[INFO] [SignageApp] python_functions: Starting save_local_playlist function.
[INFO] [SignageApp] python_functions: Updated local playlist with server data.
[INFO] [SignageApp] python_functions: Finished save_local_playlist function.
[INFO] [SignageApp] python_functions: Finished media file download and updated local playlist.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 4.
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': 'har_page_001.jpg', 'url': 'static/resurse/har_page_001.jpg', 'duration': 20}, {'file_name': 'har_page_002.jpg', 'url': 'static/resurse/har_page_002.jpg', 'duration': 20}, {'file_name': 'har_page_003.jpg', 'url': 'static/resurse/har_page_003.jpg', 'duration': 20}, {'file_name': 'har_page_004.jpg', 'url': 'static/resurse/har_page_004.jpg', 'duration': 20}, {'file_name': 'har_page_005.jpg', 'url': 'static/resurse/har_page_005.jpg', 'duration': 20}, {'file_name': 'har_page_006.jpg', 'url': 'static/resurse/har_page_006.jpg', 'duration': 20}, {'file_name': 'har_page_007.jpg', 'url': 'static/resurse/har_page_007.jpg', 'duration': 20}, {'file_name': 'har_page_008.jpg', 'url': 'static/resurse/har_page_008.jpg', 'duration': 20}, {'file_name': 'har_page_009.jpg', 'url': 'static/resurse/har_page_009.jpg', 'duration': 20}, {'file_name': 'har_page_010.jpg', 'url': 'static/resurse/har_page_010.jpg', 'duration': 20}], 'version': 4}
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
[INFO] [SignageApp] Successfully loaded 10 items from server
[INFO] [SignageApp] Playing media: har_page_001.jpg from static/resurse/har_page_001.jpg
2025-08-05 13:52:51 - STARTED: har_page_001.jpg
[INFO] [SignageApp] Starting Simple Tkinter Media Player
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$ReP1AQ/YknPWyoFLGwSgH.80kBv.Bm13XdRUTALyA6vD20T1vEOl.', 'playlist': [{'duration': 20, 'file_name': 'har_page_001.jpg', 'url': 'http://192.168.1.245:5000/media/har_page_001.jpg'}, {'duration': 20, 'file_name': 'har_page_002.jpg', 'url': 'http://192.168.1.245:5000/media/har_page_002.jpg'}, {'duration': 20, 'file_name': 'har_page_003.jpg', 'url': 'http://192.168.1.245:5000/media/har_page_003.jpg'}, {'duration': 20, 'file_name': 'har_page_004.jpg', 'url': 'http://192.168.1.245:5000/media/har_page_004.jpg'}, {'duration': 20, 'file_name': 'har_page_005.jpg', 'url': 'http://192.168.1.245:5000/media/har_page_005.jpg'}, {'duration': 20, 'file_name': 'har_page_006.jpg', 'url': 'http://192.168.1.245:5000/media/har_page_006.jpg'}, {'duration': 20, 'file_name': 'har_page_007.jpg', 'url': 'http://192.168.1.245:5000/media/har_page_007.jpg'}, {'duration': 20, 'file_name': 'har_page_008.jpg', 'url': 'http://192.168.1.245:5000/media/har_page_008.jpg'}, {'duration': 20, 'file_name': 'har_page_009.jpg', 'url': 'http://192.168.1.245:5000/media/har_page_009.jpg'}, {'duration': 20, 'file_name': 'har_page_010.jpg', 'url': 'http://192.168.1.245:5000/media/har_page_010.jpg'}], 'playlist_version': 4}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 4.
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': 'har_page_001.jpg', 'url': 'static/resurse/har_page_001.jpg', 'duration': 20}, {'file_name': 'har_page_002.jpg', 'url': 'static/resurse/har_page_002.jpg', 'duration': 20}, {'file_name': 'har_page_003.jpg', 'url': 'static/resurse/har_page_003.jpg', 'duration': 20}, {'file_name': 'har_page_004.jpg', 'url': 'static/resurse/har_page_004.jpg', 'duration': 20}, {'file_name': 'har_page_005.jpg', 'url': 'static/resurse/har_page_005.jpg', 'duration': 20}, {'file_name': 'har_page_006.jpg', 'url': 'static/resurse/har_page_006.jpg', 'duration': 20}, {'file_name': 'har_page_007.jpg', 'url': 'static/resurse/har_page_007.jpg', 'duration': 20}, {'file_name': 'har_page_008.jpg', 'url': 'static/resurse/har_page_008.jpg', 'duration': 20}, {'file_name': 'har_page_009.jpg', 'url': 'static/resurse/har_page_009.jpg', 'duration': 20}, {'file_name': 'har_page_010.jpg', 'url': 'static/resurse/har_page_010.jpg', 'duration': 20}], 'version': 4}
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
[INFO] [SignageApp] python_functions: Cleaning unused media files...
[INFO] [SignageApp] python_functions: Starting media file download...
[INFO] [SignageApp] python_functions: File har_page_001.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: File har_page_002.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: File har_page_003.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: File har_page_004.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: File har_page_005.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: File har_page_006.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: File har_page_007.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: File har_page_008.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: File har_page_009.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: File har_page_010.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: Starting save_local_playlist function.
[INFO] [SignageApp] python_functions: Updated local playlist with server data.
[INFO] [SignageApp] python_functions: Finished save_local_playlist function.
[INFO] [SignageApp] python_functions: Finished media file download and updated local playlist.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 4.
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': 'har_page_001.jpg', 'url': 'static/resurse/har_page_001.jpg', 'duration': 20}, {'file_name': 'har_page_002.jpg', 'url': 'static/resurse/har_page_002.jpg', 'duration': 20}, {'file_name': 'har_page_003.jpg', 'url': 'static/resurse/har_page_003.jpg', 'duration': 20}, {'file_name': 'har_page_004.jpg', 'url': 'static/resurse/har_page_004.jpg', 'duration': 20}, {'file_name': 'har_page_005.jpg', 'url': 'static/resurse/har_page_005.jpg', 'duration': 20}, {'file_name': 'har_page_006.jpg', 'url': 'static/resurse/har_page_006.jpg', 'duration': 20}, {'file_name': 'har_page_007.jpg', 'url': 'static/resurse/har_page_007.jpg', 'duration': 20}, {'file_name': 'har_page_008.jpg', 'url': 'static/resurse/har_page_008.jpg', 'duration': 20}, {'file_name': 'har_page_009.jpg', 'url': 'static/resurse/har_page_009.jpg', 'duration': 20}, {'file_name': 'har_page_010.jpg', 'url': 'static/resurse/har_page_010.jpg', 'duration': 20}], 'version': 4}
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
[INFO] [SignageApp] Playing media: har_page_001.jpg from static/resurse/har_page_001.jpg
2025-08-05 13:53:08 - STARTED: har_page_001.jpg
[INFO] [SignageApp] Playing media: har_page_002.jpg from static/resurse/har_page_002.jpg
2025-08-05 13:53:15 - STARTED: har_page_002.jpg
[INFO] [SignageApp] Playing media: har_page_003.jpg from static/resurse/har_page_003.jpg
2025-08-05 13:53:17 - STARTED: har_page_003.jpg
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Application exit requested
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Configuration loaded: server=192.168.1.245, host=tv-holba1, quick=8887779, port=5000
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Initializing with settings: server=192.168.1.245, host=tv-holba1, port=5000
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$ReP1AQ/YknPWyoFLGwSgH.80kBv.Bm13XdRUTALyA6vD20T1vEOl.', 'playlist': [{'duration': 20, 'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'http://192.168.1.245:5000/media/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg'}, {'duration': 15, 'file_name': 'wp2782770-1846651530.jpg', 'url': 'http://192.168.1.245:5000/media/wp2782770-1846651530.jpg'}], 'playlist_version': 5}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] Server playlist found with 2 items, version 5
[INFO] [SignageApp] python_functions: Starting media file download...
[INFO] [SignageApp] python_functions: Successfully downloaded 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg to /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] python_functions: Successfully downloaded wp2782770-1846651530.jpg to /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
[INFO] [SignageApp] python_functions: Starting save_local_playlist function.
[INFO] [SignageApp] python_functions: Updated local playlist with server data.
[INFO] [SignageApp] python_functions: Finished save_local_playlist function.
[INFO] [SignageApp] python_functions: Finished media file download and updated local playlist.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}], 'version': 5}
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
[INFO] [SignageApp] Successfully loaded 2 items from server
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
2025-08-05 13:55:59 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Starting Simple Tkinter Media Player
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from static/resurse/wp2782770-1846651530.jpg
2025-08-05 13:56:19 - STARTED: wp2782770-1846651530.jpg
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Application exit requested
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Configuration loaded: server=192.168.1.245, host=tv-holba1, quick=8887779, port=5000
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Initializing with settings: server=192.168.1.245, host=tv-holba1, port=5000
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$ReP1AQ/YknPWyoFLGwSgH.80kBv.Bm13XdRUTALyA6vD20T1vEOl.', 'playlist': [{'duration': 20, 'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'http://192.168.1.245:5000/media/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg'}, {'duration': 15, 'file_name': 'wp2782770-1846651530.jpg', 'url': 'http://192.168.1.245:5000/media/wp2782770-1846651530.jpg'}], 'playlist_version': 5}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] Server playlist found with 2 items, version 5
[INFO] [SignageApp] python_functions: Starting media file download...
[INFO] [SignageApp] python_functions: File 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: File wp2782770-1846651530.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: Starting save_local_playlist function.
[INFO] [SignageApp] python_functions: Updated local playlist with server data.
[INFO] [SignageApp] python_functions: Finished save_local_playlist function.
[INFO] [SignageApp] python_functions: Finished media file download and updated local playlist.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}], 'version': 5}
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
[INFO] [SignageApp] Successfully loaded 2 items from server
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
2025-08-05 14:03:41 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Starting Simple Tkinter Media Player
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from static/resurse/wp2782770-1846651530.jpg
2025-08-05 14:04:01 - STARTED: wp2782770-1846651530.jpg
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Application exit requested
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Configuration loaded: server=192.168.1.245, host=tv-holba1, quick=8887779, port=5000
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Initializing with settings: server=192.168.1.245, host=tv-holba1, port=5000
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$ReP1AQ/YknPWyoFLGwSgH.80kBv.Bm13XdRUTALyA6vD20T1vEOl.', 'playlist': [{'duration': 20, 'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'http://192.168.1.245:5000/media/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg'}, {'duration': 15, 'file_name': 'wp2782770-1846651530.jpg', 'url': 'http://192.168.1.245:5000/media/wp2782770-1846651530.jpg'}], 'playlist_version': 5}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] Server playlist found with 2 items, version 5
[INFO] [SignageApp] python_functions: Starting media file download...
[INFO] [SignageApp] python_functions: File 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: File wp2782770-1846651530.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: Starting save_local_playlist function.
[INFO] [SignageApp] python_functions: Updated local playlist with server data.
[INFO] [SignageApp] python_functions: Finished save_local_playlist function.
[INFO] [SignageApp] python_functions: Finished media file download and updated local playlist.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}], 'version': 5}
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
[INFO] [SignageApp] Successfully loaded 2 items from server
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
2025-08-05 14:09:20 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Starting Simple Tkinter Media Player
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
2025-08-05 14:09:40 - STARTED: wp2782770-1846651530.jpg
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
2025-08-05 14:09:56 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$ReP1AQ/YknPWyoFLGwSgH.80kBv.Bm13XdRUTALyA6vD20T1vEOl.', 'playlist': [{'duration': 20, 'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'http://192.168.1.245:5000/media/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg'}, {'duration': 15, 'file_name': 'wp2782770-1846651530.jpg', 'url': 'http://192.168.1.245:5000/media/wp2782770-1846651530.jpg'}], 'playlist_version': 5}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] No playlist updates available
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
2025-08-05 14:10:16 - STARTED: wp2782770-1846651530.jpg
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
2025-08-05 14:10:32 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$ReP1AQ/YknPWyoFLGwSgH.80kBv.Bm13XdRUTALyA6vD20T1vEOl.', 'playlist': [{'duration': 20, 'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'http://192.168.1.245:5000/media/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg'}, {'duration': 15, 'file_name': 'wp2782770-1846651530.jpg', 'url': 'http://192.168.1.245:5000/media/wp2782770-1846651530.jpg'}], 'playlist_version': 5}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] No playlist updates available
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
2025-08-05 14:10:52 - STARTED: wp2782770-1846651530.jpg
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
2025-08-05 14:11:09 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$ReP1AQ/YknPWyoFLGwSgH.80kBv.Bm13XdRUTALyA6vD20T1vEOl.', 'playlist': [{'duration': 20, 'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'http://192.168.1.245:5000/media/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg'}, {'duration': 15, 'file_name': 'wp2782770-1846651530.jpg', 'url': 'http://192.168.1.245:5000/media/wp2782770-1846651530.jpg'}], 'playlist_version': 5}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] No playlist updates available
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
2025-08-05 14:11:29 - STARTED: wp2782770-1846651530.jpg
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
2025-08-05 14:11:45 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$ReP1AQ/YknPWyoFLGwSgH.80kBv.Bm13XdRUTALyA6vD20T1vEOl.', 'playlist': [{'duration': 20, 'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'http://192.168.1.245:5000/media/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg'}, {'duration': 15, 'file_name': 'wp2782770-1846651530.jpg', 'url': 'http://192.168.1.245:5000/media/wp2782770-1846651530.jpg'}], 'playlist_version': 5}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] No playlist updates available
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
2025-08-05 14:12:05 - STARTED: wp2782770-1846651530.jpg
[INFO] [SignageApp] Application exit requested
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Configuration loaded: server=192.168.1.245, host=tv-holba1, quick=8887779, port=5000
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Initializing with settings: server=192.168.1.245, host=tv-holba1, port=5000
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$ReP1AQ/YknPWyoFLGwSgH.80kBv.Bm13XdRUTALyA6vD20T1vEOl.', 'playlist': [{'duration': 20, 'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'http://192.168.1.245:5000/media/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg'}, {'duration': 15, 'file_name': 'wp2782770-1846651530.jpg', 'url': 'http://192.168.1.245:5000/media/wp2782770-1846651530.jpg'}, {'duration': 5, 'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'http://192.168.1.245:5000/media/SampleVideo_1280x720_1mb.mp4'}], 'playlist_version': 5}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] Server playlist found with 3 items, version 5
[INFO] [SignageApp] python_functions: Starting media file download...
[INFO] [SignageApp] python_functions: File 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: File wp2782770-1846651530.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: Successfully downloaded SampleVideo_1280x720_1mb.mp4 to /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
[INFO] [SignageApp] python_functions: Starting save_local_playlist function.
[INFO] [SignageApp] python_functions: Updated local playlist with server data.
[INFO] [SignageApp] python_functions: Finished save_local_playlist function.
[INFO] [SignageApp] python_functions: Finished media file download and updated local playlist.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}, {'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'static/resurse/SampleVideo_1280x720_1mb.mp4', 'duration': 5}], 'version': 5}
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
[INFO] [SignageApp] Successfully loaded 3 items from server
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
2025-08-05 14:24:44 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Starting Simple Tkinter Media Player
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
2025-08-05 14:25:04 - STARTED: wp2782770-1846651530.jpg
[INFO] [SignageApp] Playing media: SampleVideo_1280x720_1mb.mp4 from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
2025-08-05 14:25:20 - STARTED: SampleVideo_1280x720_1mb.mp4
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
2025-08-05 14:25:25 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$ReP1AQ/YknPWyoFLGwSgH.80kBv.Bm13XdRUTALyA6vD20T1vEOl.', 'playlist': [{'duration': 20, 'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'http://192.168.1.245:5000/media/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg'}, {'duration': 15, 'file_name': 'wp2782770-1846651530.jpg', 'url': 'http://192.168.1.245:5000/media/wp2782770-1846651530.jpg'}, {'duration': 5, 'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'http://192.168.1.245:5000/media/SampleVideo_1280x720_1mb.mp4'}], 'playlist_version': 5}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] No playlist updates available
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
2025-08-05 14:25:46 - STARTED: wp2782770-1846651530.jpg
[INFO] [SignageApp] Playing media: SampleVideo_1280x720_1mb.mp4 from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
2025-08-05 14:26:02 - STARTED: SampleVideo_1280x720_1mb.mp4
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
2025-08-05 14:26:07 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$ReP1AQ/YknPWyoFLGwSgH.80kBv.Bm13XdRUTALyA6vD20T1vEOl.', 'playlist': [{'duration': 20, 'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'http://192.168.1.245:5000/media/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg'}, {'duration': 15, 'file_name': 'wp2782770-1846651530.jpg', 'url': 'http://192.168.1.245:5000/media/wp2782770-1846651530.jpg'}, {'duration': 5, 'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'http://192.168.1.245:5000/media/SampleVideo_1280x720_1mb.mp4'}], 'playlist_version': 5}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] No playlist updates available
[INFO] [SignageApp] Application exit requested
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Configuration loaded: server=192.168.1.245, host=tv-holba1, quick=8887779, port=5000
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Initializing with settings: server=192.168.1.245, host=tv-holba1, port=5000
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$ReP1AQ/YknPWyoFLGwSgH.80kBv.Bm13XdRUTALyA6vD20T1vEOl.', 'playlist': [{'duration': 20, 'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'http://192.168.1.245:5000/media/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg'}, {'duration': 15, 'file_name': 'wp2782770-1846651530.jpg', 'url': 'http://192.168.1.245:5000/media/wp2782770-1846651530.jpg'}, {'duration': 5, 'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'http://192.168.1.245:5000/media/SampleVideo_1280x720_1mb.mp4'}], 'playlist_version': 5}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] Server playlist found with 3 items, version 5
[INFO] [SignageApp] python_functions: Starting media file download...
[INFO] [SignageApp] python_functions: File 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: File wp2782770-1846651530.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: File SampleVideo_1280x720_1mb.mp4 already exists. Skipping download.
[INFO] [SignageApp] python_functions: Starting save_local_playlist function.
[INFO] [SignageApp] python_functions: Updated local playlist with server data.
[INFO] [SignageApp] python_functions: Finished save_local_playlist function.
[INFO] [SignageApp] python_functions: Finished media file download and updated local playlist.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}, {'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'static/resurse/SampleVideo_1280x720_1mb.mp4', 'duration': 5}], 'version': 5}
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
[INFO] [SignageApp] Successfully loaded 3 items from server
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
2025-08-05 14:40:29 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Starting Simple Tkinter Media Player
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
2025-08-05 14:40:50 - STARTED: wp2782770-1846651530.jpg
[INFO] [SignageApp] Playing media: SampleVideo_1280x720_1mb.mp4 from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
2025-08-05 14:41:06 - STARTED: SampleVideo_1280x720_1mb.mp4
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
2025-08-05 14:41:27 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$ReP1AQ/YknPWyoFLGwSgH.80kBv.Bm13XdRUTALyA6vD20T1vEOl.', 'playlist': [{'duration': 20, 'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'http://192.168.1.245:5000/media/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg'}, {'duration': 15, 'file_name': 'wp2782770-1846651530.jpg', 'url': 'http://192.168.1.245:5000/media/wp2782770-1846651530.jpg'}, {'duration': 5, 'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'http://192.168.1.245:5000/media/SampleVideo_1280x720_1mb.mp4'}], 'playlist_version': 5}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] No playlist updates available
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
2025-08-05 14:41:47 - STARTED: wp2782770-1846651530.jpg
[INFO] [SignageApp] Playing media: SampleVideo_1280x720_1mb.mp4 from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
2025-08-05 14:42:03 - STARTED: SampleVideo_1280x720_1mb.mp4
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
2025-08-05 14:42:25 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$ReP1AQ/YknPWyoFLGwSgH.80kBv.Bm13XdRUTALyA6vD20T1vEOl.', 'playlist': [{'duration': 20, 'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'http://192.168.1.245:5000/media/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg'}, {'duration': 15, 'file_name': 'wp2782770-1846651530.jpg', 'url': 'http://192.168.1.245:5000/media/wp2782770-1846651530.jpg'}, {'duration': 5, 'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'http://192.168.1.245:5000/media/SampleVideo_1280x720_1mb.mp4'}], 'playlist_version': 5}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] No playlist updates available
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
2025-08-05 14:42:45 - STARTED: wp2782770-1846651530.jpg
[INFO] [SignageApp] Playing media: SampleVideo_1280x720_1mb.mp4 from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
2025-08-05 14:43:01 - STARTED: SampleVideo_1280x720_1mb.mp4
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
2025-08-05 14:43:21 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$ReP1AQ/YknPWyoFLGwSgH.80kBv.Bm13XdRUTALyA6vD20T1vEOl.', 'playlist': [{'duration': 20, 'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'http://192.168.1.245:5000/media/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg'}, {'duration': 15, 'file_name': 'wp2782770-1846651530.jpg', 'url': 'http://192.168.1.245:5000/media/wp2782770-1846651530.jpg'}, {'duration': 5, 'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'http://192.168.1.245:5000/media/SampleVideo_1280x720_1mb.mp4'}], 'playlist_version': 5}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] No playlist updates available
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
2025-08-05 14:43:42 - STARTED: wp2782770-1846651530.jpg
[INFO] [SignageApp] Playing media: SampleVideo_1280x720_1mb.mp4 from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
2025-08-05 14:43:58 - STARTED: SampleVideo_1280x720_1mb.mp4
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
2025-08-05 14:44:18 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$ReP1AQ/YknPWyoFLGwSgH.80kBv.Bm13XdRUTALyA6vD20T1vEOl.', 'playlist': [{'duration': 20, 'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'http://192.168.1.245:5000/media/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg'}, {'duration': 15, 'file_name': 'wp2782770-1846651530.jpg', 'url': 'http://192.168.1.245:5000/media/wp2782770-1846651530.jpg'}, {'duration': 5, 'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'http://192.168.1.245:5000/media/SampleVideo_1280x720_1mb.mp4'}], 'playlist_version': 5}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] No playlist updates available
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
2025-08-05 14:44:38 - STARTED: wp2782770-1846651530.jpg
[INFO] [SignageApp] Playing media: SampleVideo_1280x720_1mb.mp4 from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
2025-08-05 14:44:54 - STARTED: SampleVideo_1280x720_1mb.mp4
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
2025-08-05 14:45:15 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$ReP1AQ/YknPWyoFLGwSgH.80kBv.Bm13XdRUTALyA6vD20T1vEOl.', 'playlist': [{'duration': 20, 'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'http://192.168.1.245:5000/media/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg'}, {'duration': 15, 'file_name': 'wp2782770-1846651530.jpg', 'url': 'http://192.168.1.245:5000/media/wp2782770-1846651530.jpg'}, {'duration': 5, 'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'http://192.168.1.245:5000/media/SampleVideo_1280x720_1mb.mp4'}], 'playlist_version': 5}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] No playlist updates available
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Application exit requested
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Configuration loaded: server=192.168.1.245, host=tv-holba1, quick=8887779, port=5000
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Initializing with settings: server=192.168.1.245, host=tv-holba1, port=5000
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$ReP1AQ/YknPWyoFLGwSgH.80kBv.Bm13XdRUTALyA6vD20T1vEOl.', 'playlist': [{'duration': 20, 'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'http://192.168.1.245:5000/media/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg'}, {'duration': 15, 'file_name': 'wp2782770-1846651530.jpg', 'url': 'http://192.168.1.245:5000/media/wp2782770-1846651530.jpg'}, {'duration': 5, 'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'http://192.168.1.245:5000/media/SampleVideo_1280x720_1mb.mp4'}], 'playlist_version': 5}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] Server playlist found with 3 items, version 5
[INFO] [SignageApp] python_functions: Starting media file download...
[INFO] [SignageApp] python_functions: File 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: File wp2782770-1846651530.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: File SampleVideo_1280x720_1mb.mp4 already exists. Skipping download.
[INFO] [SignageApp] python_functions: Starting save_local_playlist function.
[INFO] [SignageApp] python_functions: Updated local playlist with server data.
[INFO] [SignageApp] python_functions: Finished save_local_playlist function.
[INFO] [SignageApp] python_functions: Finished media file download and updated local playlist.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}, {'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'static/resurse/SampleVideo_1280x720_1mb.mp4', 'duration': 5}], 'version': 5}
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
[INFO] [SignageApp] Successfully loaded 3 items from server
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
2025-08-05 15:13:11 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Starting Simple Tkinter Media Player
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
2025-08-05 15:13:31 - STARTED: wp2782770-1846651530.jpg
[INFO] [SignageApp] Playing media: SampleVideo_1280x720_1mb.mp4 from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
2025-08-05 15:13:47 - STARTED: SampleVideo_1280x720_1mb.mp4
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
2025-08-05 15:14:08 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$ReP1AQ/YknPWyoFLGwSgH.80kBv.Bm13XdRUTALyA6vD20T1vEOl.', 'playlist': [{'duration': 20, 'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'http://192.168.1.245:5000/media/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg'}, {'duration': 15, 'file_name': 'wp2782770-1846651530.jpg', 'url': 'http://192.168.1.245:5000/media/wp2782770-1846651530.jpg'}, {'duration': 5, 'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'http://192.168.1.245:5000/media/SampleVideo_1280x720_1mb.mp4'}], 'playlist_version': 5}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] No playlist updates available
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Application exit requested
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Configuration loaded: server=192.168.1.245, host=tv-holba1, quick=8887779, port=5000
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Initializing with settings: server=192.168.1.245, host=tv-holba1, port=5000
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$ReP1AQ/YknPWyoFLGwSgH.80kBv.Bm13XdRUTALyA6vD20T1vEOl.', 'playlist': [{'duration': 20, 'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'http://192.168.1.245:5000/media/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg'}, {'duration': 15, 'file_name': 'wp2782770-1846651530.jpg', 'url': 'http://192.168.1.245:5000/media/wp2782770-1846651530.jpg'}, {'duration': 5, 'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'http://192.168.1.245:5000/media/SampleVideo_1280x720_1mb.mp4'}], 'playlist_version': 5}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] Server playlist found with 3 items, version 5
[INFO] [SignageApp] python_functions: Starting media file download...
[INFO] [SignageApp] python_functions: File 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: File wp2782770-1846651530.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: File SampleVideo_1280x720_1mb.mp4 already exists. Skipping download.
[INFO] [SignageApp] python_functions: Starting save_local_playlist function.
[INFO] [SignageApp] python_functions: Updated local playlist with server data.
[INFO] [SignageApp] python_functions: Finished save_local_playlist function.
[INFO] [SignageApp] python_functions: Finished media file download and updated local playlist.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}, {'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'static/resurse/SampleVideo_1280x720_1mb.mp4', 'duration': 5}], 'version': 5}
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
[INFO] [SignageApp] Successfully loaded 3 items from server
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
2025-08-05 15:34:34 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Starting Simple Tkinter Media Player
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Application exit requested
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Configuration loaded: server=192.168.1.245, host=tv-holba1, quick=8887779, port=5000
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Initializing with settings: server=192.168.1.245, host=tv-holba1, port=5000
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$ReP1AQ/YknPWyoFLGwSgH.80kBv.Bm13XdRUTALyA6vD20T1vEOl.', 'playlist': [{'duration': 20, 'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'http://192.168.1.245:5000/media/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg'}, {'duration': 15, 'file_name': 'wp2782770-1846651530.jpg', 'url': 'http://192.168.1.245:5000/media/wp2782770-1846651530.jpg'}, {'duration': 5, 'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'http://192.168.1.245:5000/media/SampleVideo_1280x720_1mb.mp4'}], 'playlist_version': 5}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] Server playlist found with 3 items, version 5
[INFO] [SignageApp] python_functions: Starting media file download...
[INFO] [SignageApp] python_functions: File 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: File wp2782770-1846651530.jpg already exists. Skipping download.
[INFO] [SignageApp] python_functions: File SampleVideo_1280x720_1mb.mp4 already exists. Skipping download.
[INFO] [SignageApp] python_functions: Starting save_local_playlist function.
[INFO] [SignageApp] python_functions: Updated local playlist with server data.
[INFO] [SignageApp] python_functions: Finished save_local_playlist function.
[INFO] [SignageApp] python_functions: Finished media file download and updated local playlist.
[INFO] [SignageApp] python_functions: Updated playlist version in app_config.txt to 5.
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}, {'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'static/resurse/SampleVideo_1280x720_1mb.mp4', 'duration': 5}], 'version': 5}
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
[INFO] [SignageApp] Successfully loaded 3 items from server
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
2025-08-05 15:35:55 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Starting Simple Tkinter Media Player
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Application exit requested
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Configuration loaded: server=192.168.1.245, host=tv-holba1, quick=8887779, port=5000
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Initializing with settings: server=192.168.1.245, host=tv-holba1, port=5000
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[ERROR] [SignageApp] Failed to fetch playlist: HTTPConnectionPool(host='192.168.1.245', port=5000): Max retries exceeded with url: /api/playlists?hostname=tv-holba1&quickconnect_code=8887779 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xd5a49e50>: Failed to establish a new connection: [Errno 111] Connection refused'))
[WARNING] [SignageApp] Server returned empty playlist
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}, {'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'static/resurse/SampleVideo_1280x720_1mb.mp4', 'duration': 5}], 'version': 5}
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
[INFO] [SignageApp] Loaded existing local playlist with 3 items
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
2025-08-05 15:58:32 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Starting Simple Tkinter Media Player
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Configuration loaded: server=192.168.1.245, host=tv-holba1, quick=8887779, port=5000
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}, {'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'static/resurse/SampleVideo_1280x720_1mb.mp4', 'duration': 5}], 'version': 5}
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
[INFO] [SignageApp] Found fallback playlist with 3 items
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Initializing with settings: server=192.168.1.245, host=tv-holba1, port=5000
[INFO] [SignageApp] Attempting to connect to server...
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[ERROR] [SignageApp] Failed to fetch playlist: HTTPConnectionPool(host='192.168.1.245', port=5000): Max retries exceeded with url: /api/playlists?hostname=tv-holba1&quickconnect_code=8887779 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xd570bd50>: Failed to establish a new connection: [Errno 111] Connection refused'))
[WARNING] [SignageApp] Server returned empty playlist, falling back to local playlist
[INFO] [SignageApp] Loaded fallback playlist with 3 items
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
2025-08-05 16:04:48 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Starting Simple Tkinter Media Player
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
2025-08-05 16:05:08 - STARTED: wp2782770-1846651530.jpg
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Playing media: SampleVideo_1280x720_1mb.mp4 from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
2025-08-05 16:05:24 - STARTED: SampleVideo_1280x720_1mb.mp4
[INFO] [SignageApp] Application exit requested
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Configuration loaded: server=192.168.1.245, host=tv-holba1, quick=8887779, port=5000
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}, {'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'static/resurse/SampleVideo_1280x720_1mb.mp4', 'duration': 5}], 'version': 5}
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
[INFO] [SignageApp] Found fallback playlist with 3 items
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Initializing with settings: server=192.168.1.245, host=tv-holba1, port=5000
[INFO] [SignageApp] Attempting to connect to server...
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[ERROR] [SignageApp] Failed to fetch playlist: HTTPConnectionPool(host='192.168.1.245', port=5000): Max retries exceeded with url: /api/playlists?hostname=tv-holba1&quickconnect_code=8887779 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xd5ded810>: Failed to establish a new connection: [Errno 111] Connection refused'))
[WARNING] [SignageApp] Server returned empty playlist, falling back to local playlist
[INFO] [SignageApp] Loaded fallback playlist with 3 items
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
2025-08-05 16:15:53 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Starting Simple Tkinter Media Player
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
2025-08-05 16:16:14 - STARTED: wp2782770-1846651530.jpg
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Playing media: SampleVideo_1280x720_1mb.mp4 from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
2025-08-05 16:16:30 - STARTED: SampleVideo_1280x720_1mb.mp4
[INFO] [SignageApp] Application exit requested
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Configuration loaded: server=192.168.1.245, host=tv-holba1, quick=8887779, port=5000
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}, {'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'static/resurse/SampleVideo_1280x720_1mb.mp4', 'duration': 5}], 'version': 5}
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
[INFO] [SignageApp] Found fallback playlist with 3 items
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Initializing with settings: server=192.168.1.245, host=tv-holba1, port=5000
[INFO] [SignageApp] Attempting to connect to server...
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[ERROR] [SignageApp] Failed to fetch playlist: HTTPConnectionPool(host='192.168.1.245', port=5000): Max retries exceeded with url: /api/playlists?hostname=tv-holba1&quickconnect_code=8887779 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xd60ccb10>: Failed to establish a new connection: [Errno 111] Connection refused'))
[WARNING] [SignageApp] Server returned empty playlist, falling back to local playlist
[INFO] [SignageApp] Loaded fallback playlist with 3 items
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
2025-08-05 16:28:45 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Starting Simple Tkinter Media Player
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Application exit requested
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Configuration loaded: server=192.168.1.245, host=tv-holba1, quick=8887779, port=5000
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}, {'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'static/resurse/SampleVideo_1280x720_1mb.mp4', 'duration': 5}], 'version': 5}
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
[INFO] [SignageApp] Found fallback playlist with 3 items
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Initializing with settings: server=192.168.1.245, host=tv-holba1, port=5000
[INFO] [SignageApp] Attempting to connect to server...
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[ERROR] [SignageApp] Failed to fetch playlist: HTTPConnectionPool(host='192.168.1.245', port=5000): Max retries exceeded with url: /api/playlists?hostname=tv-holba1&quickconnect_code=8887779 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xcb3c1230>: Failed to establish a new connection: [Errno 111] Connection refused'))
[WARNING] [SignageApp] Server returned empty playlist, falling back to local playlist
[INFO] [SignageApp] Loaded fallback playlist with 3 items
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
2025-08-05 16:34:00 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Starting Simple Tkinter Media Player
[INFO] [SignageApp] Loading configuration in settings window
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Config loaded: {'screen_orientation': 'Landscape', 'screen_name': 'tv-holba1', 'quickconnect_key': '8887779', 'server_ip': '192.168.1.245', 'port': '5000', 'screen_w': '1920', 'screen_h': '1080', 'playlist_version': 5}
[INFO] [SignageApp] Configuration values loaded successfully in settings
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
2025-08-05 16:34:20 - STARTED: wp2782770-1846651530.jpg
[INFO] [SignageApp] Application exit requested
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Configuration loaded: server=192.168.1.245, host=tv-holba1, quick=8887779, port=5000
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}, {'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'static/resurse/SampleVideo_1280x720_1mb.mp4', 'duration': 5}], 'version': 5}
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
[INFO] [SignageApp] Found fallback playlist with 3 items
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Initializing with settings: server=192.168.1.245, host=tv-holba1, port=5000
[INFO] [SignageApp] Attempting to connect to server...
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.245:5000/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
[ERROR] [SignageApp] Failed to fetch playlist: HTTPConnectionPool(host='192.168.1.245', port=5000): Max retries exceeded with url: /api/playlists?hostname=tv-holba1&quickconnect_code=8887779 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xcb6c2270>: Failed to establish a new connection: [Errno 111] Connection refused'))
[WARNING] [SignageApp] Server returned empty playlist, falling back to local playlist
[INFO] [SignageApp] Loaded fallback playlist with 3 items
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
2025-08-05 16:44:37 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
[INFO] [SignageApp] Starting Simple Tkinter Media Player
[INFO] [SignageApp] python_functions: Starting load_config function.
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
[INFO] [SignageApp] Application exit requested

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -0,0 +1,27 @@
import logging
import os
# Path to the log file
# Update the path to point to the new resources directory
LOG_FILE_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'resources', 'log.txt')
# Create a logger instance
Logger = logging.getLogger('SignageApp')
Logger.setLevel(logging.INFO) # Set the logging level to INFO
# Create a file handler to write logs to the log.txt file
file_handler = logging.FileHandler(LOG_FILE_PATH, mode='a') # Append logs to the file
file_handler.setLevel(logging.INFO)
# Create a formatter for the log messages
formatter = logging.Formatter('[%(levelname)s] [%(name)s] %(message)s')
file_handler.setFormatter(formatter)
# Add the file handler to the logger
Logger.addHandler(file_handler)
# Optionally, add a stream handler to log messages to the console
stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.INFO)
stream_handler.setFormatter(formatter)
Logger.addHandler(stream_handler)

20
tkinter_app/src/main.py Normal file
View File

@@ -0,0 +1,20 @@
#!/usr/bin/env python3
"""
Main entry point for the tkinter-based signage player application.
This file acts as the main executable for launching the tkinter player.
"""
import os
import sys
import cv2 # Import OpenCV to confirm it's available
# Add the current directory to the path so we can import our modules
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
# Import the player module
from tkinter_simple_player import SimpleMediaPlayerApp
if __name__ == "__main__":
print(f"Using OpenCV version: {cv2.__version__}")
# Create and run the player
player = SimpleMediaPlayerApp()
player.run()

View File

@@ -0,0 +1,196 @@
import os
import json
import requests
from logging_config import Logger # Import the shared logger
import bcrypt
import time
# Update paths to use the new directory structure
CONFIG_FILE = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'resources', 'app_config.txt')
LOCAL_PLAYLIST_FILE = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'resources', 'local_playlist.json')
def load_config():
"""Load configuration from app_config.txt."""
Logger.info("python_functions: Starting load_config function.")
if os.path.exists(CONFIG_FILE):
try:
with open(CONFIG_FILE, 'r') as file:
Logger.info("python_functions: Configuration file loaded successfully.")
return json.load(file)
except json.JSONDecodeError as e:
Logger.error(f"python_functions: Failed to parse configuration file. Error: {e}")
return {}
else:
Logger.error(f"python_functions: Configuration file {CONFIG_FILE} not found.")
return {}
Logger.info("python_functions: Finished load_config function.")
# Load configuration and initialize variables
config_data = load_config()
server = config_data.get("server_ip", "")
host = config_data.get("screen_name", "")
quick = config_data.get("quickconnect_key", "")
port = config_data.get("port", "")
Logger.info(f"python_functions: Configuration loaded: server={server}, host={host}, quick={quick}, port={port}")
def load_local_playlist():
"""Load the playlist and version from local storage."""
Logger.info("python_functions: Starting load_local_playlist function.")
if os.path.exists(LOCAL_PLAYLIST_FILE):
try:
with open(LOCAL_PLAYLIST_FILE, 'r') as local_file:
local_playlist = json.load(local_file)
Logger.info(f"python_functions: Local playlist loaded: {local_playlist}")
if isinstance(local_playlist, dict) and 'playlist' in local_playlist and 'version' in local_playlist:
Logger.info("python_functions: Finished load_local_playlist function successfully.")
return local_playlist # Return the full playlist data
else:
Logger.error("python_functions: Invalid local playlist structure.")
return {'playlist': [], 'version': 0}
except json.JSONDecodeError as e:
Logger.error(f"python_functions: Failed to parse local playlist file. Error: {e}")
return {'playlist': [], 'version': 0}
else:
Logger.warning("python_functions: Local playlist file not found.")
return {'playlist': [], 'version': 0}
Logger.info("python_functions: Finished load_local_playlist function.")
def save_local_playlist(playlist):
"""Save the updated playlist locally."""
Logger.info("python_functions: Starting save_local_playlist function.")
Logger.debug(f"python_functions: Playlist to save: {playlist}")
if not playlist or 'playlist' not in playlist:
Logger.error("python_functions: Invalid playlist data. Cannot save local playlist.")
return
try:
with open(LOCAL_PLAYLIST_FILE, 'w') as local_file:
json.dump(playlist, local_file, indent=4) # Ensure proper formatting
Logger.info("python_functions: Updated local playlist with server data.")
except IOError as e:
Logger.error(f"python_functions: Failed to save local playlist: {e}")
Logger.info("python_functions: Finished save_local_playlist function.")
def fetch_server_playlist():
"""Fetch the updated playlist from the server."""
try:
server_ip = f'{server}:{port}' # Construct the server IP with port
url = f'http://{server_ip}/api/playlists'
params = {
'hostname': host,
'quickconnect_code': quick
}
Logger.info(f"Fetching playlist from URL: {url} with params: {params}")
response = requests.get(url, params=params)
if response.status_code == 200:
response_data = response.json()
Logger.info(f"Server response: {response_data}")
playlist = response_data.get('playlist', [])
version = response_data.get('playlist_version', None)
hashed_quickconnect = response_data.get('hashed_quickconnect', None)
if version is not None and hashed_quickconnect is not None:
if bcrypt.checkpw(quick.encode('utf-8'), hashed_quickconnect.encode('utf-8')):
Logger.info("Fetched updated playlist from server.")
# Update the playlist version in app_config.txt
update_config_playlist_version(version)
return {'playlist': playlist, 'version': version}
else:
Logger.error("Quickconnect code validation failed.")
else:
Logger.error("Failed to retrieve playlist or hashed quickconnect from the response.")
else:
Logger.error(f"Failed to fetch playlist. Status Code: {response.status_code}")
except requests.exceptions.RequestException as e:
Logger.error(f"Failed to fetch playlist: {e}")
return {'playlist': [], 'version': 0}
def download_media_files(playlist, version):
"""Download media files from the server and update the local playlist."""
Logger.info("python_functions: Starting media file download...")
base_dir = os.path.join(os.path.dirname(__file__), 'static', 'resurse') # Path to the local folder
if not os.path.exists(base_dir):
os.makedirs(base_dir)
Logger.info(f"python_functions: Created directory {base_dir} for media files.")
updated_playlist = [] # List to store updated media entries
for media in playlist:
file_name = media.get('file_name', '')
file_url = media.get('url', '')
duration = media.get('duration', 10) # Default duration if not provided
local_path = os.path.join(base_dir, file_name) # Local file path
Logger.debug(f"python_functions: Preparing to download {file_name} from {file_url}...")
if os.path.exists(local_path):
Logger.info(f"python_functions: File {file_name} already exists. Skipping download.")
else:
try:
response = requests.get(file_url, timeout=10)
if response.status_code == 200:
with open(local_path, 'wb') as file:
file.write(response.content)
Logger.info(f"python_functions: Successfully downloaded {file_name} to {local_path}")
else:
Logger.error(f"python_functions: Failed to download {file_name}. Status Code: {response.status_code}")
continue
except requests.exceptions.RequestException as e:
Logger.error(f"python_functions: Error downloading {file_name}: {e}")
continue
# Update the playlist entry to point to the local file path
updated_media = {
'file_name': file_name,
'url': f"static/resurse/{file_name}", # Update URL to local path
'duration': duration
}
Logger.debug(f"python_functions: Updated media entry: {updated_media}")
updated_playlist.append(updated_media)
# Save the updated playlist locally
save_local_playlist({'playlist': updated_playlist, 'version': version})
Logger.info("python_functions: Finished media file download and updated local playlist.")
def clean_unused_files(playlist):
"""Remove unused media files from the resource folder."""
Logger.info("python_functions: Cleaning unused media files...")
base_dir = os.path.join(os.path.dirname(__file__), 'static', 'resurse')
if not os.path.exists(base_dir):
Logger.debug(f"python_functions: Directory {base_dir} does not exist. No files to clean.")
return
playlist_files = {media.get('file_name', '') for media in playlist}
all_files = set(os.listdir(base_dir))
unused_files = all_files - playlist_files
for file_name in unused_files:
file_path = os.path.join(base_dir, file_name)
try:
os.remove(file_path)
Logger.info(f"python_functions: Deleted unused file: {file_path}")
except OSError as e:
Logger.error(f"python_functions: Failed to delete {file_path}: {e}")
def update_config_playlist_version(version):
"""Update the playlist version in app_config.txt."""
if not os.path.exists(CONFIG_FILE):
Logger.error(f"python_functions: Configuration file {CONFIG_FILE} not found.")
return
try:
with open(CONFIG_FILE, 'r') as file:
config_data = json.load(file)
config_data['playlist_version'] = version # Add or update the playlist version
with open(CONFIG_FILE, 'w') as file:
json.dump(config_data, file, indent=4)
Logger.info(f"python_functions: Updated playlist version in app_config.txt to {version}.")
except (IOError, json.JSONDecodeError) as e:
Logger.error(f"python_functions: Failed to update playlist version in app_config.txt. Error: {e}")

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 794 KiB

File diff suppressed because it is too large Load Diff