Beispiel #1
0
        public NanoHttpResponse Handle(NanoHttpRequest request)
        {
            Hash            hash = new Hash(request.Address.Split('/').Last());
            List <NanoPost> all  = new List <NanoPost>(_db.GetExpandedThreadPosts(hash));

            //
            // recursively hide posts
            foreach (NanoPost p in all)
            {
                if (_db.IsHidden(p.GetHash()))
                {
                    var children = _db.GetExpandedThreadPosts(p.GetHash());

                    foreach (var child in children)
                    {
                        _db.Hide(child.GetHash());
                    }
                }
            }

            List <NanoPost> list = new List <NanoPost>(all.Where(p => !_db.IsHidden(p.GetHash())));

            new PngContainerCreator(_db).CreateWithList(list);
            return(new NanoHttpResponse(StatusCode.Ok, "\n"));
        }
Beispiel #2
0
        public NanoHttpResponse Handle(NanoHttpRequest request)
        {
            Hash hash = new Hash(request.Address.Split('/').Last());

            if (hash.Invalid)
            {
                return(new ErrorHandler(StatusCode.BadRequest, "Invalid hash").Handle(request));
            }

            try
            {
                if (_db.IsHidden(hash))
                {
                    _db.Unhide(hash);
                }

                else
                {
                    _db.Hide(hash);
                }

                return(new NanoHttpResponse(StatusCode.Ok, "\n"));
            }

            catch (Exception e)
            {
                return(new ErrorHandler(StatusCode.InternalServerError, e.ToString().Replace("\n", "<br>")).Handle(request));
            }
        }