Compare commits
2 Commits
3e7376c1f7
...
0306b54a0f
| Author | SHA1 | Date | |
|---|---|---|---|
| 0306b54a0f | |||
| 3afbeacffb |
@@ -53,10 +53,18 @@ public class LastActiveFlushHandler(IServiceProvider srp, ILogger<LastActiveFlus
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class LastActiveFlushJob(FlushBufferService fbs, ActionLogFlushHandler hdl) : IJob
|
public class LastActiveFlushJob(FlushBufferService fbs, ActionLogFlushHandler hdl, ILogger<LastActiveFlushJob> logger) : IJob
|
||||||
{
|
{
|
||||||
public async Task Execute(IJobExecutionContext context)
|
public async Task Execute(IJobExecutionContext context)
|
||||||
{
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
logger.LogInformation("Running LastActiveInfo flush job...");
|
||||||
await fbs.FlushAsync(hdl);
|
await fbs.FlushAsync(hdl);
|
||||||
|
logger.LogInformation("Completed LastActiveInfo flush job...");
|
||||||
|
} catch (Exception ex)
|
||||||
|
{
|
||||||
|
logger.LogError(ex, "Error running LastActiveInfo job...");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -95,7 +95,7 @@ public class PostController(
|
|||||||
post = await ps.LoadPostInfo(post, currentUser);
|
post = await ps.LoadPostInfo(post, currentUser);
|
||||||
|
|
||||||
// Track view - use the account ID as viewer ID if user is logged in
|
// Track view - use the account ID as viewer ID if user is logged in
|
||||||
await ps.IncreaseViewCount(post.Id, currentUser?.Id.ToString());
|
await ps.IncreaseViewCount(post.Id, currentUser?.Id);
|
||||||
|
|
||||||
return Ok(post);
|
return Ok(post);
|
||||||
}
|
}
|
||||||
@@ -154,6 +154,18 @@ public class PostController(
|
|||||||
[HttpGet("{id:guid}/replies/featured")]
|
[HttpGet("{id:guid}/replies/featured")]
|
||||||
public async Task<ActionResult<Post>> GetFeaturedReply(Guid id)
|
public async Task<ActionResult<Post>> GetFeaturedReply(Guid id)
|
||||||
{
|
{
|
||||||
|
HttpContext.Items.TryGetValue("CurrentUser", out var currentUserValue);
|
||||||
|
var currentUser = currentUserValue as Account;
|
||||||
|
List<Guid> userFriends = [];
|
||||||
|
if (currentUser != null)
|
||||||
|
{
|
||||||
|
var friendsResponse = await accounts.ListFriendsAsync(new ListRelationshipSimpleRequest
|
||||||
|
{ AccountId = currentUser.Id });
|
||||||
|
userFriends = friendsResponse.AccountsId.Select(Guid.Parse).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
var userPublishers = currentUser is null ? [] : await pub.GetUserPublishers(Guid.Parse(currentUser.Id));
|
||||||
|
|
||||||
var now = SystemClock.Instance.GetCurrentInstant();
|
var now = SystemClock.Instance.GetCurrentInstant();
|
||||||
var post = await db.Posts
|
var post = await db.Posts
|
||||||
.Where(e => e.RepliedPostId == id)
|
.Where(e => e.RepliedPostId == id)
|
||||||
@@ -162,8 +174,14 @@ public class PostController(
|
|||||||
p.Downvotes +
|
p.Downvotes +
|
||||||
((p.CreatedAt - now).TotalMinutes < 60 ? 5 : 0)
|
((p.CreatedAt - now).TotalMinutes < 60 ? 5 : 0)
|
||||||
)
|
)
|
||||||
|
.FilterWithVisibility(currentUser, userFriends, userPublishers)
|
||||||
.FirstOrDefaultAsync();
|
.FirstOrDefaultAsync();
|
||||||
if (post is null) return NotFound();
|
if (post is null) return NotFound();
|
||||||
|
post = await ps.LoadPostInfo(post, currentUser);
|
||||||
|
|
||||||
|
// Track view - use the account ID as viewer ID if user is logged in
|
||||||
|
await ps.IncreaseViewCount(post.Id, currentUser?.Id);
|
||||||
|
|
||||||
return await ps.LoadPostInfo(post);
|
return await ps.LoadPostInfo(post);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user