💥 Update activity data format

This commit is contained in:
LittleSheep 2025-06-26 22:28:18 +08:00
parent c63d6e0fbc
commit b7263b9804
2 changed files with 31 additions and 29 deletions

View File

@ -1,4 +1,3 @@
using DysonNetwork.Sphere.Account; using DysonNetwork.Sphere.Account;
using DysonNetwork.Sphere.Discovery; using DysonNetwork.Sphere.Discovery;
using DysonNetwork.Sphere.Post; using DysonNetwork.Sphere.Post;
@ -12,9 +11,14 @@ using System.Threading.Tasks;
namespace DysonNetwork.Sphere.Activity; namespace DysonNetwork.Sphere.Activity;
public class ActivityService(AppDatabase db, PublisherService pub, RelationshipService rels, PostService ps, DiscoveryService ds) public class ActivityService(
AppDatabase db,
PublisherService pub,
RelationshipService rels,
PostService ps,
DiscoveryService ds)
{ {
private double CalculateHotRank(Post.Post post, Instant now) private static double CalculateHotRank(Post.Post post, Instant now)
{ {
var score = post.Upvotes - post.Downvotes; var score = post.Upvotes - post.Downvotes;
var postTime = post.PublishedAt ?? post.CreatedAt; var postTime = post.PublishedAt ?? post.CreatedAt;
@ -32,7 +36,9 @@ public class ActivityService(AppDatabase db, PublisherService pub, RelationshipS
var realms = await ds.GetPublicRealmsAsync(null, null, 5, 0, true); var realms = await ds.GetPublicRealmsAsync(null, null, 5, 0, true);
if (realms.Count > 0) if (realms.Count > 0)
{ {
activities.Add(new DiscoveryActivity("Explore Realms", realms.Cast<object>().ToList()).ToActivity()); activities.Add(new DiscoveryActivity(
realms.Select(x => new DiscoveryItem("realm", x)).ToList()
).ToActivity());
} }
} }
@ -92,7 +98,9 @@ public class ActivityService(AppDatabase db, PublisherService pub, RelationshipS
var realms = await ds.GetPublicRealmsAsync(null, null, 5, 0, true); var realms = await ds.GetPublicRealmsAsync(null, null, 5, 0, true);
if (realms.Count > 0) if (realms.Count > 0)
{ {
activities.Add(new DiscoveryActivity("Explore Realms", realms.Cast<object>().ToList()).ToActivity()); activities.Add(new DiscoveryActivity(
realms.Select(x => new DiscoveryItem("realm", x)).ToList()
).ToActivity());
} }
} }

View File

@ -2,31 +2,25 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using NodaTime; using NodaTime;
namespace DysonNetwork.Sphere.Activity namespace DysonNetwork.Sphere.Activity;
public class DiscoveryActivity(List<DiscoveryItem> items) : IActivity
{ {
public class DiscoveryActivity : IActivity public List<DiscoveryItem> Items { get; set; } = items;
public Activity ToActivity()
{ {
public string Title { get; set; } var now = SystemClock.Instance.GetCurrentInstant();
public List<object> Items { get; set; } return new Activity
public DiscoveryActivity(string title, List<object> items)
{ {
Title = title; Id = Guid.NewGuid(),
Items = items; Type = "discovery",
} ResourceIdentifier = "discovery",
Data = this,
public Activity ToActivity() CreatedAt = now,
{ UpdatedAt = now,
var now = SystemClock.Instance.GetCurrentInstant(); };
return new Activity
{
Id = Guid.NewGuid(),
Type = "discovery",
ResourceIdentifier = "discovery",
Data = this,
CreatedAt = now,
UpdatedAt = now,
};
}
} }
} }
public record DiscoveryItem(string Type, object Data);