12345678910111213141516171819202122 |
- # -*- coding: utf-8 -*-
- from __future__ import absolute_import, unicode_literals
- import xmltodict
- from wechatpy.enterprise.events import EVENT_TYPES
- from wechatpy.enterprise.messages import MESSAGE_TYPES
- from wechatpy.messages import UnknownMessage
- from wechatpy.utils import to_text
- def parse_message(xml):
- if not xml:
- return
- message = xmltodict.parse(to_text(xml))['xml']
- message_type = message['MsgType'].lower()
- if message_type == 'event':
- event_type = message['Event'].lower()
- message_class = EVENT_TYPES.get(event_type, UnknownMessage)
- else:
- message_class = MESSAGE_TYPES.get(message_type, UnknownMessage)
- return message_class(message)
|