Add Web Push sender (similar to email sender)

This commit is contained in:
Vyr Cossont 2024-11-30 12:29:46 -08:00
commit 0c92f9f0f3
16 changed files with 699 additions and 1 deletions

View file

@ -28,6 +28,7 @@ import (
"github.com/superseriousbusiness/gotosocial/internal/state"
"github.com/superseriousbusiness/gotosocial/internal/subscriptions"
"github.com/superseriousbusiness/gotosocial/internal/typeutils"
"github.com/superseriousbusiness/gotosocial/internal/webpush"
)
// NewTestProcessor returns a Processor suitable for testing purposes.
@ -37,6 +38,7 @@ func NewTestProcessor(
state *state.State,
federator *federation.Federator,
emailSender email.Sender,
webPushSender webpush.Sender,
mediaManager *media.Manager,
) *processing.Processor {
@ -53,6 +55,7 @@ func NewTestProcessor(
mediaManager,
state,
emailSender,
webPushSender,
visibility.NewFilter(state),
interaction.NewFilter(state),
)

View file

@ -29,6 +29,7 @@ import (
"github.com/superseriousbusiness/gotosocial/internal/subscriptions"
"github.com/superseriousbusiness/gotosocial/internal/transport"
"github.com/superseriousbusiness/gotosocial/internal/typeutils"
"github.com/superseriousbusiness/gotosocial/internal/webpush"
)
// TestStructs encapsulates structs needed to
@ -83,6 +84,7 @@ func SetupTestStructs(
federator := NewTestFederator(&state, transportController, mediaManager)
oauthServer := NewTestOauthServer(db)
emailSender := NewEmailSender(rTemplatePath, nil)
webPushSender := webpush.NewNoopSender()
common := common.New(
&state,
@ -101,6 +103,7 @@ func SetupTestStructs(
mediaManager,
&state,
emailSender,
webPushSender,
visFilter,
intFilter,
)

View file

@ -84,6 +84,7 @@ func StartWorkers(state *state.State, processor *workers.Processor) {
state.Workers.Federator.Start(1)
state.Workers.Dereference.Start(1)
state.Workers.Processing.Start(1)
state.Workers.WebPush.Start(1)
}
func StopWorkers(state *state.State) {
@ -92,6 +93,7 @@ func StopWorkers(state *state.State) {
state.Workers.Federator.Stop()
state.Workers.Dereference.Stop()
state.Workers.Processing.Stop()
state.Workers.WebPush.Stop()
}
func StartTimelines(state *state.State, visFilter *visibility.Filter, converter *typeutils.Converter) {