Fix issue when --camera isnt specified

Click defaults options with multiple=true to an empty list not None if they are not provided
This commit is contained in:
Sebastian Goscik
2025-01-18 16:43:02 +00:00
parent 6e5d90a9f5
commit 3181080bca
2 changed files with 11 additions and 11 deletions

View File

@@ -3,7 +3,7 @@
import asyncio
import logging
from time import sleep
from typing import List, Optional
from typing import List
from uiprotect.api import ProtectApiClient
from uiprotect.websocket import WebsocketState
@@ -23,7 +23,7 @@ class EventListener:
protect: ProtectApiClient,
detection_types: List[str],
ignore_cameras: List[str],
cameras: Optional[List[str]] = None,
cameras: List[str],
):
"""Init.
@@ -32,7 +32,7 @@ class EventListener:
protect (ProtectApiClient): UniFI Protect API client to use
detection_types (List[str]): Desired Event detection types to look for
ignore_cameras (List[str]): Cameras IDs to ignore events from
cameras (Optional[List[str]]): Cameras IDs to ONLY include events from
cameras (List[str]): Cameras IDs to ONLY include events from
"""
self._event_queue: asyncio.Queue = event_queue
self._protect: ProtectApiClient = protect
@@ -40,7 +40,7 @@ class EventListener:
self._unsub_websocketstate = None
self.detection_types: List[str] = detection_types
self.ignore_cameras: List[str] = ignore_cameras
self.cameras: Optional[List[str]] = cameras
self.cameras: List[str] = cameras
async def start(self):
"""Main Loop."""
@@ -63,7 +63,7 @@ class EventListener:
return
if msg.new_obj.camera_id in self.ignore_cameras:
return
if self.cameras is not None and msg.new_obj.camera_id not in self.cameras:
if self.cameras and msg.new_obj.camera_id not in self.cameras:
return
if "end" not in msg.changed_data:
return

View File

@@ -3,7 +3,7 @@
import asyncio
import logging
from datetime import datetime
from typing import AsyncIterator, List, Optional
from typing import AsyncIterator, List
import aiosqlite
from dateutil.relativedelta import relativedelta
@@ -28,8 +28,8 @@ class MissingEventChecker:
uploader: VideoUploader,
retention: relativedelta,
detection_types: List[str],
ignore_cameras: List[str] = [],
cameras: Optional[List[str]] = None,
ignore_cameras: List[str],
cameras: List[str],
interval: int = 60 * 5,
) -> None:
"""Init.
@@ -43,7 +43,7 @@ class MissingEventChecker:
retention (relativedelta): Retention period to limit search window
detection_types (List[str]): Detection types wanted to limit search
ignore_cameras (List[str]): Ignored camera IDs to limit search
cameras (Optional[List[str]]): Included (ONLY) camera IDs to limit search
cameras (List[str]): Included (ONLY) camera IDs to limit search
interval (int): How frequently, in seconds, to check for missing events,
"""
self._protect: ProtectApiClient = protect
@@ -54,7 +54,7 @@ class MissingEventChecker:
self.retention: relativedelta = retention
self.detection_types: List[str] = detection_types
self.ignore_cameras: List[str] = ignore_cameras
self.cameras: Optional[List[str]] = cameras
self.cameras: List[str] = cameras
self.interval: int = interval
async def _get_missing_events(self) -> AsyncIterator[Event]:
@@ -116,7 +116,7 @@ class MissingEventChecker:
return False # This event is still on-going
if event.camera_id in self.ignore_cameras:
return False
if self.cameras is not None and event.camera_id not in self.cameras:
if self.cameras and event.camera_id not in self.cameras:
return False
if event.type is EventType.MOTION and "motion" not in self.detection_types:
return False