Files
test/sg_wechat_enterprise/we_api/enterprise/events.py
2024-07-10 15:58:47 +08:00

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']