···290 e.GET("/xrpc/place.stream.live.getRecommendations", s.HandlePlaceStreamLiveGetRecommendations)
291 e.GET("/xrpc/place.stream.live.getSegments", s.HandlePlaceStreamLiveGetSegments)
292 e.GET("/xrpc/place.stream.live.searchActorsTypeahead", s.HandlePlaceStreamLiveSearchActorsTypeahead)
293+ e.POST("/xrpc/place.stream.live.startLivestream", s.HandlePlaceStreamLiveStartLivestream)
294+ e.POST("/xrpc/place.stream.live.stopLivestream", s.HandlePlaceStreamLiveStopLivestream)
295 e.POST("/xrpc/place.stream.moderation.createBlock", s.HandlePlaceStreamModerationCreateBlock)
296 e.POST("/xrpc/place.stream.moderation.createGate", s.HandlePlaceStreamModerationCreateGate)
297 e.POST("/xrpc/place.stream.moderation.deleteBlock", s.HandlePlaceStreamModerationDeleteBlock)
···520 var handleErr error
521 // func (s *Server) handlePlaceStreamLiveSearchActorsTypeahead(ctx context.Context,limit int,q string) (*placestream.LiveSearchActorsTypeahead_Output, error)
522 out, handleErr = s.handlePlaceStreamLiveSearchActorsTypeahead(ctx, limit, q)
523+ if handleErr != nil {
524+ return handleErr
525+ }
526+ return c.JSON(200, out)
527+}
528+529+func (s *Server) HandlePlaceStreamLiveStartLivestream(c echo.Context) error {
530+ ctx, span := otel.Tracer("server").Start(c.Request().Context(), "HandlePlaceStreamLiveStartLivestream")
531+ defer span.End()
532+533+ var body placestream.LiveStartLivestream_Input
534+ if err := c.Bind(&body); err != nil {
535+ return err
536+ }
537+ var out *placestream.LiveStartLivestream_Output
538+ var handleErr error
539+ // func (s *Server) handlePlaceStreamLiveStartLivestream(ctx context.Context,body *placestream.LiveStartLivestream_Input) (*placestream.LiveStartLivestream_Output, error)
540+ out, handleErr = s.handlePlaceStreamLiveStartLivestream(ctx, &body)
541+ if handleErr != nil {
542+ return handleErr
543+ }
544+ return c.JSON(200, out)
545+}
546+547+func (s *Server) HandlePlaceStreamLiveStopLivestream(c echo.Context) error {
548+ ctx, span := otel.Tracer("server").Start(c.Request().Context(), "HandlePlaceStreamLiveStopLivestream")
549+ defer span.End()
550+551+ var body placestream.LiveStopLivestream_Input
552+ if err := c.Bind(&body); err != nil {
553+ return err
554+ }
555+ var out *placestream.LiveStopLivestream_Output
556+ var handleErr error
557+ // func (s *Server) handlePlaceStreamLiveStopLivestream(ctx context.Context,body *placestream.LiveStopLivestream_Input) (*placestream.LiveStopLivestream_Output, error)
558+ out, handleErr = s.handlePlaceStreamLiveStopLivestream(ctx, &body)
559 if handleErr != nil {
560 return handleErr
561 }
+38
pkg/streamplace/livestartLivestream.go
···00000000000000000000000000000000000000
···1+// Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT.
2+3+// Lexicon schema: place.stream.live.startLivestream
4+5+package streamplace
6+7+import (
8+ "context"
9+10+ lexutil "github.com/bluesky-social/indigo/lex/util"
11+)
12+13+// LiveStartLivestream_Input is the input argument to a place.stream.live.startLivestream call.
14+type LiveStartLivestream_Input struct {
15+ // createBlueskyPost: Whether to create a Bluesky post announcing the livestream.
16+ CreateBlueskyPost *bool `json:"createBlueskyPost,omitempty" cborgen:"createBlueskyPost,omitempty"`
17+ Livestream *Livestream `json:"livestream" cborgen:"livestream"`
18+ // streamer: The DID of the streamer.
19+ Streamer string `json:"streamer" cborgen:"streamer"`
20+}
21+22+// LiveStartLivestream_Output is the output of a place.stream.live.startLivestream call.
23+type LiveStartLivestream_Output struct {
24+ // cid: The CID of the livestream record.
25+ Cid string `json:"cid" cborgen:"cid"`
26+ // uri: The URI of the livestream record.
27+ Uri string `json:"uri" cborgen:"uri"`
28+}
29+30+// LiveStartLivestream calls the XRPC method "place.stream.live.startLivestream".
31+func LiveStartLivestream(ctx context.Context, c lexutil.LexClient, input *LiveStartLivestream_Input) (*LiveStartLivestream_Output, error) {
32+ var out LiveStartLivestream_Output
33+ if err := c.LexDo(ctx, lexutil.Procedure, "application/json", "place.stream.live.startLivestream", nil, input, &out); err != nil {
34+ return nil, err
35+ }
36+37+ return &out, nil
38+}
+33
pkg/streamplace/livestopLivestream.go
···000000000000000000000000000000000
···1+// Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT.
2+3+// Lexicon schema: place.stream.live.stopLivestream
4+5+package streamplace
6+7+import (
8+ "context"
9+10+ lexutil "github.com/bluesky-social/indigo/lex/util"
11+)
12+13+// LiveStopLivestream_Input is the input argument to a place.stream.live.stopLivestream call.
14+type LiveStopLivestream_Input struct {
15+}
16+17+// LiveStopLivestream_Output is the output of a place.stream.live.stopLivestream call.
18+type LiveStopLivestream_Output struct {
19+ // cid: The new CID of the stopped livestream record.
20+ Cid string `json:"cid" cborgen:"cid"`
21+ // uri: The URI of the stopped livestream record.
22+ Uri string `json:"uri" cborgen:"uri"`
23+}
24+25+// LiveStopLivestream calls the XRPC method "place.stream.live.stopLivestream".
26+func LiveStopLivestream(ctx context.Context, c lexutil.LexClient, input *LiveStopLivestream_Input) (*LiveStopLivestream_Output, error) {
27+ var out LiveStopLivestream_Output
28+ if err := c.LexDo(ctx, lexutil.Procedure, "application/json", "place.stream.live.stopLivestream", nil, input, &out); err != nil {
29+ return nil, err
30+ }
31+32+ return &out, nil
33+}