···
"Coves/internal/atproto/identity"
"Coves/internal/atproto/jetstream"
"Coves/internal/core/aggregators"
10
+
"Coves/internal/core/blobs"
"Coves/internal/core/comments"
"Coves/internal/core/communities"
"Coves/internal/core/communityFeeds"
"Coves/internal/core/discover"
"Coves/internal/core/posts"
"Coves/internal/core/timeline"
17
+
"Coves/internal/core/unfurl"
"Coves/internal/core/users"
···
aggregatorService := aggregators.NewAggregatorService(aggregatorRepo, communityService)
log.Println("✅ Aggregator service initialized")
286
+
// Initialize unfurl cache repository
287
+
unfurlRepo := unfurl.NewRepository(db)
289
+
// Initialize blob upload service
290
+
blobService := blobs.NewBlobService(defaultPDS)
292
+
// Initialize unfurl service with configuration
293
+
unfurlService := unfurl.NewService(
295
+
unfurl.WithTimeout(10*time.Second),
296
+
unfurl.WithUserAgent("CovesBot/1.0 (+https://coves.social)"),
297
+
unfurl.WithCacheTTL(24*time.Hour),
299
+
log.Println("✅ Unfurl and blob services initialized")
// Initialize post service (with aggregator support)
postRepo := postgresRepo.NewPostRepository(db)
286
-
postService := posts.NewPostService(postRepo, communityService, aggregatorService, defaultPDS)
303
+
postService := posts.NewPostService(postRepo, communityService, aggregatorService, blobService, unfurlService, defaultPDS)
// Initialize vote repository (used by Jetstream consumer for indexing)
voteRepo := postgresRepo.NewVoteRepository(db)