8000 feat: add rtstream by ankit-v2-3 · Pull Request #43 · video-db/videodb-python · GitHub
[go: up one dir, main page]

Skip to content

feat: add rtstream #43

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 19 commits into from
May 28, 2025
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
feat: add get scene index
  • Loading branch information
ankit-v2-3 committed Dec 28, 2024
commit 4f3bf83f114b9d60c67dd640f3f7df51db88a350
12 changes: 12 additions & 0 deletions videodb/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,18 @@ def check_usage(self) -> dict:
def get_invoices(self) -> List[dict]:
return self.get(path=f"{ApiPath.billing}/{ApiPath.invoices}")

def create_event(self, event_prompt: str, label: str):
event_data = self.post(
f"{ApiPath.rtstream}/{ApiPath.event}",
data={"event_prompt": event_prompt, "label": label},
)

return event_data.get("event_id")

def list_events(self):
event_data = self.get(f"{ApiPath.rtstream}/{ApiPath.event}")
return event_data.get("events", [])

def download(self, stream_link: str, name: str) -> dict:
return self.post(
path=f"{ApiPath.download}",
Expand Down
18 changes: 0 additions & 18 deletions videodb/collection.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,24 +113,6 @@ def list_rtstreams(self) -> List[RTStream]:
for rtstream in rtstreams_data.get("results")
]

def create_event(
self,
event_prompt="Did someone fall from bed? Output yes or no",
label="fall_alert",
):
event_data = self._connection.post(
f"{ApiPath.rtstream}/{ApiPath.collection}/{self.id}/{ApiPath.event}",
data={"event_prompt": event_prompt, "label": label},
)

return event_data.get("event_id")

def get_events(self):
event_data = self._connection.get(
f"{ApiPath.rtstream}/{ApiPath.collection}/{self.id}/{ApiPath.event}"
)
return event_data.get("events", [])

def search(
self,
query: str,
Expand Down
18 changes: 16 additions & 2 deletions videodb/rtstream.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,18 @@ def get_scene_index(self):
return index_data.get("scene_index_records", [])

def start(self):
return self._connection.patch(
self._connection.patch(
f"{ApiPath.rtstream}/{self.rtstream_id}/{ApiPath.index}/{ApiPath.scene}/{self.rtstream_index_id}/{ApiPath.status}",
data={"status": "running"},
)
self.status = "running"

def stop(self):
return self._connection.patch(
self._connection.patch(
f"{ApiPath.rtstream}/{self.rtstream_id}/{ApiPath.index}/{ApiPath.scene}/{self.rtstream_index_id}/{ApiPath.status}",
data={"status": "stopped"},
)
self.status = "stopped"


class RTStream:
Expand Down Expand Up @@ -116,3 +118,15 @@ def list_scene_indexes(self):
)
for index in index_data.get("scene_indexes", [])
]

def get_rtstream_scene_index(self, index_id: str) -> RTStreamSceneIndex:
index_data = self._connection.get(
f"{ApiPath.rtstream}/{self.id}/{ApiPath.index}/{ApiPath.scene}/{index_id}"
)
return RTStreamSceneIndex(
_connection=self._connection,
rtstream_index_id=index_data.get("rtstream_index_id"),
rtstream_id=self.id,
name=index_data.get("name"),
status=index_data.get("status"),
)
0