avoid assertion for type 49 (close #52)
This commit is contained in:
+12
-10
@@ -6,7 +6,7 @@ TYPE_NAMECARD = 42
|
||||
TYPE_VIDEO_FILE = 43
|
||||
TYPE_EMOJI = 47
|
||||
TYPE_LOCATION = 48
|
||||
TYPE_LINK = 49 # link share OR file from web
|
||||
TYPE_LINK = 49 # link share OR file from web, see https://github.com/ppwwyyxx/wechat-dump/issues/52
|
||||
TYPE_VOIP = 50
|
||||
TYPE_WX_VIDEO = 62 # video took by wechat
|
||||
TYPE_SYSTEM = 10000
|
||||
@@ -60,11 +60,13 @@ class WeChatMsg(object):
|
||||
pq = PyQuery(self.content_xml_ready)
|
||||
url = pq('url').text()
|
||||
if not url:
|
||||
# TODO: see https://github.com/ppwwyyxx/wechat-dump/issues/52 for
|
||||
# more logic to implement
|
||||
title = pq('title').text()
|
||||
assert title, \
|
||||
u"No title or url found in TYPE_LINK: {}".format(self.content)
|
||||
return u"FILE:{}".format(title)
|
||||
return u"URL:{}".format(url)
|
||||
if title: # may not be correct
|
||||
return "FILE:{}".format(title)
|
||||
return "NOT IMPLEMENTED: " + self.content_xml_ready
|
||||
return "URL:{}".format(url)
|
||||
elif self.type == TYPE_NAMECARD:
|
||||
pq = PyQuery(self.content_xml_ready, parser='xml')
|
||||
msg = pq('msg').attr
|
||||
@@ -73,7 +75,7 @@ class WeChatMsg(object):
|
||||
name = msg['alias']
|
||||
if not name:
|
||||
name = ""
|
||||
return u"NAMECARD: {}".format(self.content_xml_ready)
|
||||
return "NAMECARD: {}".format(self.content_xml_ready)
|
||||
elif self.type == TYPE_APP_MSG:
|
||||
pq = PyQuery(self.content_xml_ready, parser='xml')
|
||||
return pq('title').text()
|
||||
@@ -94,20 +96,20 @@ class WeChatMsg(object):
|
||||
for event, elem in ET.iterparse(data_to_parse, events=('end',)):
|
||||
if elem.tag == 'sendertitle':
|
||||
title = elem.text
|
||||
return u"[RED ENVELOPE]\n{}".format(title)
|
||||
return "[RED ENVELOPE]\n{}".format(title)
|
||||
except:
|
||||
pass
|
||||
return u"[RED ENVELOPE]"
|
||||
return "[RED ENVELOPE]"
|
||||
elif self.type == TYPE_MONEY_TRANSFER:
|
||||
data_to_parse = io.BytesIO(self.content.encode('utf-8'))
|
||||
try:
|
||||
for event, elem in ET.iterparse(data_to_parse, events=('end',)):
|
||||
if elem.tag == 'des':
|
||||
title = elem.text
|
||||
return u"[Money Transfer]\n{}".format(title)
|
||||
return "[Money Transfer]\n{}".format(title)
|
||||
except:
|
||||
pass
|
||||
return u"[Money Transfer]"
|
||||
return "[Money Transfer]"
|
||||
else:
|
||||
# TODO replace smiley with text
|
||||
return self.content
|
||||
|
||||
Reference in New Issue
Block a user