Skip to content

Commit 89b1acd

Browse files
committed
Fix no qr bug in qrCallback & add no internet warning
1 parent c30ae9a commit 89b1acd

File tree

4 files changed

+18
-3
lines changed

4 files changed

+18
-3
lines changed

itchat/components/login.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@ def login(self, enableCmdQR=False, picDir=None, qrCallback=None,
6464
r = loginCallback()
6565
else:
6666
utils.clear_screen()
67-
os.remove(picDir or config.DEFAULT_QR)
67+
if os.path.exists(picDir or config.DEFAULT_QR):
68+
os.remove(picDir or config.DEFAULT_QR)
6869
logger.info('Login successfully as %s' % self.storageClass.nickName)
6970
self.start_receiving(exitCallback)
7071

itchat/components/register.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
import logging, traceback
1+
import logging, traceback, sys
22
try:
33
import Queue
44
except ImportError:
55
import queue as Queue
66

77
from ..log import set_logging
8+
from ..utils import test_connect
89

910
logger = logging.getLogger('itchat')
1011

@@ -17,6 +18,9 @@ def load_register(core):
1718
def auto_login(self, hotReload=False, statusStorageDir='itchat.pkl',
1819
enableCmdQR=False, picDir=None, qrCallback=None,
1920
loginCallback=None, exitCallback=None):
21+
if not test_connect():
22+
logger.info("You don't have access to internet or wechat domain, so exit.")
23+
sys.exit()
2024
self.useHotReload = hotReload
2125
if hotReload:
2226
if self.load_login_status(statusStorageDir,

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.2.10'
3+
VERSION = '1.2.11'
44
BASE_URL = 'https://login.weixin.qq.com'
55
OS = platform.system() #Windows, Linux, Darwin
66
DIR = os.getcwd()

itchat/utils.py

+10
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
except ImportError:
66
from html.parser import HTMLParser
77

8+
import requests
9+
810
from . import config
911

1012
emojiRegex = re.compile(r'<span class="emoji emoji(.{1,10})"></span>')
@@ -123,3 +125,11 @@ def print_line(msg, oneLine = False):
123125
sys.stdout.write(msg.encode(sys.stdin.encoding or 'utf8', 'replace'
124126
).decode(sys.stdin.encoding or 'utf8', 'replace'))
125127
sys.stdout.flush()
128+
129+
def test_connect(retryTime=5):
130+
for i in range(retryTime):
131+
try:
132+
r = requests.get(config.BASE_URL)
133+
except:
134+
if i == retryTime-1: return False
135+
return True

0 commit comments

Comments
 (0)