move publisher to app

This commit is contained in:
Josh Hawkins 2024-09-23 13:06:11 -05:00
parent 0d0e266eb7
commit 27796c38b1
4 changed files with 13 additions and 2 deletions

View File

@ -23,6 +23,7 @@ from frigate.api.media import MediaBp
from frigate.api.notification import NotificationBp from frigate.api.notification import NotificationBp
from frigate.api.preview import PreviewBp from frigate.api.preview import PreviewBp
from frigate.api.review import ReviewBp from frigate.api.review import ReviewBp
from frigate.comms.event_metadata_updater import EventMetadataPublisher
from frigate.config import FrigateConfig from frigate.config import FrigateConfig
from frigate.const import CONFIG_DIR from frigate.const import CONFIG_DIR
from frigate.embeddings import EmbeddingsContext from frigate.embeddings import EmbeddingsContext
@ -63,6 +64,7 @@ def create_app(
external_processor: ExternalEventProcessor, external_processor: ExternalEventProcessor,
plus_api: PlusApi, plus_api: PlusApi,
stats_emitter: StatsEmitter, stats_emitter: StatsEmitter,
event_metadata_updater: EventMetadataPublisher,
): ):
app = Flask(__name__) app = Flask(__name__)
@ -92,6 +94,7 @@ def create_app(
app.plus_api = plus_api app.plus_api = plus_api
app.camera_error_image = None app.camera_error_image = None
app.stats_emitter = stats_emitter app.stats_emitter = stats_emitter
app.event_metadata_updater = event_metadata_updater
app.jwt_token = get_jwt_secret() if frigate_config.auth.enabled else None app.jwt_token = get_jwt_secret() if frigate_config.auth.enabled else None
# update the request_address with the x-forwarded-for header from nginx # update the request_address with the x-forwarded-for header from nginx
app.wsgi_app = ProxyFix(app.wsgi_app, x_for=1) app.wsgi_app = ProxyFix(app.wsgi_app, x_for=1)

View File

@ -951,7 +951,7 @@ def set_description(id):
@EventBp.route("/events/<id>/description/regenerate", methods=["PUT"]) @EventBp.route("/events/<id>/description/regenerate", methods=["PUT"])
def regenerate_description(id): def regenerate_description(id):
event_metadata_updater = EventMetadataPublisher( current_app.event_metadata_updater = EventMetadataPublisher(
EventMetadataTypeEnum.regenerate_description EventMetadataTypeEnum.regenerate_description
) )
@ -967,7 +967,7 @@ def regenerate_description(id):
# and current_app.frigate_config.genai.enabled # and current_app.frigate_config.genai.enabled
# ): # ):
logger.info(id) logger.info(id)
event_metadata_updater.publish(id) current_app.event_metadata_updater.publish(id)
return make_response( return make_response(
jsonify( jsonify(

View File

@ -23,6 +23,10 @@ from frigate.api.app import create_app
from frigate.api.auth import hash_password from frigate.api.auth import hash_password
from frigate.comms.config_updater import ConfigPublisher from frigate.comms.config_updater import ConfigPublisher
from frigate.comms.dispatcher import Communicator, Dispatcher from frigate.comms.dispatcher import Communicator, Dispatcher
from frigate.comms.event_metadata_updater import (
EventMetadataPublisher,
EventMetadataTypeEnum,
)
from frigate.comms.inter_process import InterProcessCommunicator from frigate.comms.inter_process import InterProcessCommunicator
from frigate.comms.mqtt import MqttClient from frigate.comms.mqtt import MqttClient
from frigate.comms.webpush import WebPushClient from frigate.comms.webpush import WebPushClient
@ -372,6 +376,7 @@ class FrigateApp:
def init_inter_process_communicator(self) -> None: def init_inter_process_communicator(self) -> None:
self.inter_process_communicator = InterProcessCommunicator() self.inter_process_communicator = InterProcessCommunicator()
self.inter_config_updater = ConfigPublisher() self.inter_config_updater = ConfigPublisher()
self.event_metadata_updater = EventMetadataPublisher(EventMetadataTypeEnum.all)
self.inter_zmq_proxy = ZmqProxy() self.inter_zmq_proxy = ZmqProxy()
def init_web_server(self) -> None: def init_web_server(self) -> None:
@ -385,6 +390,7 @@ class FrigateApp:
self.external_event_processor, self.external_event_processor,
self.plus_api, self.plus_api,
self.stats_emitter, self.stats_emitter,
self.event_metadata_updater,
) )
def init_onvif(self) -> None: def init_onvif(self) -> None:
@ -828,6 +834,7 @@ class FrigateApp:
# Stop Communicators # Stop Communicators
self.inter_process_communicator.stop() self.inter_process_communicator.stop()
self.inter_config_updater.stop() self.inter_config_updater.stop()
self.event_metadata_updater.stop()
self.inter_zmq_proxy.stop() self.inter_zmq_proxy.stop()
while len(self.detection_shms) > 0: while len(self.detection_shms) > 0:

View File

@ -10,6 +10,7 @@ logger = logging.getLogger(__name__)
class EventMetadataTypeEnum(str, Enum): class EventMetadataTypeEnum(str, Enum):
all = ""
regenerate_description = "regenerate_description" regenerate_description = "regenerate_description"