backend for xcvr appview
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

it was

rachel-mp4 b6823a75 4c11118b

+12 -7
+6 -5
server/cmd/main.go
··· 45 45 if err != nil { 46 46 panic(err) 47 47 } 48 - model := model.Init(store, logger, xrpc) 49 48 httpclient := &http.Client{ 50 49 Timeout: 5 * time.Second, 51 50 Transport: &http.Transport{ ··· 57 56 logger.Println(err.Error()) 58 57 panic(err) 59 58 } 60 - recordmanager := recordmanager.New(logger, store, xrpc, model) 59 + recordmanager := recordmanager.New(logger, store, xrpc) 60 + model := model.Init(store, logger, xrpc, recordmanager) 61 + recordmanager.SetBroadcaster(model) 61 62 h := handler.New(store, logger, oauthclient, model, recordmanager) 62 - go consumeLoop(context.Background(), store, logger, xrpc) 63 + go consumeLoop(context.Background(), store, logger, xrpc, recordmanager) 63 64 http.ListenAndServe(":8080", h.Serve()) 64 65 65 66 } ··· 68 69 defaultServerAddr = "wss://jetstream.atproto.tools/subscribe" 69 70 ) 70 71 71 - func consumeLoop(ctx context.Context, db *db.Store, l *log.Logger, cli *oauth.PasswordClient) { 72 + func consumeLoop(ctx context.Context, db *db.Store, l *log.Logger, cli *oauth.PasswordClient, rm *recordmanager.RecordManager) { 72 73 jsServerAddr := os.Getenv("JS_SERVER_ADDR") 73 74 if jsServerAddr == "" { 74 75 jsServerAddr = defaultServerAddr 75 76 } 76 - consumer := atplistener.NewConsumer(jsServerAddr, l, db, cli) 77 + consumer := atplistener.NewConsumer(jsServerAddr, l, db, cli, rm) 77 78 for { 78 79 err := consumer.Consume(ctx) 79 80 if err != nil {
+6 -2
server/internal/recordmanager/recordmanager.go
··· 24 24 broadcaster LexBroadcaster 25 25 } 26 26 27 - func New(log *log.Logger, db *db.Store, myClient *oauth.PasswordClient, broadcaster LexBroadcaster) *RecordManager { 27 + func New(log *log.Logger, db *db.Store, myClient *oauth.PasswordClient) *RecordManager { 28 28 clientmap := oauth.NewClientMap() 29 - return &RecordManager{log, db, myClient, clientmap, broadcaster} 29 + return &RecordManager{log, db, myClient, clientmap, nil} 30 + } 31 + 32 + func (rm *RecordManager) SetBroadcaster(b LexBroadcaster) { 33 + rm.broadcaster = b 30 34 } 31 35 32 36 func (rm *RecordManager) getClient(id int, ctx context.Context) (*oauth.OauthXRPCClient, error) {