Exemple #1
0
 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,
     }));
 }
Exemple #2
0
        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)));