From e259dbc9fe24090b585beb5dafb347f4a9acb8c8 Mon Sep 17 00:00:00 2001 From: oppiliappan Date: Tue, 17 Jun 2025 11:21:07 +0100 Subject: [PATCH] appview: consumer events from spindles Change-Id: pmzmmoltowvvlontsuxmuulqskozuzlv Signed-off-by: oppiliappan --- appview/config/config.go | 21 ++--- appview/pages/templates/spindles/index.html | 6 +- appview/state/knotstream.go | 96 ++++++++++++++++++--- appview/state/spindlestream.go | 93 ++++++++++++++++++++ appview/state/state.go | 40 ++++++--- 5 files changed, 215 insertions(+), 41 deletions(-) create mode 100644 appview/state/spindlestream.go diff --git a/appview/config/config.go b/appview/config/config.go index 3f1de1c..a95f726 100644 --- a/appview/config/config.go +++ b/appview/config/config.go @@ -25,7 +25,7 @@ type JetstreamConfig struct { Endpoint string `env:"ENDPOINT, default=wss://jetstream1.us-east.bsky.network/subscribe"` } -type KnotstreamConfig struct { +type ConsumerConfig struct { RetryInterval time.Duration `env:"RETRY_INTERVAL, default=60s"` MaxRetryInterval time.Duration `env:"MAX_RETRY_INTERVAL, default=120m"` ConnectionTimeout time.Duration `env:"CONNECTION_TIMEOUT, default=5s"` @@ -74,15 +74,16 @@ func (cfg RedisConfig) ToURL() string { } type Config struct { - Core CoreConfig `env:",prefix=TANGLED_"` - Jetstream JetstreamConfig `env:",prefix=TANGLED_JETSTREAM_"` - Knotstream KnotstreamConfig `env:",prefix=TANGLED_KNOTSTREAM_"` - Resend ResendConfig `env:",prefix=TANGLED_RESEND_"` - Posthog PosthogConfig `env:",prefix=TANGLED_POSTHOG_"` - Camo CamoConfig `env:",prefix=TANGLED_CAMO_"` - Avatar AvatarConfig `env:",prefix=TANGLED_AVATAR_"` - OAuth OAuthConfig `env:",prefix=TANGLED_OAUTH_"` - Redis RedisConfig `env:",prefix=TANGLED_REDIS_"` + Core CoreConfig `env:",prefix=TANGLED_"` + Jetstream JetstreamConfig `env:",prefix=TANGLED_JETSTREAM_"` + Knotstream ConsumerConfig `env:",prefix=TANGLED_KNOTSTREAM_"` + Spindlestream ConsumerConfig `env:",prefix=TANGLED_SPINDLESTREAM_"` + Resend ResendConfig `env:",prefix=TANGLED_RESEND_"` + Posthog PosthogConfig `env:",prefix=TANGLED_POSTHOG_"` + Camo CamoConfig `env:",prefix=TANGLED_CAMO_"` + Avatar AvatarConfig `env:",prefix=TANGLED_AVATAR_"` + OAuth OAuthConfig `env:",prefix=TANGLED_OAUTH_"` + Redis RedisConfig `env:",prefix=TANGLED_REDIS_"` } func LoadConfig(ctx context.Context) (*Config, error) { diff --git a/appview/pages/templates/spindles/index.html b/appview/pages/templates/spindles/index.html index 416357b..0cb8952 100644 --- a/appview/pages/templates/spindles/index.html +++ b/appview/pages/templates/spindles/index.html @@ -14,7 +14,7 @@ {{ end }} {{ define "all" }} -
+

your spindles

{{ range $spindle := .Spindles }} @@ -30,9 +30,9 @@ {{ end }} {{ define "register" }} -
+

register a spindle

-

Enter the hostname of your spindle to get started

+

Enter the hostname of your spindle to get started.