mirror of
https://github.com/liuwons/wxBot.git
synced 2026-10-16 20:50:39 +08:00
热启动还存在一些问题,先不使用
This commit is contained in:
@@ -41,14 +41,14 @@ Web微信协议参考资料:
|
||||
|
||||
[qwx: WeChat Qt frontend 微信Qt前端](https://github.com/xiangzhai/qwx)
|
||||
|
||||
**master-dev 分支为开发版本,用于测试新特性,欢迎使用后提出建议!**
|
||||
**dev 分支为开发版本,用于测试新特性,欢迎使用后提出建议!**
|
||||
|
||||
|
||||
## 1 环境与依赖
|
||||
|
||||
此版本能运行于Python 2及Python 3环境 。
|
||||
|
||||
**wxBot** 用到了Python **jsonpickle**, **requests** , **pypng** , **Pillow** 以及 **pyqrcode** 库。
|
||||
**wxBot** 用到了Python **requests** , **pypng** , **Pillow** 以及 **pyqrcode** 库。
|
||||
|
||||
安装:
|
||||
|
||||
|
||||
@@ -12,7 +12,6 @@ setup(
|
||||
classifiers=[],
|
||||
packages=['wxbot'],
|
||||
install_requires=[
|
||||
'jsonpickle',
|
||||
'Pillow',
|
||||
'pyqrcode',
|
||||
'pypng',
|
||||
|
||||
+2
-53
@@ -3,23 +3,18 @@
|
||||
from __future__ import print_function
|
||||
|
||||
import os
|
||||
import sys
|
||||
import tempfile
|
||||
import traceback
|
||||
import webbrowser
|
||||
|
||||
import binascii
|
||||
import jsonpickle
|
||||
import pyqrcode
|
||||
import requests
|
||||
import mimetypes
|
||||
import json
|
||||
import xml.dom.minidom
|
||||
import urllib
|
||||
import time
|
||||
import re
|
||||
import random
|
||||
from traceback import format_exc
|
||||
from requests.exceptions import ConnectionError, ReadTimeout
|
||||
|
||||
import sys
|
||||
@@ -1149,51 +1144,6 @@ class WXBot:
|
||||
return pm.group(1)
|
||||
return 'unknown'
|
||||
|
||||
def save_to_file(self):
|
||||
with open(os.path.join(self.temp_pwd, 'session_state.json'), 'w') as fp:
|
||||
json.dump({
|
||||
'uuid': self.uuid,
|
||||
'base_uri': self.base_uri,
|
||||
'base_host': self.base_host,
|
||||
'redirect_uri': self.redirect_uri,
|
||||
'uin': self.uin,
|
||||
'sid': self.sid,
|
||||
'skey': self.skey,
|
||||
'pass_ticket': self.pass_ticket,
|
||||
'device_id': self.device_id,
|
||||
'base_request': self.base_request,
|
||||
'session': jsonpickle.encode(self.session),
|
||||
}, fp)
|
||||
|
||||
def load_from_file(self):
|
||||
if not os.path.exists(self.state_file):
|
||||
return False
|
||||
|
||||
try:
|
||||
with open(self.state_file) as fp:
|
||||
state = json.load(fp)
|
||||
self.uuid = state['uuid']
|
||||
self.base_uri = state['base_uri']
|
||||
self.base_host = state['base_host']
|
||||
self.redirect_uri = state['redirect_uri']
|
||||
self.uin = state['uin']
|
||||
self.sid = state['sid']
|
||||
self.skey = state['skey']
|
||||
self.pass_ticket = state['pass_ticket']
|
||||
self.device_id = state['device_id']
|
||||
self.base_request = state['base_request']
|
||||
self.session = jsonpickle.decode(state['session'])
|
||||
except:
|
||||
log.info("Failed to load from local file")
|
||||
return False
|
||||
|
||||
if self.init():
|
||||
log.info('Web WeChat init succeed .')
|
||||
return True
|
||||
else:
|
||||
log.info('Web WeChat init failed')
|
||||
return False
|
||||
|
||||
def login(self):
|
||||
self.get_uuid()
|
||||
self.gen_qr_code(os.path.join(self.temp_pwd,'wxqr.png'))
|
||||
@@ -1212,15 +1162,14 @@ class WXBot:
|
||||
|
||||
if self.init():
|
||||
log.info('Web WeChat init succeed .')
|
||||
self.save_to_file()
|
||||
return True
|
||||
else:
|
||||
log.error('Web WeChat init failed')
|
||||
return False
|
||||
|
||||
def run(self):
|
||||
if not self.load_from_file() and not self.login():
|
||||
log.error('Both recovered login status and fresh login are failed.')
|
||||
if not self.login():
|
||||
log.error('login failed.')
|
||||
return False
|
||||
|
||||
self.status_notify()
|
||||
|
||||
Reference in New Issue
Block a user