优化工单模块,增加企微模块
This commit is contained in:
67
sg_wechat_enterprise/we_api/enterprise/replies.py
Normal file
67
sg_wechat_enterprise/we_api/enterprise/replies.py
Normal file
@@ -0,0 +1,67 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import absolute_import, unicode_literals
|
||||
import six
|
||||
|
||||
from wechatpy import replies
|
||||
from wechatpy.fields import IntegerField
|
||||
|
||||
|
||||
REPLY_TYPES = {}
|
||||
|
||||
|
||||
def register_reply(reply_type):
|
||||
def register(cls):
|
||||
REPLY_TYPES[reply_type] = cls
|
||||
return cls
|
||||
return register
|
||||
|
||||
|
||||
@register_reply('text')
|
||||
class TextReply(replies.TextReply):
|
||||
agent = IntegerField('AgentID', 0)
|
||||
|
||||
|
||||
@register_reply('image')
|
||||
class ImageReply(replies.ImageReply):
|
||||
agent = IntegerField('AgentID', 0)
|
||||
|
||||
|
||||
@register_reply('voice')
|
||||
class VoiceReply(replies.VoiceReply):
|
||||
agent = IntegerField('AgentID', 0)
|
||||
|
||||
|
||||
@register_reply('video')
|
||||
class VideoReply(replies.VideoReply):
|
||||
agent = IntegerField('AgentID', 0)
|
||||
|
||||
|
||||
@register_reply('news')
|
||||
class ArticlesReply(replies.ArticlesReply):
|
||||
agent = IntegerField('AgentID', 0)
|
||||
|
||||
|
||||
def create_reply(reply, message=None, render=False):
|
||||
r = None
|
||||
if isinstance(reply, replies.BaseReply):
|
||||
r = reply
|
||||
if message:
|
||||
r.source = message.target
|
||||
r.target = message.source
|
||||
r.agent = message.agent
|
||||
elif isinstance(reply, six.string_types):
|
||||
r = TextReply(
|
||||
message=message,
|
||||
content=reply
|
||||
)
|
||||
elif isinstance(reply, (tuple, list)):
|
||||
if len(reply) > 10:
|
||||
raise AttributeError("Can't add more than 10 articles"
|
||||
" in an ArticlesReply")
|
||||
r = ArticlesReply(
|
||||
message=message,
|
||||
articles=reply
|
||||
)
|
||||
if r and render:
|
||||
return r.render()
|
||||
return r
|
||||
Reference in New Issue
Block a user