31 lines
958 B
Go
31 lines
958 B
Go
package sense
|
|
|
|
import (
|
|
"os"
|
|
"yovision.local/sense/app/sense/adapters/mediamtx"
|
|
"yovision.local/sense/app/sense/media"
|
|
"yovision.local/sense/internal/platform"
|
|
)
|
|
|
|
func init() {
|
|
registerModule(func(app *platform.App) error {
|
|
var store media.Store
|
|
if app.Config().DatabaseMode == platform.DatabaseModeMemory {
|
|
store = media.NewMemoryStore()
|
|
} else {
|
|
store = media.NewPostgresStore(app.Database())
|
|
}
|
|
process := mediamtx.NewSupervisor(os.Getenv("SENSE_MEDIAMTX_BINARY"), os.Getenv("SENSE_MEDIAMTX_CONFIG"), 3)
|
|
controller := mediamtx.NewHTTPController(valueOr("SENSE_MEDIAMTX_API", "http://127.0.0.1:9997"))
|
|
app.RegisterMigration(platform.Migration{Version: 2026081203, Name: "sense_media", SQL: media.MigrationSQL})
|
|
media.NewModule(media.NewService(store, process, controller)).Register(app)
|
|
return nil
|
|
})
|
|
}
|
|
func valueOr(key, fallback string) string {
|
|
if value := os.Getenv(key); value != "" {
|
|
return value
|
|
}
|
|
return fallback
|
|
}
|