Esempio n. 1
0
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()
Esempio n. 2
0
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()
Esempio n. 3
0
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
Esempio n. 4
0
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
Esempio n. 5
0
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