fork of indigo with slightly nicer lexgen

remove indexer spidering and aggregation entirely

Changed files
+5 -39
indexer
+4 -38
indexer/indexer.go
··· 2 3 import ( 4 "context" 5 - "database/sql" 6 "errors" 7 "fmt" 8 "log/slog" ··· 19 20 "go.opentelemetry.io/otel" 21 "gorm.io/gorm" 22 - "gorm.io/gorm/clause" 23 ) 24 25 const MaxEventSliceLength = 1000000 ··· 33 34 Crawler *CrawlDispatcher 35 36 - doAggregations bool 37 - doSpider bool 38 - 39 SendRemoteFollow func(context.Context, string, uint) error 40 CreateExternalUser func(context.Context, string) (*models.ActorInfo, error) 41 ApplyPDSClientSettings func(*xrpc.Client) ··· 43 log *slog.Logger 44 } 45 46 - func NewIndexer(db *gorm.DB, evtman *events.EventManager, didr did.Resolver, fetcher *RepoFetcher, crawl, aggregate, spider bool) (*Indexer, error) { 47 db.AutoMigrate(&models.FeedPost{}) 48 db.AutoMigrate(&models.ActorInfo{}) 49 db.AutoMigrate(&models.FollowRecord{}) ··· 51 db.AutoMigrate(&models.RepostRecord{}) 52 53 ix := &Indexer{ 54 - db: db, 55 - events: evtman, 56 - didr: didr, 57 - doAggregations: aggregate, 58 - doSpider: spider, 59 SendRemoteFollow: func(context.Context, string, uint) error { 60 return nil 61 }, ··· 217 } 218 219 return &ai, nil 220 - } 221 - 222 - func (ix *Indexer) handleInitActor(ctx context.Context, evt *repomgr.RepoEvent, op *repomgr.RepoOp) error { 223 - ai := op.ActorInfo 224 - 225 - if err := ix.db.Clauses(clause.OnConflict{ 226 - Columns: []clause.Column{{Name: "uid"}}, 227 - UpdateAll: true, 228 - }).Create(&models.ActorInfo{ 229 - Uid: evt.User, 230 - Handle: sql.NullString{String: ai.Handle, Valid: true}, 231 - Did: ai.Did, 232 - DisplayName: ai.DisplayName, 233 - Type: ai.Type, 234 - PDS: evt.PDS, 235 - }).Error; err != nil { 236 - return fmt.Errorf("initializing new actor info: %w", err) 237 - } 238 - 239 - if err := ix.db.Create(&models.FollowRecord{ 240 - Follower: evt.User, 241 - Target: evt.User, 242 - }).Error; err != nil { 243 - return err 244 - } 245 - 246 - return nil 247 } 248 249 func isNotFound(err error) bool {
··· 2 3 import ( 4 "context" 5 "errors" 6 "fmt" 7 "log/slog" ··· 18 19 "go.opentelemetry.io/otel" 20 "gorm.io/gorm" 21 ) 22 23 const MaxEventSliceLength = 1000000 ··· 31 32 Crawler *CrawlDispatcher 33 34 SendRemoteFollow func(context.Context, string, uint) error 35 CreateExternalUser func(context.Context, string) (*models.ActorInfo, error) 36 ApplyPDSClientSettings func(*xrpc.Client) ··· 38 log *slog.Logger 39 } 40 41 + func NewIndexer(db *gorm.DB, evtman *events.EventManager, didr did.Resolver, fetcher *RepoFetcher, crawl bool) (*Indexer, error) { 42 db.AutoMigrate(&models.FeedPost{}) 43 db.AutoMigrate(&models.ActorInfo{}) 44 db.AutoMigrate(&models.FollowRecord{}) ··· 46 db.AutoMigrate(&models.RepostRecord{}) 47 48 ix := &Indexer{ 49 + db: db, 50 + events: evtman, 51 + didr: didr, 52 SendRemoteFollow: func(context.Context, string, uint) error { 53 return nil 54 }, ··· 210 } 211 212 return &ai, nil 213 } 214 215 func isNotFound(err error) bool {
+1 -1
indexer/posts_test.go
··· 61 62 rf := NewRepoFetcher(maindb, repoman, 10) 63 64 - ix, err := NewIndexer(maindb, evtman, didr, rf, false, true, true) 65 if err != nil { 66 t.Fatal(err) 67 }
··· 61 62 rf := NewRepoFetcher(maindb, repoman, 10) 63 64 + ix, err := NewIndexer(maindb, evtman, didr, rf, false) 65 if err != nil { 66 t.Fatal(err) 67 }