mirror of
				https://github.com/blakeblackshear/frigate.git
				synced 2025-10-27 10:52:11 +01:00 
			
		
		
		
	* backend * frontend * add notification config at camera level * camera level notifications in dispatcher * initial onconnect * frontend * backend for suspended notifications * frontend * use base communicator * initialize all cameras in suspended array and use 0 for unsuspended * remove switch and use select for suspending in frontend * use timestamp instead of datetime * frontend tweaks * mqtt docs * fix button width * use grid for layout * use thread and queue for processing notifications with 10s timeout * clean up * move async code to main class * tweaks * docs * remove warning message
		
			
				
	
	
		
			22 lines
		
	
	
		
			553 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			553 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| from abc import ABC, abstractmethod
 | |
| from typing import Any, Callable
 | |
| 
 | |
| 
 | |
| class Communicator(ABC):
 | |
|     """pub/sub model via specific protocol."""
 | |
| 
 | |
|     @abstractmethod
 | |
|     def publish(self, topic: str, payload: Any, retain: bool = False) -> None:
 | |
|         """Send data via specific protocol."""
 | |
|         pass
 | |
| 
 | |
|     @abstractmethod
 | |
|     def subscribe(self, receiver: Callable) -> None:
 | |
|         """Pass receiver so communicators can pass commands."""
 | |
|         pass
 | |
| 
 | |
|     @abstractmethod
 | |
|     def stop(self) -> None:
 | |
|         """Stop the communicator."""
 | |
|         pass
 |