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

@ -50,6 +50,7 @@ import (
"github.com/superseriousbusiness/gotosocial/internal/subscriptions"
"github.com/superseriousbusiness/gotosocial/internal/timeline"
"github.com/superseriousbusiness/gotosocial/internal/tracing"
"github.com/superseriousbusiness/gotosocial/internal/webpush"
"go.uber.org/automaxprocs/maxprocs"
"github.com/superseriousbusiness/gotosocial/internal/config"
@ -266,6 +267,9 @@ var Start action.GTSAction = func(ctx context.Context) error {
}
}
// Create a Web Push notification sender.
webPushSender := webpush.NewSender(client, state)
// Initialize both home / list timelines.
state.Timelines.Home = timeline.NewManager(
tlprocessor.HomeTimelineGrab(state),
@ -325,6 +329,7 @@ var Start action.GTSAction = func(ctx context.Context) error {
mediaManager,
state,
emailSender,
webPushSender,
visFilter,
intFilter,
)

View file

@ -50,6 +50,7 @@ import (
"github.com/superseriousbusiness/gotosocial/internal/tracing"
"github.com/superseriousbusiness/gotosocial/internal/typeutils"
"github.com/superseriousbusiness/gotosocial/internal/web"
"github.com/superseriousbusiness/gotosocial/internal/webpush"
"github.com/superseriousbusiness/gotosocial/testrig"
)
@ -164,6 +165,7 @@ var Start action.GTSAction = func(ctx context.Context) error {
federator := testrig.NewTestFederator(state, transportController, mediaManager)
emailSender := testrig.NewEmailSender("./web/template/", nil)
webPushSender := webpush.NewMockSender()
typeConverter := typeutils.NewConverter(state)
filter := visibility.NewFilter(state)
@ -187,7 +189,7 @@ var Start action.GTSAction = func(ctx context.Context) error {
return fmt.Errorf("error starting list timeline: %s", err)
}
processor := testrig.NewTestProcessor(state, federator, emailSender, mediaManager)
processor := testrig.NewTestProcessor(state, federator, emailSender, webPushSender, mediaManager)
// Initialize workers.
testrig.StartWorkers(state, processor.Workers())