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 | |
| 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')
| -rw-r--r-- | cmd/future-sight/manifest/prod/deployment.yaml | 3 | ||||
| -rw-r--r-- | cmd/future-sight/manifest/prod/kustomization.yaml | 2 | ||||
| -rw-r--r-- | cmd/future-sight/manifest/prod/service.yaml | 4 | ||||
| -rw-r--r-- | cmd/geminitest/main.go | 40 | ||||
| -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 |
8 files changed, 83 insertions, 7 deletions
diff --git a/cmd/future-sight/manifest/prod/deployment.yaml b/cmd/future-sight/manifest/prod/deployment.yaml index 1294c52..7e556b4 100644 --- a/cmd/future-sight/manifest/prod/deployment.yaml +++ b/cmd/future-sight/manifest/prod/deployment.yaml @@ -18,6 +18,7 @@ metadata: namespace: future-sight labels: app.kubernetes.io/name: future-sight + xeiaso.net/role: web annotations: operator.1password.io/auto-restart: "true" spec: @@ -25,11 +26,13 @@ spec: selector: matchLabels: app.kubernetes.io/name: future-sight + xeiaso.net/role: web template: metadata: namespace: future-sight labels: app.kubernetes.io/name: future-sight + xeiaso.net/role: web spec: volumes: - name: tigris diff --git a/cmd/future-sight/manifest/prod/kustomization.yaml b/cmd/future-sight/manifest/prod/kustomization.yaml index 026e648..dc331e9 100644 --- a/cmd/future-sight/manifest/prod/kustomization.yaml +++ b/cmd/future-sight/manifest/prod/kustomization.yaml @@ -7,5 +7,3 @@ resources: - nats.yaml - valkey.yaml namespace: future-sight -commonLabels: - app.kubernetes.io/name: future-sight diff --git a/cmd/future-sight/manifest/prod/service.yaml b/cmd/future-sight/manifest/prod/service.yaml index 4c518ae..8d5dab5 100644 --- a/cmd/future-sight/manifest/prod/service.yaml +++ b/cmd/future-sight/manifest/prod/service.yaml @@ -4,10 +4,10 @@ metadata: name: future-sight namespace: future-sight labels: - app.kubernetes.io/name: future-sight + xeiaso.net/role: web spec: selector: - app.kubernetes.io/name: future-sight + xeiaso.net/role: web ports: - protocol: TCP port: 80 diff --git a/cmd/geminitest/main.go b/cmd/geminitest/main.go new file mode 100644 index 0000000..8de8e40 --- /dev/null +++ b/cmd/geminitest/main.go @@ -0,0 +1,40 @@ +package main + +import ( + "context" + "flag" + "fmt" + "log" + "os" + + "github.com/google/generative-ai-go/genai" + "google.golang.org/api/iterator" + "google.golang.org/api/option" + "within.website/x/internal" +) + +var ( + geminiModel = flag.String("gemini-model", "gemini-1.5-flash", "The model to use for generating text") +) + +func main() { + internal.HandleStartup() + ctx := context.Background() + client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("GEMINI_API_KEY"))) + if err != nil { + log.Fatal(err) + } + defer client.Close() + + iter := client.ListModels(ctx) + for { + m, err := iter.Next() + if err == iterator.Done { + break + } + if err != nil { + panic(err) + } + fmt.Println(m.Name, m.Description) + } +} 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 { |
