Ejemplo n.º 1
0
def count_ip(ipaddr, max_count, expire_time):
    redis = get_redis()
    key = get_iplimitation_key(ipaddr)
    ret = redis.get(key)
    if ret is not None and int(ret) >= max_count:
        return False
    get_redis().incr(key)
    if ret is None:
        redis.expire(key, expire_time)
    return True
Ejemplo n.º 2
0
 def test__not_enough_stuffs(self):
     redis = get_redis()
     redis.zadd(KARMA_KEY_NAME, 10000, 'darkprettycure')
     redis.zadd(KARMA_KEY_NAME, 9999, 'regine')
     redis.zadd(KARMA_KEY_NAME, -100, 'akao-ni')
     actual = self._callFUT()
     self.assertEqual(['akao-ni', 'regine', 'darkprettycure'], actual)
Ejemplo n.º 3
0
 def test__not_enough_stuffs(self):
     redis = get_redis()
     redis.zadd(KARMA_KEY_NAME, 10000, 'cureblack')
     redis.zadd(KARMA_KEY_NAME, 9999, 'curesunny')
     redis.zadd(KARMA_KEY_NAME, 1, 'curemarine')
     actual = self._callFUT()
     self.assertEqual(['cureblack', 'curesunny', 'curemarine'], actual)
Ejemplo n.º 4
0
 def test__enough_stuffs(self):
     redis = get_redis()
     redis.zadd(KARMA_KEY_NAME, 6, 'ritsu')
     redis.zadd(KARMA_KEY_NAME, 5, 'jun')
     redis.zadd(KARMA_KEY_NAME, 4, 'ui')
     redis.zadd(KARMA_KEY_NAME, 3, 'nodoka')
     redis.zadd(KARMA_KEY_NAME, 2, 'ichigo')
     redis.zadd(KARMA_KEY_NAME, 1, 'sawa-chan')
     redis.zadd(KARMA_KEY_NAME, 0, 'ton-chan')
     redis.zadd(KARMA_KEY_NAME, -1, 'azunyan')
     redis.zadd(KARMA_KEY_NAME, -2, 'mugi')
     redis.zadd(KARMA_KEY_NAME, -3, 'mio')
     redis.zadd(KARMA_KEY_NAME, -4, 'yui')
     actual = self._callFUT()
     self.assertEqual(['ritsu', 'jun', 'ui', 'nodoka', 'ichigo',
                       'sawa-chan', 'ton-chan', 'azunyan', 'mugi',
                       'mio'], actual)
Ejemplo n.º 5
0
 def test__enough_stuffs(self):
     redis = get_redis()
     redis.zadd(KARMA_KEY_NAME, 100, 'beer')
     redis.zadd(KARMA_KEY_NAME, 99, 'sake')
     redis.zadd(KARMA_KEY_NAME, 98, 'chu-hai')
     redis.zadd(KARMA_KEY_NAME, 97, 'shochu')
     redis.zadd(KARMA_KEY_NAME, 96, 'whiskey')
     redis.zadd(KARMA_KEY_NAME, 95, 'gin')
     redis.zadd(KARMA_KEY_NAME, 94, 'rum')
     redis.zadd(KARMA_KEY_NAME, 93, 'tequila')
     redis.zadd(KARMA_KEY_NAME, 92, 'brandy')
     redis.zadd(KARMA_KEY_NAME, 91, 'wine')
     redis.zadd(KARMA_KEY_NAME, 90, 'grappa')
     actual = self._callFUT()
     self.assertEqual(['grappa', 'wine', 'brandy', 'tequila',
                       'rum', 'gin', 'whiskey', 'shochu', 'chu-hai',
                       'sake'], actual)
Ejemplo n.º 6
0
 def test__spam(self):
     get_redis().set('iplimitation__192.168.1.1', 100)
     actual = self._callFUT('192.168.1.1', 100, -1)
     self.assertFalse(actual)
     self.assertEqual(b'100', get_redis().get('iplimitation__192.168.1.1'))
Ejemplo n.º 7
0
 def test__regular_visitor(self):
     get_redis().set('iplimitation__192.168.1.1', 99)
     actual = self._callFUT('192.168.1.1', 100, -1)
     self.assertTrue(actual)
     self.assertEqual(b'100', get_redis().get('iplimitation__192.168.1.1'))
Ejemplo n.º 8
0
 def test__first_visitor(self):
     actual = self._callFUT('192.168.1.1', 100, -1)
     self.assertTrue(actual)
     self.assertIsNone(get_redis().get('iplimitation__192.168.1.1'))
Ejemplo n.º 9
0
 def tearDown(self):
     get_redis().flushall()
Ejemplo n.º 10
0
def get_karma(stuff):
    karma = get_redis().zscore(KARMA_KEY_NAME, stuff)
    return int(karma) if karma else 0
Ejemplo n.º 11
0
def get_worst_stuffs():
    return [r.decode() for r in reversed(get_redis().zrevrange(KARMA_KEY_NAME, -10, -1))]
Ejemplo n.º 12
0
def get_best_stuffs():
    return [r.decode() for r in get_redis().zrevrange(KARMA_KEY_NAME, 0, 9)]
Ejemplo n.º 13
0
def dec_karma(stuff):
    return int(get_redis().zincrby(KARMA_KEY_NAME, stuff, amount=-1))
Ejemplo n.º 14
0
def inc_karma(stuff):
    return int(get_redis().zincrby(KARMA_KEY_NAME, stuff))
Ejemplo n.º 15
0
 def tearDown(self):
     from karmaid.redisio import get_redis
     get_redis().flushall()
Ejemplo n.º 16
0
 def test__karma_existed(self):
     get_redis().zadd(KARMA_KEY_NAME, 3, 'RitsuTainaka')
     actual = self._callFUT('RitsuTainaka')
     self.assertEqual(2, actual)