public async Task <ActionResult> Stats() { return(Json(new PeerStatsModel() { PeerCount = await _peers.CountAsync(), MediaCount = await _db.ArchivedMedia.CountAsync(), PostCount = int.Parse((await _activityStreams.Get(new ActivityStreamFilter("outbox") { id = new PublicId(null, 0), countOnly = true }.FixObjType("Note", "Article"))).summary), ShopCount = int.Parse((await _activityStreams.Get(new ActivityStreamFilter("outbox") { id = new PublicId(null, 0), countOnly = true }.FixObjType("Organization"))).summary), UserCount = await _db.Users.CountAsync(), StartTime = Process.GetCurrentProcess().StartTime, })); }
private async Task <IActionResult> UnReact(PublicId toId, string undo, ReactionType t) { var user = await GetCurrentUserAsync(); BaseObject toActivity = null; if (string.IsNullOrWhiteSpace(undo)) { toActivity = await _activityStream.Get(new ActivityStreamFilter("outbox") { id = user.PublicId, includeReplies = false, targetId = toId }.FixType(t.ToString())); } else { toActivity = await _activityStream.Get(new ActivityStreamFilter("outbox") { id = user.PublicId, includeReplies = false, activityId = new PublicId(undo) }); } if (toActivity == null) { throw new ArgumentNullException(nameof(toActivity)); } else if (toActivity is Error error) { return(BadRequest(error.summary ?? error.content)); } else { await _activityStream.Undo(user, toActivity); } ViewData["PartialName"] = "Button/ReactButton"; return(View("_NoLayout", new ReactViewModel() { HasReacted = false, Enabled = true, ToId = toId, Type = t, ViewerId = user.UserId, Count = await _reactions.GetCount(toId, t), })); }
public async Task <BaseObject> GetMentionsForUser(PublicId userId, int?viewerId, bool includeReplies, PaginationModel pagination) { // PublicId userId, int? viewerId, bool includeReplies, PaginationModel pagination var mentions = await _activityStreams.Get(new ActivityStreamFilter("inbox") { id = userId, viewerId = viewerId, includeReplies = includeReplies }); //_dbContext.Mentions.Where(m => m.MentionedUserId == userId.Id && m.MentionedUserPeerId == userId.PeerId && m.Post.IsReply == includeReplies); //var paginated = await mentions.OrderByDescending(p => p.WhenMentioned).ToListAsync(); //var posts = new List<BaseObject>(); // foreach (var p in mentions.items.OfType<Mention>()) { // var post = await _activityStreams.GetPost(new ActivityStreamFilter { publicId = p.inReplyTo.first.PublicId, viewerId = viewerId }); // if (post != null) // { // posts.Add(post); // } // } // return new CollectionObject() { // items = posts.Skip(pagination.start).Take(pagination.count).ToList(), // totalItems = posts.Count() // }; return(mentions); }
public async Task <BaseObject> GetAllLocal() => await _activityStreams.Get(new ActivityStreamFilter("outbox") { id = new PublicId(null, 0) }.FixObjType(nameof(Common.Organization)));