Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
A simple async API client for motionEye.
The following arguments may be passed to the MotionEyeClient
constructor:
Argument | Type | Default | Description |
---|---|---|---|
url | str | URL of the motionEye server | |
admin_username | str | admin | The motionEye admin username |
admin_password | str | "" | The motionEye admin password |
surveillance_username | str | user | The motionEye surveillance username |
surveillance_password | str | "" | The motionEye surveillance password |
session | aiohttp.ClientSession | None | Optional aiohttp session to use |
This client needs both admin
and surveillance
passwords in order to interact with
the API (which generally require the admin
user), as well as prepare the URLs for
data streaming (which require the surveillance
user).
All async calls start with async_
, and return the JSON response from the server (if any).
Login to the motionEye server. Not actually necessary, but useful for verifying credentials.
Close the client session. Always returns True.
Get the motionEye server manifest (e.g. server version number).
Get the main motionEye server config.
Get the listing of all cameras.
Get the configuration of a single camera. Takes an integer camera_id
argument.
Set the configuration of a single camera. Takes an integer camera_id
argument, and a
dictionary of the same format as returned by async_get_camera
.
Perform a motionEye action on a camera. Takes an integer camera_id
argument and an
action string.
Common actions include snapshot
, record_start
and record_stop
. motionEye also
supports other user configurable actions which may be called in this manner. See
Action Buttons for more details.
Get a list of recorded movies for a given camera_id
. Accepts a prefix
argument that
gives a path prefix to list (does not recurse).
Get a list of saved images for a given camera_id
. Accepts a prefix
argument that
gives a path prefix to list (does not recurse).
Convenience method to take a camera dictionary (returned by async_get_camera
or
async_get_cameras
) and return True if the camera has video stream enabled.
Convenience method to take a camera dictionary (returned by async_get_camera
or
async_get_cameras
) and return the string URL of the streamed content (which can be
opened separately). This extracts the hostname out of the motionEye URL and attaches the
streaming port to it -- depending on the configuration this may not necessarily lead to
an accessible URL (e.g. in the use of motionEye behind a reverse proxy).
Will raise MotionEyeClientURLParseError if the hostname cannot be extracted from the motionEye server URL.
Convenience method to take a camera dictionary (returned by async_get_camera
or
async_get_cameras
) and return the string URL of a single still frame.
Convenience method to take a camera id and the path to a saved movie, and return a link
to playback the movie. Takes a preview
argument that if True
returns a URL to a thumbnail.
Convenience method to take a camera id and the path to a saved image, and return a link
to that image. Takes a preview
argument that if True
returns a URL to a thumbnail.
Determine if a given file_type int
(from a web hook callback) represents an image or a movie respectively.
The client may be used in as a context manager, which will automatically close the session.
async with client.MotionEyeClient("http://localhost:8765", ) as mec:
if not mec:
return
...
A generic base class -- all motionEye client exceptions inherit from this.
Invalid authentication detected during a request.
Connected failed to given URL.
Unable to parse the required URL.
Unable to parse a path.
A request failed in some other undefined way.
#!/usr/bin/env python
"""Client test for motionEye."""
import asyncio
from motioneye_client.client import MotionEyeClient
async def query_motioneye_server() -> None:
"""Test the motionEye client."""
async with MotionEyeClient("http://localhost:8765") as client:
if not client:
return
manifest = await client.async_get_manifest()
print(f"Manifest: {manifest}")
camera_list = await client.async_get_cameras()
print(f"Cameras: {camera_list}")
asyncio.get_event_loop().run_until_complete(query_motioneye_server())
This library is built using Poetry.
Building:
$ poetry build
Testing:
$ poetry run pytest
Updating dependencies:
$ poetry update
Exporting to requirements.txt
and requirements_dev.txt
:
$ poetry export --without-hashes -o requirements.txt
$ poetry export --without-hashes --dev -o requirements_dev.txt
FAQs
motionEye client library Python Package
We found that motioneye-client demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.