Issues (41)

wechatpy/session/memcachedstorage.py (1 issue)

1
# -*- coding: utf-8 -*-
2 10
from __future__ import absolute_import, unicode_literals
3
4 10
from wechatpy.session import SessionStorage
5 10
from wechatpy.utils import to_text
6 10
from wechatpy.utils import json
7
8
9 10 View Code Duplication
class MemcachedStorage(SessionStorage):
0 ignored issues
show
This code seems to be duplicated in your project.
Loading history...
10
11 10
    def __init__(self, mc, prefix='wechatpy'):
12 10
        for method_name in ('get', 'set', 'delete'):
13 10
            assert hasattr(mc, method_name)
14 10
        self.mc = mc
15 10
        self.prefix = prefix
16
17 10
    def key_name(self, key):
18 10
        return '{0}:{1}'.format(self.prefix, key)
19
20 10
    def get(self, key, default=None):
21 10
        key = self.key_name(key)
22 10
        value = self.mc.get(key)
23 10
        if value is None:
24
            return default
25 10
        return json.loads(to_text(value))
26
27 10
    def set(self, key, value, ttl=0):
28 10
        if value is None:
29
            return
30 10
        key = self.key_name(key)
31 10
        value = json.dumps(value)
32 10
        self.mc.set(key, value, ttl)
33
34 10
    def delete(self, key):
35
        key = self.key_name(key)
36
        self.mc.delete(key)
37