class MyWechat(object): """ my wechat platform """ def __init__(self, username, password, cookiePath='/tmp/cook_wexin.zoo'): """ init wechat object """ self.__user = username self.__pass = password self.__token = '' self.__cookies = '' self.__cookiePath = cookiePath def __password_login(self): """ login 后生成缓存文件, 以用户和密码的形式登陆 """ self.__wechat = WechatExt(username=self.__user, password=self.__pass, login=False) try: self.__wechat.login() except NeedLoginError: print "your need to retry login." with open(self.__cookiePath, 'w') as f: json.dump(self.__wechat.get_token_cookies(), f) def __token_login(self): """ 载入缓存 cookie 和 token的文件, 以token的形式登陆 """ with open(self.__cookiePath, 'r') as f: cookie = json.load(f) self.__cookies = cookie['cookies'] self.__token = cookie['token'] self.__wechat = WechatExt(username=self.__user, password=self.__pass, token=self.__token, cookies=self.__cookies, login=False) def login(self): """ 执行login() 可以有效应对可能出现的验证码问题。 """ if not os.path.exists(self.__cookiePath): self.__password_login() else: self.__token_login() try: self.__wechat.get_group_list() except NeedLoginError, e: self.__password_login()
class MyWechat(object): """ my wechat platform """ def __init__(self, username, password, cookiePath='/tmp/cook_wexin.zoo'): """ init wechat object """ self.__user = username self.__pass = password self.__token = '' self.__cookies = '' self.__cookiePath = cookiePath def __password_login(self): """ login 后生成缓存文件, 以用户和密码的形式登陆 """ self.__wechat = WechatExt(username=self.__user, password=self.__pass, login=False) try: self.__wechat.login() except NeedLoginError: print "your need to retry login." with open(self.__cookiePath, 'w') as f: json.dump(self.__wechat.get_token_cookies(), f) def __token_login(self): """ 载入缓存 cookie 和 token的文件, 以token的形式登陆 """ with open(self.__cookiePath, 'r') as f: cookie = json.load(f) self.__cookies = cookie['cookies'] self.__token = cookie['token'] self.__wechat = WechatExt(username=self.__user, password=self.__pass, token=self.__token, cookies=self.__cookies, login=False) def login(self): """ 执行login() 可以有效应对可能出现的验证码问题。 """ if not os.path.exists(self.__cookiePath): self.__password_login() else: self.__token_login() try: self.__wechat.get_group_list() except NeedLoginError, e: self.__password_login()
def login_http(username, password): wechat = WechatExt(username, password) wechat.login() if not exists(cookie_dir): makedirs(cookie_dir) fn = join(cookie_dir, 'cookie_{}.html'.format(today())) with open(fn, 'w') as f: json.dump(wechat.get_token_cookies(), f, indent=4) return wechat
def login(username, password): d = r.get(username) if d: log.info('lazy login. use cookie, username={}'.format(username)) return WechatExt(username, password, login=False, **json.loads(d)) else: print username, password wechat = WechatExt(username, password, login=False) wechat.login() log.info('login to wechat server. username={}'.format(username)) r.setex(username, LOGIN_TIMEOUT, json.dumps(wechat.get_token_cookies(), indent=4)) return wechat
def login(username, password): d = r.get(username) if d: log.info('lazy login. use cookie, username={}'.format(username)) return WechatExt(username, password, login=False, **json.loads(d)) else: print username, password wechat = WechatExt(username, password, login=False) wechat.login() log.info('login to wechat server. username={}'.format(username)) r.setex(username, LOGIN_TIMEOUT, json.dumps(wechat.get_token_cookies(), indent=4)) return wechat