Utility modules (pyobs.modules.utils)
Utilities TODO: write doc
FluentLogger
HttpFileCache
- class HttpFileCache(port: int = 37075, cache_size: int = 25, max_file_size: int = 100, token: str | None = None, **kwargs: Any)[source]
Bases:
ModuleA file cache based on a HTTP server.
Initializes file cache.
- Parameters:
port – Port for HTTP server.
cache_size – Size of file cache, i.e. number of files to cache.
max_file_size – Maximum file size in MB.
token – Shared secret required in the “Authorization: Bearer <token>” header for download/upload access. If None (default), no auth is enforced.
- async download_handler(request: Request) Response[source]
Handles GET access to /{filename} and returns image.
- Parameters:
request – Request to respond to.
- Returns:
Response containing image.
- async options_handler(request: Request) Response[source]
Handles OPTIONS access to /{filename} for CORS preflight requests.
- Parameters:
request – Request to respond to.
- Returns:
Empty response with CORS headers.
Kiosk
- class Kiosk(camera: ICamera | str, port: int = 37077, **kwargs: Any)
Bases:
Module,IStartStopA kiosk mode for a pyobs camera that takes images and published them via HTTP.
Initializes file cache.
- Parameters:
camera – Camera to use for kiosk mode.
port – Port for HTTP server.
Matrix
- class Matrix(server: str, user_id: str, password: str, room_id: str, name: str = 'Bot', log_level: str = 'WARNING', **kwargs: Any)
Bases:
ModuleA matrix bot.
Initialize a new bot.
- Parameters:
server – Server to connect to.
user_id – ID of user to connect as.
password – Password for user.
room_id – Room ID to send messages to.
name – Name of bot.
log_level – Log level to use.
Telegram
Trigger
- class Trigger(triggers: list[dict[str, Any]], **kwargs: Any)
Bases:
Module,IAutonomousA module that can call another module’s methods when a specific event occurs.
Initialize a new trigger module.
- Parameters:
triggers – List of dictionaries defining the trigger. Must contain fields for event, module and method, may contain a sender.