diff options
| author | Xe Iaso <me@xeiaso.net> | 2024-07-05 09:57:43 -0400 |
|---|---|---|
| committer | Xe Iaso <me@xeiaso.net> | 2024-07-05 09:59:20 -0400 |
| commit | 3e902d785ed9bc6932debc1cc15ced8cf3e0a272 (patch) | |
| tree | 9f4a480d2194343cfdd80b4f9f6ca38ef0c234f6 /cmd/mi | |
| parent | 947410f7f2c9d45646c77847de3eadb75fcfb642 (diff) | |
| download | x-3e902d785ed9bc6932debc1cc15ced8cf3e0a272.tar.xz x-3e902d785ed9bc6932debc1cc15ced8cf3e0a272.zip | |
enable grpc in mi, UTM parameters
Signed-off-by: Xe Iaso <me@xeiaso.net>
Diffstat (limited to 'cmd/mi')
| -rw-r--r-- | cmd/mi/main.go | 26 | ||||
| -rw-r--r-- | cmd/mi/services/events/events.go | 2 | ||||
| -rw-r--r-- | cmd/mi/services/posse/posse.go | 11 | ||||
| -rw-r--r-- | cmd/mi/services/switchtracker/switchtracker.go | 2 |
4 files changed, 38 insertions, 3 deletions
diff --git a/cmd/mi/main.go b/cmd/mi/main.go index 5147ae3..2217975 100644 --- a/cmd/mi/main.go +++ b/cmd/mi/main.go @@ -5,11 +5,13 @@ import ( "flag" "fmt" "log/slog" + "net" "net/http" "os" "github.com/prometheus/client_golang/prometheus/promhttp" "golang.org/x/sync/errgroup" + "google.golang.org/grpc" "within.website/x/cmd/mi/models" "within.website/x/cmd/mi/services/events" "within.website/x/cmd/mi/services/homefrontshim" @@ -24,6 +26,7 @@ import ( var ( bind = flag.String("bind", ":8080", "HTTP bind address") dbLoc = flag.String("db-loc", "./var/data.db", "") + grpcBind = flag.String("grpc-bind", ":8081", "GRPC bind address") internalBind = flag.String("internal-bind", ":9195", "HTTP internal routes bind address") // Events flags @@ -78,9 +81,18 @@ func main() { os.Exit(1) } + st := switchtracker.New(dao) + es := events.New(dao, *flyghtTrackerURL) + + gs := grpc.NewServer() + + announce.RegisterAnnounceServer(gs, ann) + pb.RegisterSwitchTrackerServer(gs, st) + pb.RegisterEventsServer(gs, es) + mux.Handle(announce.AnnouncePathPrefix, announce.NewAnnounceServer(ann)) - mux.Handle(pb.SwitchTrackerPathPrefix, pb.NewSwitchTrackerServer(switchtracker.New(dao))) - mux.Handle(pb.EventsPathPrefix, pb.NewEventsServer(events.New(dao, *flyghtTrackerURL))) + mux.Handle(pb.SwitchTrackerPathPrefix, pb.NewSwitchTrackerServer(st)) + mux.Handle(pb.EventsPathPrefix, pb.NewEventsServer(es)) mux.Handle("/front", homefrontshim.New(dao)) i := importer.New(dao) @@ -100,6 +112,16 @@ func main() { g, _ := errgroup.WithContext(ctx) g.Go(func() error { + slog.Info("starting private grpc server", "bind", *grpcBind) + lis, err := net.Listen("tcp", *grpcBind) + if err != nil { + return err + } + + return gs.Serve(lis) + }) + + g.Go(func() error { slog.Info("starting internal server", "bind", *internalBind) return http.ListenAndServe(*internalBind, nil) }) diff --git a/cmd/mi/services/events/events.go b/cmd/mi/services/events/events.go index 6921306..973bbfe 100644 --- a/cmd/mi/services/events/events.go +++ b/cmd/mi/services/events/events.go @@ -17,6 +17,8 @@ import ( type Events struct { dao *models.DAO flyghtTracker *flyghttracker.Client + + pb.UnimplementedEventsServer } var _ pb.Events = &Events{} diff --git a/cmd/mi/services/posse/posse.go b/cmd/mi/services/posse/posse.go index 6c6702b..0c5623b 100644 --- a/cmd/mi/services/posse/posse.go +++ b/cmd/mi/services/posse/posse.go @@ -37,6 +37,8 @@ type Announcer struct { mastodon *mastodon.Client mimi announce.Announce cfg Config + + announce.UnimplementedAnnounceServer } type Config struct { @@ -88,7 +90,7 @@ func (a *Announcer) Announce(ctx context.Context, it *jsonfeed.Item) (*emptypb.E g, gCtx := errgroup.WithContext(ctx) g.Go(func() error { post, err := a.mastodon.CreateStatus(gCtx, mastodon.CreateStatusParams{ - Status: sb.String(), + Status: sb.String() + "?utm_campaign=mi_irl&utm_medium=social&utm_source=mastodon", }) if err != nil { posseErrors.WithLabelValues("mastodon").Inc() @@ -120,6 +122,13 @@ func (a *Announcer) Announce(ctx context.Context, it *jsonfeed.Item) (*emptypb.E slog.Error("failed to parse url", "err", err) return err } + + q := u.Query() + q.Set("utm_campaign", "mi_irl") + q.Set("utm_medium", "social") + q.Set("utm_source", "bluesky") + u.RawQuery = q.Encode() + post, err := bsky.NewPostBuilder(sb.String()). WithExternalLink(it.GetTitle(), *u, "The newest post on Xe Iaso's blog"). WithFacet(bsky.Facet_Link, it.GetUrl(), it.GetUrl()). diff --git a/cmd/mi/services/switchtracker/switchtracker.go b/cmd/mi/services/switchtracker/switchtracker.go index e7b2c5c..cf461fe 100644 --- a/cmd/mi/services/switchtracker/switchtracker.go +++ b/cmd/mi/services/switchtracker/switchtracker.go @@ -14,6 +14,8 @@ import ( type SwitchTracker struct { dao *models.DAO + + pb.UnimplementedSwitchTrackerServer } func New(dao *models.DAO) *SwitchTracker { |
