From bb6acf4074017cb25f8ea80e05140757d8765c5b Mon Sep 17 00:00:00 2001 From: Jeff Culverhouse Date: Sun, 16 Nov 2025 05:35:20 -0500 Subject: [PATCH] chore: sync to lowercase logged messages --- src/amcrest2mqtt/app.py | 10 +++++----- src/amcrest2mqtt/base.py | 6 +++--- src/amcrest2mqtt/mixins/amcrest_api.py | 14 +++++++------- src/amcrest2mqtt/mixins/helpers.py | 6 +++--- src/amcrest2mqtt/mixins/loops.py | 8 ++++---- src/amcrest2mqtt/mixins/mqtt.py | 2 +- uv.lock | 2 +- 7 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/amcrest2mqtt/app.py b/src/amcrest2mqtt/app.py index 1fbb806..0a16682 100644 --- a/src/amcrest2mqtt/app.py +++ b/src/amcrest2mqtt/app.py @@ -34,19 +34,19 @@ async def async_main() -> int: async with Amcrest2Mqtt(args=args) as amcrest2mqtt: await amcrest2mqtt.main_loop() except ConfigError as err: - logger.error(f"Fatal config error was found: {err}") + logger.error(f"fatal config error was found: {err}") return 1 except MqttError as err: - logger.error(f"MQTT service problems: {err}") + logger.error(f"mqtt service problems: {err}") return 1 except KeyboardInterrupt: - logger.warning("Shutdown requested (Ctrl+C). Exiting gracefully...") + logger.warning("shutdown requested (Ctrl+C). exiting gracefully...") return 1 except asyncio.CancelledError: - logger.warning("Main loop cancelled.") + logger.warning("main loop cancelled.") return 1 except Exception as err: - logger.error(f"Unhandled exception: {err}", exc_info=True) + logger.error(f"unhandled exception: {err}", exc_info=True) return 1 finally: logger.info("amcrest2mqtt stopped.") diff --git a/src/amcrest2mqtt/base.py b/src/amcrest2mqtt/base.py index 4d32afa..1bf5003 100644 --- a/src/amcrest2mqtt/base.py +++ b/src/amcrest2mqtt/base.py @@ -94,7 +94,7 @@ class Base: await cast(Any, self).publish_service_availability("offline") cast(Any, self).mqttc.loop_stop() except Exception as err: - self.logger.debug(f"Mqtt loop_stop failed: {err}") + self.logger.debug(f"mqtt loop_stop failed: {err}") if cast(Any, self).mqttc.is_connected(): try: @@ -113,7 +113,7 @@ class Base: } with open(data_file, "w", encoding="utf-8") as file: json.dump(state, file, indent=4) - self.logger.info(f"Saved state to {data_file}") + self.logger.info(f"saved state to {data_file}") def restore_state(self: Amcrest2Mqtt) -> None: data_file = Path(self.config["config_path"]) / "amcrest2mqtt.dat" @@ -122,4 +122,4 @@ class Base: state = json.loads(file.read()) self.api_calls = state["api_calls"] self.last_call_date = datetime.strptime(state["last_call_date"], "%Y-%m-%d %H:%M:%S.%f") - self.logger.info(f"Restored state from {data_file}: {self.api_calls} / {str(self.last_call_date)}") + self.logger.info(f"restored state from {data_file}: {self.api_calls} / {str(self.last_call_date)}") diff --git a/src/amcrest2mqtt/mixins/amcrest_api.py b/src/amcrest2mqtt/mixins/amcrest_api.py index 36e3021..9393be5 100644 --- a/src/amcrest2mqtt/mixins/amcrest_api.py +++ b/src/amcrest2mqtt/mixins/amcrest_api.py @@ -128,7 +128,7 @@ class AmcrestAPIMixin: # Find first interface key dynamically candidates = [k.split(".")[2] for k in network_config if k.startswith("table.Network.") and ".IPAddress" in k] interface = candidates[0] if candidates else "eth0" - self.logger.debug(f"No DefaultInterface key; using {interface}") + self.logger.debug(f"no DefaultInterface key; using {interface}") ip_address = network_config.get(f"table.Network.{interface}.IPAddress", "0.0.0.0") mac_address = network_config.get(f"table.Network.{interface}.PhysicalAddress", "00:00:00:00:00:00").upper() @@ -166,7 +166,7 @@ class AmcrestAPIMixin: self.logger.warning(f"camera not found for {self.get_device_name(device_id)}") return None response = device["camera"].reboot().strip() - self.logger.info(f"Sent REBOOT signal to {self.get_device_name(device_id)}, {response}") + self.logger.info(f"sent REBOOT signal to {self.get_device_name(device_id)}, {response}") if response == "OK": self.upsert_state(device_id, internal={"reboot": datetime.now()}) @@ -253,7 +253,7 @@ class AmcrestAPIMixin: try: response = str(await device["camera"].async_set_privacy(switch)).strip() self.increase_api_calls() - self.logger.debug(f"Set privacy_mode on {self.get_device_name(device_id)} to {switch}, got back: {response}") + self.logger.debug(f"set privacy_mode on {self.get_device_name(device_id)} to {switch}, got back: {response}") if response == "OK": self.upsert_state(device_id, switch={"privacy": "ON" if switch else "OFF"}) await self.publish_device_state(device_id) @@ -299,14 +299,14 @@ class AmcrestAPIMixin: try: response = bool(await device["camera"].async_set_motion_detection(switch)) self.increase_api_calls() - self.logger.debug(f"Set motion_detection on {self.get_device_name(device_id)} to {switch}, got back: {response}") + self.logger.debug(f"set motion_detection on {self.get_device_name(device_id)} to {switch}, got back: {response}") if response: self.upsert_state(device_id, switch={"motion_detection": "ON" if switch else "OFF"}) await self.publish_device_state(device_id) except CommError: - self.logger.error(f"Failed to communicate with device ({self.get_device_name(device_id)}) to set motion detections") + self.logger.error(f"failed to communicate with device ({self.get_device_name(device_id)}) to set motion detections") except LoginError: - self.logger.error(f"Failed to authenticate with device ({self.get_device_name(device_id)}) to set motion detections") + self.logger.error(f"failed to authenticate with device ({self.get_device_name(device_id)}) to set motion detections") return None @@ -343,7 +343,7 @@ class AmcrestAPIMixin: image_bytes = await asyncio.wait_for(camera.async_snapshot(), timeout=SNAPSHOT_TIMEOUT_S) self.increase_api_calls() if not image_bytes: - self.logger.warning(f"Snapshot: empty image from {self.get_device_name(device_id)}") + self.logger.warning(f"snapshot: empty image from {self.get_device_name(device_id)}") return None encoded_b = base64.b64encode(image_bytes) diff --git a/src/amcrest2mqtt/mixins/helpers.py b/src/amcrest2mqtt/mixins/helpers.py index 0ec8e9c..a0ddd41 100644 --- a/src/amcrest2mqtt/mixins/helpers.py +++ b/src/amcrest2mqtt/mixins/helpers.py @@ -260,13 +260,13 @@ class HelpersMixin: # last chance to skip the recording if self.b_to_mb(len(recording)) > self.config["media"]["max_size"]: - self.logger.info(f"Skipping saving recording to {path} because {self.b_to_mb(len(recording))} > {self.config["media"]["max_size"]} MB") + self.logger.info(f"skipping saving recording to {path} because {self.b_to_mb(len(recording))} > {self.config["media"]["max_size"]} MB") return None try: file_path.write_bytes(recording.encode("latin-1")) except IOError as err: - self.logger.error(f"Failed to save recording to {file_path}: {err}") + self.logger.error(f"failed to save recording to {file_path}: {err}") return None self.upsert_state( @@ -282,7 +282,7 @@ class HelpersMixin: latest_link.unlink() latest_link.symlink_to(local_file) except IOError as err: - self.logger.error(f"Failed to save symlink {latest_link} -> {local_file}: {err}") + self.logger.error(f"failed to save symlink {latest_link} -> {local_file}: {err}") pass if "media_source" in self.config["media"]: diff --git a/src/amcrest2mqtt/mixins/loops.py b/src/amcrest2mqtt/mixins/loops.py index f4ce509..fabb39f 100644 --- a/src/amcrest2mqtt/mixins/loops.py +++ b/src/amcrest2mqtt/mixins/loops.py @@ -60,7 +60,7 @@ class LoopsMixin: try: signal.signal(sig, self.handle_signal) except Exception: - self.logger.debug(f"Cannot install handler for {sig}") + self.logger.debug(f"cannot install handler for {sig}") await self.setup_device_list() self.running = True @@ -77,9 +77,9 @@ class LoopsMixin: try: await asyncio.gather(*tasks) except asyncio.CancelledError: - self.logger.warning("Main loop cancelled — shutting down...") + self.logger.warning("main loop cancelled — shutting down...") except Exception as err: - self.logger.exception(f"Unhandled exception in main loop: {err}") + self.logger.exception(f"unhandled exception in main loop: {err}") self.running = False finally: - self.logger.info("All loops terminated — cleanup complete.") + self.logger.info("all loops terminated — cleanup complete.") diff --git a/src/amcrest2mqtt/mixins/mqtt.py b/src/amcrest2mqtt/mixins/mqtt.py index 66053ec..347dcb9 100644 --- a/src/amcrest2mqtt/mixins/mqtt.py +++ b/src/amcrest2mqtt/mixins/mqtt.py @@ -90,5 +90,5 @@ class MqttMixin(BaseMqttMixin): try: return segment.split("-", 1) except ValueError as err: - self.logger.warning(f"Ignoring malformed topic {topic}: {err}") + self.logger.warning(f"ignoring malformed topic {topic}: {err}") return [] diff --git a/uv.lock b/uv.lock index 5fed360..3152196 100644 --- a/uv.lock +++ b/uv.lock @@ -410,7 +410,7 @@ sdist = { url = "https://files.pythonhosted.org/packages/93/4b/979db9e44be09f71e [[package]] name = "mqtt-helper-graystorm" version = "0.1.0" -source = { git = "https://github.com/weirdtangent/mqtt-helper.git?branch=main#e81f183a38bdd965099cacfdc1286781f5d7d8f6" } +source = { git = "https://github.com/weirdtangent/mqtt-helper.git?branch=main#04fb1daa7c2e98b7dfbc60948913aba153693801" } dependencies = [ { name = "logging" }, { name = "paho-mqtt" },