Better activitypub search user

This commit is contained in:
2025-12-28 23:31:10 +08:00
parent df077b347e
commit 2e8a1d05a1
3 changed files with 259 additions and 8 deletions

View File

@@ -7,11 +7,12 @@ using NodaTime;
namespace DysonNetwork.Sphere.ActivityPub;
[ApiController]
[Route("api/activitypub")]
[Route("/api/activitypub")]
[Authorize]
public class ActivityPubFollowController(
AppDatabase db,
ActivityPubDeliveryService deliveryService,
ActivityPubDiscoveryService discoveryService,
IConfiguration configuration,
ILogger<ActivityPubFollowController> logger
) : ControllerBase
@@ -160,13 +161,7 @@ public class ActivityPubFollowController(
if (string.IsNullOrWhiteSpace(query))
return BadRequest(new { error = "Query is required" });
var actors = await db.FediverseActors
.Where(a =>
a.Username.Contains(query) ||
a.DisplayName != null && a.DisplayName.Contains(query))
.OrderByDescending(a => a.LastActivityAt ?? a.CreatedAt)
.Take(limit)
.ToListAsync();
var actors = await discoveryService.SearchActorsAsync(query, limit, includeRemoteDiscovery: true);
return Ok(actors);
}