X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=local_photos_mirror_renderer.py;h=84958de0a774cd3f6fd276d5134bcc87d8a84f34;hb=7eae23537dcc61565a24d5c957d4325b7337b63a;hp=2e5499dcc4a472559633ac88fc75aa64fdfbc0f2;hpb=5e241dc47e497c547463cecc07946ea6882835a7;p=kiosk.git diff --git a/local_photos_mirror_renderer.py b/local_photos_mirror_renderer.py index 2e5499d..84958de 100644 --- a/local_photos_mirror_renderer.py +++ b/local_photos_mirror_renderer.py @@ -1,14 +1,18 @@ +#!/usr/bin/env python3 + import os -import file_writer -import renderer import random import re +from typing import Dict, Set + +import file_writer +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_directory = "/var/www/html/kiosk/images/gphotos/albums" album_whitelist = frozenset( [ @@ -32,9 +36,11 @@ class local_photos_mirror_renderer(renderer.debuggable_abstaining_renderer): "Newer Alex Photos", "Ohme Gardens", "Olympic Sculpture Park", + "Portland, ME 2021", "Prague and Munich 2019", "Random", "Scott and Lynn", + "Sculpture Place", "SFO 2014", "Skiing with Alex", "Sonoma", @@ -43,6 +49,7 @@ class local_photos_mirror_renderer(renderer.debuggable_abstaining_renderer): "Trip to East Coast '16", "Tuscany 2008", "Yosemite 2010", + "WA Roadtrip, 2021", "Zoo", ] ) @@ -57,65 +64,64 @@ class local_photos_mirror_renderer(renderer.debuggable_abstaining_renderer): ] ) - def __init__(self, name_to_timeout_dict): + def __init__(self, name_to_timeout_dict: Dict[str, int]) -> None: super(local_photos_mirror_renderer, self).__init__(name_to_timeout_dict, False) - self.candidate_photos = set() + self.candidate_photos: Set[str] = set() - def debug_prefix(self): + def debug_prefix(self) -> str: return "local_photos_mirror" - def periodic_render(self, key): + def periodic_render(self, key: str) -> bool: if key == "Index Photos": return self.index_photos() elif key == "Choose Photo": return self.choose_photo() else: - raise error("Unexpected operation") + raise Exception("Unexpected operation") - def album_is_in_whitelist(self, name): + def album_is_in_whitelist(self, name: str) -> bool: for wlalbum in self.album_whitelist: - if re.search("\d+ %s" % wlalbum, name) != None: + if re.search("\d+ %s" % wlalbum, name) is not None: return True return False - # Walk the filesystem looking for photos in whitelisted albums and - # keep their paths in memory. - def index_photos(self): + def index_photos(self) -> bool: + """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): last_dir = root.rsplit("/", 1)[1] if self.album_is_in_whitelist(last_dir): - for x in files: - extension = x.rsplit(".", 1)[1] + for filename in files: + extension = filename.rsplit(".", 1)[1] if extension in self.extension_whitelist: - photo_path = os.path.join(root, x) + photo_path = os.path.join(root, filename) photo_url = photo_path.replace( - "/usr/local/export/www/", "http://10.0.0.18/", 1 + "/var/www/html", "http://kiosk.house/", 1 ) self.candidate_photos.add(photo_url) return True - # Pick one of the cached URLs and build a page. def choose_photo(self): + """Pick one of the cached URLs and build a page.""" if len(self.candidate_photos) == 0: print("No photos!") return False path = random.sample(self.candidate_photos, 1)[0] - f = file_writer.file_writer("photo_23_3600.html") - f.write( - """ + with file_writer.file_writer("photo_23_3600.html") as f: + f.write( + """
""" - ) - f.write( - '' - % path - ) - f.write("
") - f.close() + ) + f.write( + f'' + ) + f.write("") return True