示例#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
示例#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)
示例#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)
示例#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)
示例#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)
示例#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'))
示例#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'))
示例#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'))
示例#9
0
 def tearDown(self):
     get_redis().flushall()
示例#10
0
文件: karma.py 项目: hirokiky/karmaid
def get_karma(stuff):
    karma = get_redis().zscore(KARMA_KEY_NAME, stuff)
    return int(karma) if karma else 0
示例#11
0
文件: karma.py 项目: hirokiky/karmaid
def get_worst_stuffs():
    return [r.decode() for r in reversed(get_redis().zrevrange(KARMA_KEY_NAME, -10, -1))]
示例#12
0
文件: karma.py 项目: hirokiky/karmaid
def get_best_stuffs():
    return [r.decode() for r in get_redis().zrevrange(KARMA_KEY_NAME, 0, 9)]
示例#13
0
文件: karma.py 项目: hirokiky/karmaid
def dec_karma(stuff):
    return int(get_redis().zincrby(KARMA_KEY_NAME, stuff, amount=-1))
示例#14
0
文件: karma.py 项目: hirokiky/karmaid
def inc_karma(stuff):
    return int(get_redis().zincrby(KARMA_KEY_NAME, stuff))
示例#15
0
 def tearDown(self):
     from karmaid.redisio import get_redis
     get_redis().flushall()
示例#16
0
 def test__karma_existed(self):
     get_redis().zadd(KARMA_KEY_NAME, 3, 'RitsuTainaka')
     actual = self._callFUT('RitsuTainaka')
     self.assertEqual(2, actual)