🐛 Fix inconsistent post data in activity

This commit is contained in:
2025-09-03 23:32:44 +08:00
parent bc2e87c56f
commit 7f110313e9

View File

@@ -61,8 +61,10 @@ public class ActivityService(
if (discovery != null) if (discovery != null)
interleaved.Add(discovery); interleaved.Add(discovery);
} }
interleaved.Add(post.ToActivity()); interleaved.Add(post.ToActivity());
} }
activities.AddRange(interleaved); activities.AddRange(interleaved);
if (activities.Count == 0) if (activities.Count == 0)
@@ -127,8 +129,10 @@ public class ActivityService(
if (discovery != null) if (discovery != null)
interleaved.Add(discovery); interleaved.Add(discovery);
} }
interleaved.Add(post.ToActivity()); interleaved.Add(post.ToActivity());
} }
activities.AddRange(interleaved); activities.AddRange(interleaved);
if (activities.Count == 0) if (activities.Count == 0)
@@ -210,19 +214,19 @@ public class ActivityService(
private async Task<Activity?> GetShuffledPostsActivity(int count = 5) private async Task<Activity?> GetShuffledPostsActivity(int count = 5)
{ {
var posts = await db.Posts var postsQuery = db.Posts
.Include(p => p.Categories) .Include(p => p.Categories)
.Include(p => p.Tags) .Include(p => p.Tags)
.Include(p => p.Realm) .Include(p => p.Realm)
.Where(p => p.RepliedPostId == null) .Where(p => p.RepliedPostId == null)
.OrderBy(_ => EF.Functions.Random()) .OrderBy(_ => EF.Functions.Random())
.Take(count) .Take(count);
.ToListAsync();
if (posts.Count == 0) var posts = await GetAndProcessPosts(postsQuery, trackViews: false);
return null;
return new DiscoveryActivity(posts.Select(x => new DiscoveryItem("post", x)).ToList()).ToActivity(); return posts.Count == 0
? null
: new DiscoveryActivity(posts.Select(x => new DiscoveryItem("post", x)).ToList()).ToActivity();
} }
private async Task<Activity?> GetArticleDiscoveryActivity(int count = 5, int feedSampleSize = 10) private async Task<Activity?> GetArticleDiscoveryActivity(int count = 5, int feedSampleSize = 10)