shovestorage.py 823 B

12345678910111213141516171819202122232425262728293031323334
  1. # -*- coding: utf-8 -*-
  2. from __future__ import absolute_import, unicode_literals
  3. from wechatpy.session import SessionStorage
  4. class ShoveStorage(SessionStorage):
  5. def __init__(self, shove, prefix='wechatpy'):
  6. self.shove = shove
  7. self.prefix = prefix
  8. def key_name(self, key):
  9. return '{0}:{1}'.format(self.prefix, key)
  10. def get(self, key, default=None):
  11. key = self.key_name(key)
  12. try:
  13. return self.shove[key]
  14. except KeyError:
  15. return default
  16. def set(self, key, value, ttl=None):
  17. if value is None:
  18. return
  19. key = self.key_name(key)
  20. self.shove[key] = value
  21. def delete(self, key):
  22. key = self.key_name(key)
  23. try:
  24. del self.shove[key]
  25. except KeyError:
  26. pass