Esempio n. 1
0
File: up.py Progetto: CMGS/ymir
def set_up_counts(site, cids):
    for cid in cids:
        key = config.COMMENT_UP_PREFIX.format(
            sid = site.id, \
            cid = cid, \
        )
        rds.incr(key)
Esempio n. 2
0
File: comment.py Progetto: CMGS/ymir
def create(site, tid, fid, uid, ip, content):
    comment_table = get_table(site.id, site.token, site.node)
    site.comments = Site.comments + 1
    site.save()
    comment = comment_table.create(tid=tid, fid=fid, uid=uid, ip=ip, content=content)
    if fid:
        f_comment = get_comment(site, fid)
        f_comment.count = comment_table.count + 1
        f_comment.save()
        rds.delete(config.COMMENT_CACHE_PREFIX.format(sid = site.id, id = fid))
    rds.incr(config.COMMENT_COUNT_PREFIX.format(sid = site.id, tid = tid))
    return comment
Esempio n. 3
0
File: heat.py Progetto: CMGS/ymir
def req_rate(req, resp, params):
    ip = req.get_header('X-Real-IP')
    if not ip:
        return
    key = config.HEAT_KEY.format(ip = ip)
    current = rds.get(key)
    if current and int(current) > config.HEAT_MAX:
        raise falcon.HTTPForbidden(config.HTTP_403, 'ip %s overheat' % ip)

    if not current:
        rds.incr(key)
        rds.expire(key, config.HEAT_TIME)
    else:
        rds.incr(key)
Esempio n. 4
0
File: test_up.py Progetto: CMGS/ymir
    def test_get_up_counts(self):
        r = range(17, 19)
        for i in r:
            k = config.COMMENT_UP_PREFIX.format(sid = self.site.id, cid = i)
            rds.incr(k)

        response = self.send_request(
            path = self.path, method = 'GET', data = json.dumps({'cids': r})
        )

        self.assertEqual(falcon.HTTP_200, self.mock.status)
        self.assertTrue(is_iter(response))
        data = json.loads(''.join(response))
        self.assertIsInstance(data, dict)
        for i in r:
            self.assertTrue(data.get(str(i)))
            self.assertEqual(int(data[str(i)]), 1)