From: Scott Gasch Date: Mon, 1 Feb 2021 06:54:14 +0000 (-0800) Subject: Move the kiosk server to another machine; changes needed to make it work there. X-Git-Url: https://wannabe.guru.org/gitweb/?a=commitdiff_plain;h=144f769da44d2a8411e320e2e66ad1dbc48ed091;p=kiosk.git Move the kiosk server to another machine; changes needed to make it work there. --- diff --git a/constants.py b/constants.py index 1e79b07..3c391d4 100644 --- a/constants.py +++ b/constants.py @@ -1,8 +1,10 @@ #!/usr/bin/env python3 +hostname = 'kiosk.house' +pages_dir = "/var/www/kiosk/pages" + refresh_period_sec = 22.0 render_period_sec = 30.0 -pages_dir = "/usr/local/export/www/kiosk/pages" seconds_per_minute = 60 seconds_per_hour = seconds_per_minute * 60 diff --git a/health_renderer.py b/health_renderer.py index 038e315..302e793 100644 --- a/health_renderer.py +++ b/health_renderer.py @@ -2,7 +2,7 @@ import os import time -from typing import Dict, List +from typing import Dict import constants import file_writer @@ -61,27 +61,31 @@ class periodic_health_renderer(renderer.debuggable_abstaining_renderer): now = time.time() n = 0 - for x in sorted(limits): - ts = os.stat(x).st_mtime + for filepath, limit_sec in sorted(limits.items()): + ts = os.stat(filepath).st_mtime age = now - ts - self.debug_print("%s -- age is %ds, limit is %ds" % (x, age, limits[x])) - if age < limits[x]: + self.debug_print(f"{filepath} -- age: {age}, limit {limit_sec}") + if age < limits[filepath]: + # OK f.write( - '\n' + '\n' ) + txt_color="#ffffff" else: + # BAD! f.write( - '\n' + '\n' ) - f.write("
\n") + txt_color="#000000" + f.write(f"
\n") - name = x.replace(timestamps, "") + name = filepath.replace(timestamps, "") name = name.replace("last_", "") name = name.replace("_", " ") duration = utils.describe_duration_briefly(int(age)) self.debug_print(f"{name} is {duration} old.") - f.write(f"{name}
\n{ts} old.\n") + f.write(f"{name}
\n{duration} old.\n") f.write("
\n\n\n") n += 1 if n % 3 == 0: @@ -151,5 +155,5 @@ class periodic_health_renderer(renderer.debuggable_abstaining_renderer): ) -# test = periodic_health_renderer({"Test", 123}) -# test.periodic_render("Test") +#test = periodic_health_renderer({"Test", 123}) +#test.periodic_render("Test") diff --git a/kiosk.py b/kiosk.py index ffcd786..7ffce23 100755 --- a/kiosk.py +++ b/kiosk.py @@ -236,7 +236,7 @@ def emit_wrapped(f, filename) -> None: function() { var xhr = new XMLHttpRequest(); xhr.open('GET', - 'http://wannabe.house/kiosk/pages/reload_immediately.html'); + 'http://%s/kiosk/pages/reload_immediately.html'); xhr.onload = function() { if (xhr.status === 200) { @@ -293,6 +293,7 @@ def emit_wrapped(f, filename) -> None: % ( bgcolor, constants.refresh_period_sec * 1000, + constants.hostname, bgcolor, filename, filename, @@ -316,7 +317,7 @@ def thread_invoke_renderers() -> None: delta = time.time() - now if delta > 1.0: print( - f"renderer[{utils.timestamp()}]: Warning: {r.get_name()}'s rendering took {delta:%5.2f}s." + f"renderer[{utils.timestamp()}]: Warning: {r.get_name()}'s rendering took {delta:5.2f}s." ) print( f"renderer[{utils.timestamp()}]: thread having a little break for {constants.render_period_sec}s..." diff --git a/local_photos_mirror_renderer.py b/local_photos_mirror_renderer.py index 390d6ea..b27a791 100644 --- a/local_photos_mirror_renderer.py +++ b/local_photos_mirror_renderer.py @@ -3,8 +3,9 @@ import os import random import re -from typing import List, Dict, Set +from typing import Dict, Set +import constants import file_writer import renderer @@ -12,7 +13,7 @@ import renderer class local_photos_mirror_renderer(renderer.debuggable_abstaining_renderer): """A renderer that uses a local mirror of Google photos""" - album_root_directory = "/usr/local/export/www/gphotos/albums" + ALBUM_ROOT_DIR = "/var/www/kiosk/pages/images/gphotos/albums" album_whitelist = frozenset( [ @@ -86,7 +87,7 @@ class local_photos_mirror_renderer(renderer.debuggable_abstaining_renderer): """Walk the filesystem looking for photos in whitelisted albums and keep their paths in memory. """ - for root, subdirs, files in os.walk(self.album_root_directory): + for root, subdirs, files in os.walk(self.ALBUM_ROOT_DIR): last_dir = root.rsplit("/", 1)[1] if self.album_is_in_whitelist(last_dir): for filename in files: @@ -94,7 +95,7 @@ class local_photos_mirror_renderer(renderer.debuggable_abstaining_renderer): if extension in self.extension_whitelist: photo_path = os.path.join(root, filename) photo_url = photo_path.replace( - "/usr/local/export/www/", "http://10.0.0.18/", 1 + "/var/www/", f"http://{constants.hostname}/", 1 ) self.candidate_photos.add(photo_url) return True diff --git a/myq_renderer.py b/myq_renderer.py index df696f1..0ee104b 100644 --- a/myq_renderer.py +++ b/myq_renderer.py @@ -70,13 +70,13 @@ class garage_door_renderer(renderer.debuggable_abstaining_renderer): def get_state_icon(self, state: str) -> str: if state == "open": - return "/icons/garage_open.png" + return "/kiosk/pages/images/garage_open.png" elif state == "closed": - return "/icons/garage_closed.png" + return "/kiosk/pages/images/garage_closed.png" elif state == "opening": - return "/icons/garage_opening.png" + return "/kiosk/pages/images/garage_opening.png" elif state == "closing": - return "/icons/garage_closing.png" + return "/kiosk/pages/images/garage_closing.png" else: return str(state) + ", an unknown state for the door." diff --git a/weather_renderer.py b/weather_renderer.py index 452b069..46d891c 100644 --- a/weather_renderer.py +++ b/weather_renderer.py @@ -377,7 +377,7 @@ class weather_renderer(renderer.debuggable_abstaining_renderer): # Icon f.write( - '
\n' + '
\n' % self.pick_icon(conditions[date], rain[date], snow[date]) )