Example #1
0
File: comment.py Project: CMGS/ymir
    def on_put(self, req, resp, token):
        site = self.get_site(token)
        msg = json.load(req.stream)

        tid = msg.get('tid', 0)
        fid = msg.get('fid', 0)
        uid = msg.get('uid', 0)
        ip = msg.get('ip', 0)
        content = msg.get('content', None)

        if not tid or not uid or not ip or not content:
            raise falcon.HTTPBadRequest(config.HTTP_400, 'invalid params')

        if check_block(site.id, ip):
            logger.info('IP %s deny' % ip)
            raise falcon.HTTPForbidden(config.HTTP_403, 'ip %s deny' % ip)

        try:
            comment = create(site, tid, fid, uid, ip, content)
        except Exception:
            logger.exception('create comment')
            raise falcon.HTTPInternalServerError(config.HTTP_500, 'create comment failed')

        resp.status = falcon.HTTP_201
        resp.stream = ijson.dump({'id': comment.id})
Example #2
0
File: comment.py Project: CMGS/ymir
 def render_comments(self, comments, fid=0):
     result = OrderedDict()
     for comment in comments:
         if comment.fid == fid:
             result[comment.id] = [self.render_comment(comment)]
         else:
             result[comment.fid].append(self.render_comment(comment))
     return ijson.dump(result.values())
Example #3
0
File: sys.py Project: CMGS/ymir
 def on_get(self, req, resp):
     result = {'default_db':[], 'redis':[]}
     for k in dir(config):
         if k.startswith('DEFAULT_DB'):
             result['default_db'].append(getattr(config, k))
         elif k.startswith('REDIS_'):
             result['redis'].append(getattr(config, k))
     result['store'] = config.STORE
     resp.status = falcon.HTTP_200
     resp.stream = ijson.dump(result)
Example #4
0
File: site.py Project: CMGS/ymir
    def on_get(self, req, resp):
        token, page, params = self.parse_params(req, 'page')
        page = int(page)
        num = int(params.get('num', config.DEFAULT_PAGE_NUM))
        if page < 1 or num < 0:
            raise falcon.HTTPBadRequest(config.HTTP_400, 'invalid params')

        site = self.get_site(token)
        blocks = get_blocks(site, site.blocks, page, num)
        resp.status = falcon.HTTP_200
        resp.stream = ijson.dump([{'id':block.id, 'ip':block.ip, 'ctime':str(block.ctime)} for block in blocks])
Example #5
0
File: site.py Project: CMGS/ymir
    def on_put(self, req, resp):
        token, ip, _ = self.parse_params(req)
        site = self.get_site(token)

        try:
            bip = block(site, ip)
        except Exception:
            logger.exception('create')
            raise falcon.HTTPInternalServerError(config.HTTP_500, 'create block failed')

        resp.status = falcon.HTTP_201
        resp.stream = ijson.dump({'id': bip.id})
Example #6
0
File: enhance.py Project: CMGS/ymir
    def on_get(self, req, resp, token):
        site = self.get_site(token)
        params = json.load(req.stream)

        ip = params.get('ip', None)
        tid = int(params.get('tid', -1))
        if not ip:
            raise falcon.HTTPBadRequest(config.HTTP_400, 'invalid params')

        comments = get_comments_by_ip(site, ip, tid)

        resp.status = falcon.HTTP_200
        resp.stream = ijson.dump([self.render_comment(comment) for comment in comments])
Example #7
0
File: site.py Project: CMGS/ymir
    def on_put(self, req, resp):
        params = json.load(req.stream)
        if not params or not params.get('name'):
            raise falcon.HTTPBadRequest(config.HTTP_400, 'invalid params')

        token = uuid.uuid4().hex
        name = params.get('name')

        try:
            site = create(token, name)
        except Exception:
            logger.exception('create')
            raise falcon.HTTPInternalServerError(config.HTTP_500, 'create site failed')

        resp.status = falcon.HTTP_201
        resp.stream = ijson.dump({'token': site.token})
Example #8
0
File: enhance.py Project: CMGS/ymir
    def on_get(self, req, resp, token):
        site = self.get_site(token)
        params = json.load(req.stream)

        page = int(params.get('page', 0))
        num = int(params.get('num', config.DEFAULT_PAGE_NUM))
        fid = int(params.get('fid', -1))
        if page < 1 or num < 0 or fid < 0:
            raise falcon.HTTPBadRequest(config.HTTP_400, 'invalid params')

        f_comment = get_comment_cached(site, fid)
        if not f_comment:
            raise falcon.HTTPNotFound()
        comments = get_comments_by_fid(site, f_comment.count, page, num, fid = f_comment.id)

        resp.status = falcon.HTTP_200
        resp.stream = ijson.dump([self.render_comment(comment) for comment in comments])
Example #9
0
 def compare(self, a):
     self.assertEqual(''.join(ijson.dump(a)), json.dumps(a))
Example #10
0
File: up.py Project: CMGS/ymir
    def on_get(self, req, resp, token):
        site = self.get_site(token)
        cids = self.get_cids(req)

        resp.status = falcon.HTTP_200
        resp.stream = ijson.dump(dict(zip(cids, get_up_counts(site, cids))))