Explorar o código

fix when contacts are deleted

ppwwyyxx %!s(int64=10) %!d(string=hai) anos
pai
achega
42ee381c7e
Modificáronse 1 ficheiros con 4 adicións e 3 borrados
  1. 4 3
      wechat/parser.py

+ 4 - 3
wechat/parser.py

@@ -58,10 +58,11 @@ SELECT {} FROM message
             msg = WeChatMsg(row)
             if not WeChatMsg.filter_type(msg.type):
                 self.msgs_by_talker[msg.talker].append(msg)
-            #if msg.type > 10000 or msg.type < 0:
-                #print repr(msg).split('|')[0]
+
+        # It's possible that messages are kept in database after contacts been deleted
+        # TODO handle this with a random contact name
         self.msgs_by_talker = {self.contacts[k]: sorted(v, key=lambda x: x.createTime)
-                           for k, v in self.msgs_by_talker.iteritems()}
+                           for k, v in self.msgs_by_talker.iteritems() if k in self.contacts}
         for k, v in self.msgs_by_talker.iteritems():
             for msg in v:
                 msg.talker_name = ensure_unicode(k)