* Ensure viewport is always full screen
* Protect against hour with no cards and ensure data is consistent
* Reduce grouped up image refreshes
* Include current hour and fix scrubbing bugginess
* Scroll initially selected timeline in to view
* Expand timelne class type
* Use poster image for preview on video player instead of using separate image view
* Fix available streaming modes
* Incrase timing for grouping timline items
* Fix audio activity listener
* Fix player not switching views correctly
* Use player time to convert to timeline time
* Update sub labels for previous timeline items
* Show mini timeline bar for non selected items
* Rewrite desktop timeline to use separate dynamic video player component
* Extend improvements to mobile as well
* Improve time formatting
* Fix scroll
* Fix no preview case
* Mobile fixes
* Audio toggle fixes
* More fixes for mobile
* Improve scaling of graph motion activity
* Add keyboard shortcut hook and support shortcuts for playback page
* Fix sizing of dialog
* Improve height scaling of dialog
* simplify and fix layout system for timeline
* Fix timeilne items not working
* Implement basic Frigate+ submitting from timeline
* Add filter popover
* Add api filter hook and use UI with filtering
* Get history filtering working for cameras and labels
* Allow filtering on detail level
* Save timeline entries for api events
* reset
* fix width
* Add support for review grid
* Cleanup reloading on focus
* Adjust timeline api to include metadata and before
* Be more efficient about getting info
* Adjust to new data format
* Cleanup types
* Cleanup text
* Transition to history
* Cleanup
* remove old web implementations
* Cleanup
* Add attribute item to timeline
* Add face icon
* Add support for other icons
* Cleanup
* Ensure attributes are only updated once
* don't show _ in attributes
* Add isort and ruff linter
Both linters are pretty common among modern python code bases.
The isort tool provides stable sorting and grouping, as well as pruning
of unused imports.
Ruff is a modern linter, that is very fast due to being written in rust.
It can detect many common issues in a python codebase.
Removes the pylint dev requirement, since ruff replaces it.
* treewide: fix issues detected by ruff
* treewide: fix bare except clauses
* .devcontainer: Set up isort
* treewide: optimize imports
* treewide: apply black
* treewide: make regex patterns raw strings
This is necessary for escape sequences to be properly recognized.
* Move to events package
* Improve handling of external events
* Handle external events in the event queue
* Pass in event processor
* Check event json
* Fix json parsing and change defaults
* Fix snapshot saving
* Hide % score when not available
* Correct docs and add json example
* Save event png db
* Adjust image
* Formatting
* Add catch for failure ending event
* Add init to modules
* Fix naming
* Formatting
* Fix http creation
* fix test
* Change to PUT and include response in docs
* Add ability to set bounding box locations in snapshot
* Support multiple box annotations
* Cleanup docs example response
Co-authored-by: Blake Blackshear <blake@frigate.video>
* Cleanup docs wording
Co-authored-by: Blake Blackshear <blake@frigate.video>
* Store full frame for thumbnail
* Formatting
* Set thumbnail height to 175
* Formatting
---------
Co-authored-by: Blake Blackshear <blake@frigate.video>
* Organize event table to be more generalized
* Add appropriate fields to data
* Move tracked object logic to own function
* Add source type to event queue
* rename enum
* Fix types that are used in webUI
* remove redundant
* Formatting
* fix typing
* Rename enum
* Create timeline table
* Fix indexes
* Add other fields
* Adjust schema to be less descriptive
* Handle timeline queue from tracked object data
* Setup timeline queue in events
* Add source id for index
* Add other fields
* Fixes
* Formatting
* Store better data
* Add api with filtering
* Setup basic UI for timeline in events
* Cleanups
* Add recordings snapshot url
* Start working on timeline ui
* Add tooltip with info
* Improve icons
* Fix start time with clip
* Move player logic back to clips
* Make box in timeline relative coordinates
* Make region relative
* Get box overlay working
* Remove overlay when playing again
* Add disclaimer when selecting overlay points
* Add docs for new apis
* Fix mobile
* Fix docs
* Change color of bottom center box
* Fix vscode formatting