Skip to content

Commit 61b19d7

Browse files
committed
Fix isAt, Self bugs in 1.3.0
1 parent 04bcc11 commit 61b19d7

File tree

4 files changed

+22
-8
lines changed

4 files changed

+22
-8
lines changed

itchat/components/contact.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,9 @@ def update_local_chatrooms(core, l):
132132
else:
133133
oldMemberList.append(member)
134134
else:
135-
oldChatroom = templates.wrap_user_dict(chatroom)
136-
core.chatroomList.append(oldChatroom)
135+
core.chatroomList.append(chatroom)
136+
oldChatroom = utils.search_dict_list(
137+
core.chatroomList, 'UserName', chatroom['UserName'])
137138
# delete useless members
138139
if len(chatroom['MemberList']) != len(oldChatroom['MemberList']) and \
139140
chatroom['MemberList']:

itchat/components/messages.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -246,8 +246,8 @@ def produce_group_chat(core, msg):
246246
msg['ActualNickName'] = ''
247247
msg['IsAt'] = False
248248
else:
249-
msg['ActualNickName'] = member['DisplayName'] or member['NickName']
250-
atFlag = '@' + chatroom['Self'].get('DisplayName', core.storageClass.nickName)
249+
msg['ActualNickName'] = member.get('DisplayName', '') or member['NickName']
250+
atFlag = '@' + (chatroom['Self'].get('DisplayName', '') or core.storageClass.nickName)
251251
msg['IsAt'] = (
252252
(atFlag + (u'\u2005' if u'\u2005' in msg['Content'] else ' '))
253253
in msg['Content'] or msg['Content'].endswith(atFlag))

itchat/config.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import os, platform
22

3-
VERSION = '1.3.3'
3+
VERSION = '1.3.4'
44
BASE_URL = 'https://login.weixin.qq.com'
55
OS = platform.system() #Windows, Linux, Darwin
66
DIR = os.getcwd()

itchat/storage/messagequeue.py

+16-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1+
import logging
2+
13
try:
24
import Queue as queue
35
except ImportError:
46
import queue
57

8+
logger = logging.getLogger('itchat')
9+
610
class Queue(queue.Queue):
711
def put(self, message):
8-
if 'IsAt' in message:
9-
message['isAt'] = message['IsAt']
1012
queue.Queue.put(self, Message(message))
1113

1214
class Message(dict):
@@ -17,7 +19,18 @@ def download(self, fileName):
1719
return b''
1820
def __getattr__(self, value):
1921
value = value[0].upper() + value[1:]
20-
return self.get(value, '')
22+
return self[value]
23+
def __getitem__(self, value):
24+
if value in ('isAdmin', 'isAt'):
25+
v = value[0].upper() + value[1:] # ''[1:] == ''
26+
logger.debug('%s is expired in 1.3.0, use %s instead.' % (value, v))
27+
value = v
28+
return super(Message, self).__getitem__(value)
29+
def get(self, v, d=None):
30+
try:
31+
return self[v]
32+
except KeyError:
33+
return d
2134
def __str__(self):
2235
return '{%s}' % ', '.join(
2336
['%s: %s' % (repr(k),repr(v)) for k,v in self.items()])

0 commit comments

Comments
 (0)