123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- # -*- coding: utf-8 -*-
- from __future__ import absolute_import, unicode_literals
- from wechatpy import events
- from wechatpy.fields import BaseField, IntegerField
- 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('view')
- 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']
|