aboutsummaryrefslogtreecommitdiff
path: root/cmd
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
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')
-rw-r--r--cmd/future-sight/manifest/prod/deployment.yaml3
-rw-r--r--cmd/future-sight/manifest/prod/kustomization.yaml2
-rw-r--r--cmd/future-sight/manifest/prod/service.yaml4
-rw-r--r--cmd/geminitest/main.go40
-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
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 {