mirror of
				https://github.com/blakeblackshear/frigate.git
				synced 2025-10-27 10:52:11 +01:00 
			
		
		
		
	Allow empty description for tracked objects (#14271)
* Allow tracked object description to be saved as an empty string * ensure event_ids is passed as list
This commit is contained in:
		
							parent
							
								
									54eb03d2a1
								
							
						
					
					
						commit
						8d753f821d
					
				| @ -11,9 +11,7 @@ class EventsSubLabelBody(BaseModel): | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class EventsDescriptionBody(BaseModel): | class EventsDescriptionBody(BaseModel): | ||||||
|     description: Union[str, None] = Field( |     description: Union[str, None] = Field(title="The description of the event") | ||||||
|         title="The description of the event", min_length=1 |  | ||||||
|     ) |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class EventsCreateBody(BaseModel): | class EventsCreateBody(BaseModel): | ||||||
|  | |||||||
| @ -927,27 +927,19 @@ def set_description( | |||||||
| 
 | 
 | ||||||
|     new_description = body.description |     new_description = body.description | ||||||
| 
 | 
 | ||||||
|     if new_description is None or len(new_description) == 0: |  | ||||||
|         return JSONResponse( |  | ||||||
|             content=( |  | ||||||
|                 { |  | ||||||
|                     "success": False, |  | ||||||
|                     "message": "description cannot be empty", |  | ||||||
|                 } |  | ||||||
|             ), |  | ||||||
|             status_code=400, |  | ||||||
|         ) |  | ||||||
| 
 |  | ||||||
|     event.data["description"] = new_description |     event.data["description"] = new_description | ||||||
|     event.save() |     event.save() | ||||||
| 
 | 
 | ||||||
|     # If semantic search is enabled, update the index |     # If semantic search is enabled, update the index | ||||||
|     if request.app.frigate_config.semantic_search.enabled: |     if request.app.frigate_config.semantic_search.enabled: | ||||||
|         context: EmbeddingsContext = request.app.embeddings |         context: EmbeddingsContext = request.app.embeddings | ||||||
|  |         if len(new_description) > 0: | ||||||
|             context.update_description( |             context.update_description( | ||||||
|                 event_id, |                 event_id, | ||||||
|                 new_description, |                 new_description, | ||||||
|             ) |             ) | ||||||
|  |         else: | ||||||
|  |             context.db.delete_embeddings_description(event_ids=[event_id]) | ||||||
| 
 | 
 | ||||||
|     response_message = ( |     response_message = ( | ||||||
|         f"Event {event_id} description is now blank" |         f"Event {event_id} description is now blank" | ||||||
| @ -1033,8 +1025,8 @@ def delete_event(request: Request, event_id: str): | |||||||
|     # If semantic search is enabled, update the index |     # If semantic search is enabled, update the index | ||||||
|     if request.app.frigate_config.semantic_search.enabled: |     if request.app.frigate_config.semantic_search.enabled: | ||||||
|         context: EmbeddingsContext = request.app.embeddings |         context: EmbeddingsContext = request.app.embeddings | ||||||
|         context.db.delete_embeddings_thumbnail(id=[event_id]) |         context.db.delete_embeddings_thumbnail(event_ids=[event_id]) | ||||||
|         context.db.delete_embeddings_description(id=[event_id]) |         context.db.delete_embeddings_description(event_ids=[event_id]) | ||||||
|     return JSONResponse( |     return JSONResponse( | ||||||
|         content=({"success": True, "message": "Event " + event_id + " deleted"}), |         content=({"success": True, "message": "Event " + event_id + " deleted"}), | ||||||
|         status_code=200, |         status_code=200, | ||||||
|  | |||||||
| @ -229,8 +229,8 @@ class EventCleanup(threading.Thread): | |||||||
|                     Event.delete().where(Event.id << chunk).execute() |                     Event.delete().where(Event.id << chunk).execute() | ||||||
| 
 | 
 | ||||||
|                     if self.config.semantic_search.enabled: |                     if self.config.semantic_search.enabled: | ||||||
|                         self.db.delete_embeddings_description(chunk) |                         self.db.delete_embeddings_description(event_ids=[chunk]) | ||||||
|                         self.db.delete_embeddings_thumbnail(chunk) |                         self.db.delete_embeddings_thumbnail(event_ids=[chunk]) | ||||||
|                         logger.debug(f"Deleted {len(events_to_delete)} embeddings") |                         logger.debug(f"Deleted {len(events_to_delete)} embeddings") | ||||||
| 
 | 
 | ||||||
|         logger.info("Exiting event cleanup...") |         logger.info("Exiting event cleanup...") | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user