use empty avatar in failure
This commit is contained in:
+4
-4
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash -e
|
||||
#!/bin/bash
|
||||
# File: android-interact.sh
|
||||
# Date: Fri Jun 26 10:38:07 2015 +0800
|
||||
# Author: Yuxin Wu <[email protected]>
|
||||
@@ -18,7 +18,7 @@ adb root
|
||||
|
||||
if [[ $1 == "uin" ]]; then
|
||||
adb pull $MM_DIR/shared_prefs/system_config_prefs.xml 2>/dev/null
|
||||
uin=$($GREP 'default_uin' system_config_prefs.xml | $GREP -o 'value="-\?[0-9]*' | cut -c 8-)
|
||||
uin=$($GREP 'default_uin' system_config_prefs.xml | $GREP -o 'value="\-?[0-9]*' | cut -c 8-)
|
||||
[[ -n $uin ]] || {
|
||||
>&2 echo "Failed to get wechat uin. You can try other methods, or report a bug."
|
||||
exit 1
|
||||
@@ -26,7 +26,7 @@ if [[ $1 == "uin" ]]; then
|
||||
rm system_config_prefs.xml
|
||||
echo "Got wechat uin: $uin"
|
||||
elif [[ $1 == "imei" ]]; then
|
||||
imei=$(adb shell dumpsys iphonesubinfo | $GREP 'Device ID' | $GREP -o '[0-9]\+')
|
||||
imei=$(adb shell dumpsys iphonesubinfo | $GREP 'Device ID' | $GREP -o '[0-9]+')
|
||||
[[ -n $imei ]] || {
|
||||
>&2 echo "Failed to get imei. You can try other methods, or report a bug."
|
||||
exit 1
|
||||
@@ -78,7 +78,7 @@ elif [[ $1 == "db" || $1 == "res" ]]; then
|
||||
fi
|
||||
elif [[ $1 == "db-decrypt" ]]; then
|
||||
echo "Getting uin..."
|
||||
$0 uin | tail -n1 | $GREP -o '-\?[0-9]*' | tee /tmp/uin
|
||||
$0 uin | tail -n1 | $GREP -o '\-?[0-9]*' | tee /tmp/uin
|
||||
echo "Getting imei..."
|
||||
$0 imei | tail -n1 | $GREP -o '[0-9]*' | tee /tmp/imei
|
||||
echo "Getting db..."
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ if [ `uname` = 'Darwin' ]; then
|
||||
MD5SUM='md5'
|
||||
else
|
||||
REALPATH='readlink -f'
|
||||
GREP=grep
|
||||
GREP='grep -E'
|
||||
MD5SUM='md5sum'
|
||||
fi
|
||||
|
||||
|
||||
+14
-9
@@ -25,16 +25,21 @@ class AvatarReader(object):
|
||||
filename = os.path.join(dir1, dir2,
|
||||
"user_{}.png.bm".format(filename))
|
||||
|
||||
index_avatar = self.query_index(filename)
|
||||
if index_avatar == -1:
|
||||
logger.warn("Avatar not found for {}".format(username))
|
||||
try:
|
||||
index_avatar = self.query_index(filename)
|
||||
if index_avatar == -1:
|
||||
logger.warn("Avatar not found for {}".format(username))
|
||||
return None
|
||||
else:
|
||||
img = self.read_bm_block(index_avatar)
|
||||
return img
|
||||
except:
|
||||
logger.warn("Failed to retrieve avatar!")
|
||||
return None
|
||||
else:
|
||||
img = self.read_bm_block(index_avatar)
|
||||
return img
|
||||
|
||||
|
||||
def read_bm_block(self, pos):
|
||||
file_idx = pos >> 32
|
||||
file_idx = pos >> 32
|
||||
fname = os.path.join(self.avt_dir,
|
||||
'avatar.block.' + '{:05d}'.format(file_idx))
|
||||
# 16 is unknown prefix
|
||||
@@ -45,8 +50,8 @@ class AvatarReader(object):
|
||||
f.seek(start_pos)
|
||||
size = (96, 96, 3)
|
||||
img = np.zeros(size, dtype='uint8')
|
||||
for i in range(96):
|
||||
for j in range(96):
|
||||
for i in xrange(96):
|
||||
for j in xrange(96):
|
||||
r, g, b, a = map(ord, f.read(4))
|
||||
img[i,j] = (r, g, b)
|
||||
return img
|
||||
|
||||
@@ -19,7 +19,7 @@ class LibChatHelper(object):
|
||||
""" Build LibChat messages from WeChat Msg"""
|
||||
|
||||
""" Types of message whose contents are fully parsed.
|
||||
No need to save extra data for them. """
|
||||
No need to save extra data for them. """
|
||||
FullyParsed = [TYPE_MSG, TYPE_SPEAK, TYPE_EMOJI,
|
||||
TYPE_CUSTOM_EMOJI, TYPE_IMG]
|
||||
|
||||
|
||||
+1
-1
@@ -67,7 +67,7 @@ class WeChatMsg(object):
|
||||
pass
|
||||
return "LOCATION:" + label + " ({},{})".format(loc['x'], loc['y'])
|
||||
elif self.type == TYPE_LINK:
|
||||
pq = PyQuery(self.content_xml_ready, parser='xml')
|
||||
pq = PyQuery(self.content_xml_ready)
|
||||
url = pq('url').text()
|
||||
if not url:
|
||||
title = pq('title').text()
|
||||
|
||||
Reference in New Issue
Block a user