diff --git a/lib/parser.py b/lib/parser.py index 4d8c736..7fd6c0a 100644 --- a/lib/parser.py +++ b/lib/parser.py @@ -1,7 +1,7 @@ #!/usr/bin/env python2 # -*- coding: UTF-8 -*- # File: parser.py -# Date: Mon Dec 22 09:45:35 2014 +0800 +# Date: Mon Dec 22 16:50:31 2014 +0800 # Author: Yuxin Wu import sqlite3 @@ -58,9 +58,8 @@ SELECT {} FROM message msg = WeChatMsg(row) if not WeChatMsg.filter_type(msg.type): self.msgs_by_talker[msg.talker].append(msg) - self.msgs_by_talker = dict([ - (self.contacts[k], sorted(v, key=lambda x: x.createTime)) - for k, v in self.msgs_by_talker.iteritems()]) + 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(): for msg in v: msg.talker_name = ensure_unicode(k) @@ -75,8 +74,8 @@ SELECT {} FROM message def _parse_imginfo(self): imginfo_q = self.cc.execute("""SELECT msgSvrId, bigImgPath FROM ImgInfo2""") - self.imginfo = dict([(k, v) for (k, v) in imginfo_q - if not v.startswith('SERVERID://')]) + self.imginfo = {k: v for (k, v) in imginfo_q + if not v.startswith('SERVERID://')} logger.info("Found {} big images records.".format(len(self.imginfo))) def _find_msg_by_type(self, msgs=None): diff --git a/lib/render.py b/lib/render.py index 4dc022b..7305117 100644 --- a/lib/render.py +++ b/lib/render.py @@ -1,7 +1,7 @@ #!/usr/bin/env python2 # -*- coding: UTF-8 -*- # File: render.py -# Date: Mon Dec 22 09:49:12 2014 +0800 +# Date: Mon Dec 22 16:52:48 2014 +0800 # Author: Yuxin Wu import os @@ -27,9 +27,8 @@ TEMPLATES_FILES = {TYPE_MSG: "TP_MSG", TYPE_SPEAK: "TP_SPEAK", TYPE_EMOJI: "TP_EMOJI", TYPE_LINK: "TP_MSG"} -TEMPLATES = dict([(k, ensure_unicode(open(os.path.join( - LIB_PATH, 'static/{}.html'.format(v))).read())) - for k, v in TEMPLATES_FILES.iteritems()]) +TEMPLATES = {k: ensure_unicode(open(os.path.join(LIB_PATH, 'static/{}.html'.format(v))).read()) + for k, v in TEMPLATES_FILES.iteritems()} class HTMLRender(object): def __init__(self, parser, res=None): @@ -108,7 +107,7 @@ class HTMLRender(object): else: group = None emoji_img, format = self.res.get_emoji(imgpath, group) - assert emoji_img + #assert emoji_img return template.format(sender_label=sender, emoji_format=format, emoji_img=emoji_img) diff --git a/lib/res.py b/lib/res.py index f289bbd..1547bb3 100644 --- a/lib/res.py +++ b/lib/res.py @@ -1,7 +1,7 @@ #!/usr/bin/env python2 # -*- coding: UTF-8 -*- # File: res.py -# Date: Mon Dec 22 09:48:16 2014 +0800 +# Date: Mon Dec 22 16:52:56 2014 +0800 # Author: Yuxin Wu import glob @@ -158,7 +158,9 @@ class Resource(object): # annimation candidates = [k for k in candidates if not re.match('.*_[0-9]+$', k)] # only one file is the gif in need, others are frames and cover - assert len(candidates) == 1 + if len(candidates) == 0: + # TODO stitch frames to gif + return None, None if not candidates: return None, None fname = candidates[0] @@ -166,6 +168,6 @@ class Resource(object): def get_internal_emoji(self, fname): f = os.path.join(INTERNAL_EMOJI_DIR, fname) - return Resource.get_file_b64(fname), imghdr.what(fname) + return Resource.get_file_b64(f), imghdr.what(f) diff --git a/lib/smiley.py b/lib/smiley.py index ae84f98..5881b5d 100755 --- a/lib/smiley.py +++ b/lib/smiley.py @@ -1,7 +1,7 @@ #!/usr/bin/env python2 # -*- coding: UTF-8 -*- # File: smiley.py -# Date: Sun Dec 21 23:41:14 2014 +0800 +# Date: Mon Dec 22 16:50:15 2014 +0800 # Author: Yuxin Wu import os @@ -29,17 +29,16 @@ class SmileyProvider(object): # some extra smiley from javascript on wx.qq.com extra_smiley = json.load(open(TENCENT_EXTRASMILEY_FILE)) - extra_smiley = dict([(u'[' + k + u']', v) for k, v in - extra_smiley.iteritems()]) + extra_smiley = {u'[' + k + u']': v for k, v in + extra_smiley.iteritems()} self.tencent_smiley.update(extra_smiley) # 1f35c -> "\ue340" #self.unicode_smiley_code = gUnicodeCodeMap # u'\U0001f35c' -> "e340" - self.unicode_smiley = dict([(unichr(int(k, 16)), hex(ord(v))[2:]) - for k, v in - json.load(open(UNICODE_SMILEY_FILE)).iteritems()]) + self.unicode_smiley = {unichr(int(k, 16)): hex(ord(v))[2:] for k, v in + json.load(open(UNICODE_SMILEY_FILE)).iteritems()} self.used_smiley_id = set()