aboutsummaryrefslogtreecommitdiff
path: root/cmd/mi
diff options
context:
space:
mode:
authorXe Iaso <me@xeiaso.net>2024-07-05 09:57:43 -0400
committerXe Iaso <me@xeiaso.net>2024-07-05 09:59:20 -0400
commit3e902d785ed9bc6932debc1cc15ced8cf3e0a272 (patch)
tree9f4a480d2194343cfdd80b4f9f6ca38ef0c234f6 /cmd/mi
parent947410f7f2c9d45646c77847de3eadb75fcfb642 (diff)
downloadx-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.go26
-rw-r--r--cmd/mi/services/events/events.go2
-rw-r--r--cmd/mi/services/posse/posse.go11
-rw-r--r--cmd/mi/services/switchtracker/switchtracker.go2
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 {