164 lines
3.9 KiB
Python
164 lines
3.9 KiB
Python
# -*- coding: utf-8 -*-
|
|
from __future__ import absolute_import, unicode_literals
|
|
|
|
from wechatpy.fields import IntegerField, BaseField
|
|
from wechatpy import events
|
|
|
|
|
|
EVENT_TYPES = {}
|
|
|
|
|
|
def register_event(event_type):
|
|
def register(cls):
|
|
EVENT_TYPES[event_type] = cls
|
|
return cls
|
|
return register
|
|
|
|
|
|
@register_event('subscribe')
|
|
class SubscribeEvent(events.SubscribeEvent):
|
|
"""
|
|
成员关注事件
|
|
详情请参阅
|
|
http://qydev.weixin.qq.com/wiki/index.php?title=接受事件
|
|
"""
|
|
agent = IntegerField('AgentID', 0)
|
|
|
|
|
|
@register_event('unsubscribe')
|
|
class UnsubscribeEvent(events.UnsubscribeEvent):
|
|
"""
|
|
成员取消关注事件
|
|
详情请参阅
|
|
http://qydev.weixin.qq.com/wiki/index.php?title=接受事件
|
|
"""
|
|
agent = IntegerField('AgentID', 0)
|
|
|
|
|
|
@register_event('click')
|
|
class ClickEvent(events.ClickEvent):
|
|
"""
|
|
点击菜单拉取消息事件
|
|
详情请参阅
|
|
http://qydev.weixin.qq.com/wiki/index.php?title=接受事件
|
|
"""
|
|
agent = IntegerField('AgentID', 0)
|
|
|
|
|
|
@register_event('xml')
|
|
class ViewEvent(events.ViewEvent):
|
|
"""
|
|
点击菜单跳转链接事件
|
|
详情请参阅
|
|
http://qydev.weixin.qq.com/wiki/index.php?title=接受事件
|
|
"""
|
|
agent = IntegerField('AgentID', 0)
|
|
|
|
|
|
@register_event('location')
|
|
class LocationEvent(events.LocationEvent):
|
|
"""
|
|
上报地理位置事件
|
|
详情请参阅
|
|
http://qydev.weixin.qq.com/wiki/index.php?title=接受事件
|
|
"""
|
|
agent = IntegerField('AgentID', 0)
|
|
|
|
|
|
@register_event('scancode_push')
|
|
class ScanCodePushEvent(events.ScanCodePushEvent):
|
|
"""
|
|
扫码推事件的事件
|
|
详情请参阅
|
|
http://qydev.weixin.qq.com/wiki/index.php?title=接受事件
|
|
"""
|
|
agent = IntegerField('AgentID', 0)
|
|
|
|
|
|
@register_event('scancode_waitmsg')
|
|
class ScanCodeWaitMsgEvent(events.ScanCodeWaitMsgEvent):
|
|
"""
|
|
扫码推事件且弹出“消息接收中”提示框的事件
|
|
详情请参阅
|
|
http://qydev.weixin.qq.com/wiki/index.php?title=接受事件
|
|
"""
|
|
agent = IntegerField('AgentID', 0)
|
|
|
|
|
|
@register_event('pic_sysphoto')
|
|
class PicSysPhotoEvent(events.PicSysPhotoEvent):
|
|
"""
|
|
弹出系统拍照发图事件
|
|
详情请参阅
|
|
http://qydev.weixin.qq.com/wiki/index.php?title=接受事件
|
|
"""
|
|
agent = IntegerField('AgentID', 0)
|
|
|
|
|
|
@register_event('pic_photo_or_album')
|
|
class PicPhotoOrAlbumEvent(events.PicPhotoOrAlbumEvent):
|
|
"""
|
|
弹出拍照或相册发图事件
|
|
详情请参阅
|
|
http://qydev.weixin.qq.com/wiki/index.php?title=接受事件
|
|
"""
|
|
agent = IntegerField('AgentID', 0)
|
|
|
|
|
|
@register_event('pic_weixin')
|
|
class PicWeChatEvent(events.PicWeChatEvent):
|
|
"""
|
|
弹出微信相册发图器事件
|
|
详情请参阅
|
|
http://qydev.weixin.qq.com/wiki/index.php?title=接受事件
|
|
"""
|
|
agent = IntegerField('AgentID', 0)
|
|
|
|
|
|
@register_event('location_select')
|
|
class LocationSelectEvent(events.LocationSelectEvent):
|
|
"""
|
|
弹出地理位置选择器事件
|
|
详情请参阅
|
|
http://qydev.weixin.qq.com/wiki/index.php?title=接受事件
|
|
"""
|
|
agent = IntegerField('AgentID', 0)
|
|
|
|
|
|
@register_event('enter_agent')
|
|
class EnterAgentEvent(events.BaseEvent):
|
|
"""
|
|
用户进入应用的事件推送
|
|
详情请参阅
|
|
http://qydev.weixin.qq.com/wiki/index.php?title=接受事件
|
|
"""
|
|
agent = IntegerField('AgentID', 0)
|
|
event = 'enter_agent'
|
|
|
|
|
|
@register_event('batch_job_result')
|
|
class BatchJobResultEvent(events.BaseEvent):
|
|
"""
|
|
异步任务完成事件
|
|
详情请参阅
|
|
http://qydev.weixin.qq.com/wiki/index.php?title=接受事件
|
|
"""
|
|
event = 'batch_job_result'
|
|
batch_job = BaseField('BatchJob')
|
|
|
|
@property
|
|
def job_id(self):
|
|
return self.batch_job['JobId']
|
|
|
|
@property
|
|
def job_type(self):
|
|
return self.batch_job['JobType']
|
|
|
|
@property
|
|
def err_code(self):
|
|
return self.batch_job['ErrCode']
|
|
|
|
@property
|
|
def err_msg(self):
|
|
return self.batch_job['ErrMsg']
|