优化工单模块,增加企微模块

This commit is contained in:
mgw
2024-07-10 15:58:47 +08:00
parent e8512b23e4
commit 6b140fe6dd
134 changed files with 12830 additions and 2 deletions

View File

@@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
class SessionStorage(object):
def get(self, key, default=None):
raise NotImplementedError()
def set(self, key, value, ttl=None):
raise NotImplementedError()
def delete(self, key):
raise NotImplementedError()
def __getitem__(self, key):
self.get(key)
def __setitem__(self, key, value):
self.set(key, value)
def __delitem__(self, key):
self.delete(key)

View File

@@ -0,0 +1,35 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
from wechatpy.session import SessionStorage
from wechatpy.utils import to_text
from wechatpy.utils import json
class MemcachedStorage(SessionStorage):
def __init__(self, mc, prefix='wechatpy'):
for method_name in ('get', 'set', 'delete'):
assert hasattr(mc, method_name)
self.mc = mc
self.prefix = prefix
def key_name(self, key):
return '{0}:{1}'.format(self.prefix, key)
def get(self, key, default=None):
key = self.key_name(key)
value = self.mc.get(key)
if value is None:
return default
return json.loads(to_text(value))
def set(self, key, value, ttl=None):
if value is None:
return
key = self.key_name(key)
value = json.dumps(value)
self.mc.set(key, value)
def delete(self, key):
key = self.key_name(key)
self.mc.delete(key)

View File

@@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
from wechatpy.session import SessionStorage
class MemoryStorage(SessionStorage):
def __init__(self):
self._data = {}
def get(self, key, default=None):
return self._data.get(key, default)
def set(self, key, value, ttl=None):
if value is None:
return
self._data[key] = value
def delete(self, key):
self._data.pop(key, None)

View File

@@ -0,0 +1,35 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
from wechatpy.session import SessionStorage
from wechatpy.utils import to_text
from wechatpy.utils import json
class RedisStorage(SessionStorage):
def __init__(self, redis, prefix='wechatpy'):
for method_name in ('get', 'set', 'delete'):
assert hasattr(redis, method_name)
self.redis = redis
self.prefix = prefix
def key_name(self, key):
return '{0}:{1}'.format(self.prefix, key)
def get(self, key, default=None):
key = self.key_name(key)
value = self.redis.get(key)
if value is None:
return default
return json.loads(to_text(value))
def set(self, key, value, ttl=None):
if value is None:
return
key = self.key_name(key)
value = json.dumps(value)
self.redis.set(key, value, ex=ttl)
def delete(self, key):
key = self.key_name(key)
self.redis.delete(key)

View File

@@ -0,0 +1,34 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
from wechatpy.session import SessionStorage
class ShoveStorage(SessionStorage):
def __init__(self, shove, prefix='wechatpy'):
self.shove = shove
self.prefix = prefix
def key_name(self, key):
return '{0}:{1}'.format(self.prefix, key)
def get(self, key, default=None):
key = self.key_name(key)
try:
return self.shove[key]
except KeyError:
return default
def set(self, key, value, ttl=None):
if value is None:
return
key = self.key_name(key)
self.shove[key] = value
def delete(self, key):
key = self.key_name(key)
try:
del self.shove[key]
except KeyError:
pass