Esempio n. 1
0
 def isLogin(self):
     formData = {'_json_att': ''}
     jsonRet = EasyHttp.send(self._urlInfo['checkUser'])
     Log.d('checkUser: %s' % jsonRet)
     return jsonRet['data'][
         'flag'] if jsonRet and 'data' in jsonRet and 'flag' in jsonRet[
             'data'] else False
Esempio n. 2
0
    def verifyCodeAuto(self):
        try:
            response = EasyHttp.send(autoVerifyUrls['12305'])

            if response['result_code'] != '0':
                return None, False
            img_base64 = response['image']
            # result = eval(response.split("(")[1].split(")")[0]).get("image")
            # img_base64 = result

            body = {'base64': img_base64}
            response = EasyHttp.post_custom(autoVerifyUrls['api'],data=json.dumps(body)).json()
            # response = requests.post(autoVerifyUrls['api']['url'],json=body,headers ={
            #     'Content-Type': 'application/json',
            # }).json()

            if response['success'] != True:
                return None, False
            body = {
                'check': response['data']['check'],
                'img_buf': img_base64,
                'logon': 1,
                'type': 'D',
                '=':''
            }
            response = EasyHttp.post_custom(autoVerifyUrls['img_url'],data=json.dumps(body)).json()
            content = str(response['res'])
            results = content.replace('(','').replace(')','')
            Log.d('识别坐标:%s'%results)
        except Exception as e:
            Log.w(e)
            return None, False
        return results, self._captchaAutoCheck(results)
Esempio n. 3
0
 def validUsefulProxy(params):
     """
     检验代理是否可用
     """
     marks = params.split('&&')
     if isinstance(marks[1], bytes):
         marks[1] = marks[1].decode('utf8')
     proxies = {"http": "http://{proxy}".format(proxy=marks[1])}
     flag = None
     try:
         # 超过20秒的代理就不要了
         r = requests.get('http://httpbin.org/ip',
                          proxies=proxies,
                          timeout=10,
                          verify=False)
         if r.status_code == 200 and r.json().get("origin"):
             # logger.info('%s is ok' % proxy)
             flag = True
     except Exception as e:
         flag = False
     if not flag:
         sqlite = Sqlite(address + 'ip.db')
         sqlite.update_data('delete from ip_house where id = {}'.format(
             marks[0]))
         Log.d("删除无效代理:" + marks[1])
Esempio n. 4
0
 def validUsefulProxy(params):
     """
     检验代理是否可用
     """
     marks = params.split('&&')
     if isinstance(marks[1], bytes):
         marks[1] = marks[1].decode('utf8')
     if 'HTTP' == marks[2]:
         proxies = {"http": "http://{proxy}".format(proxy=marks[1])}
     else:
         proxies = {"https": "https://{proxy}".format(proxy=marks[1])}
     flag = None
     try:
         # 超过3秒的代理就不要了
         r = requests.get('http://httpbin.org/ip',
                          proxies=proxies,
                          timeout=3,
                          verify=False)
         if r.status_code == 200 and r.json().get("origin"):
             # print('请求IP:'+r.json().get("origin")+', 代理为:'+json.dumps(proxies))
             Log.v('有效代理:' + marks[1])
             flag = True
     except Exception as e:
         flag = False
     if not flag:
         sqlite = Sqlite(address + 'ip.db')
         sqlite.update_data('delete from ip_house where id = {}'.format(
             marks[0]))
         Log.d("无效代理:" + marks[1])
Esempio n. 5
0
 def wrapper(*args, **kw):
     reslut = False
     msg = ''
     for count in range(3):
         reslut, msg = func(*args, **kw)
         if reslut:
             break
         if count > 1:
             Log.d(msg)
     return reslut, msg
Esempio n. 6
0
def check_re_login():
    response = EasyHttp.post_custom(loginUrls['normal']['conf'])
    if not response or not response.json():
        return False
    resp = response.json()
    login_status = resp.get('data').get('is_login')
    Log.d('登录状态:%s' % login_status)
    if 'Y' != login_status:
        Log.d('登录状态已过期')
        return False
    return True
Esempio n. 7
0
 def wrapper(*args, **kw):
     reslut = False
     msg = ''
     for count in range(4):
         reslut, msg = func(*args, **kw)
         if reslut:
             break
         #目测12306拉取状态最少3次,最多次数暂定为4
         if count > 2:
             Log.d(msg)
     return reslut, msg
Esempio n. 8
0
def super_hero(love):
    Log.v('启动***超级英雄***线程')
    #免费代理ip访问
    GetFreeProxy.getAllProxy(THREAD_POOL_SIZE, THREAD_OR_PROCESS, IS_REFASH_IP_POOL)
    init_ip_pool()

    EasyHttp.load_cookies(COOKIE_SAVE_ADDRESS)
    cookies = {c.name: c.value for c in EasyHttp.get_session().cookies}

    RAIL_EXPIRATION = cookies.get('RAIL_EXPIRATION')
    #(int(RAIL_EXPIRATION)-172800000) < int(time.time()*1000)
    if RAIL_EXPIRATION and int(RAIL_EXPIRATION) < int(time.time()*1000) :
        Log.d('cookie登录已过期,重新请求')
        status,login = do_login()
        if not status:
            love.change_status(True)
            return
    else:
        if not ('uamtk' in cookies and 'RAIL_DEVICEID' in cookies):
            status,login = do_login()
            if not status:
                love.change_status(True)
                return
        else:
            status = check_login()
            if not status:
                love.change_status(True)
                return
            login = Login()
            login._urlInfo = loginUrls['normal']
            Log.v('已登录状态,开始寻找小票票')

    seatTypesCode = SEAT_TYPE_CODE if SEAT_TYPE_CODE else [SEAT_TYPE[key] for key in SEAT_TYPE.keys()]
    passengerTypeCode = PASSENGER_TYPE_CODE if PASSENGER_TYPE_CODE else '1'
    Log.d("订单详情:日期[%s]/区间[%s至%s]%s/车次[%s]/刷票间隔[%ss]"%(TRAIN_DATE,FROM_STATION,TO_STATION,'/出发时间段['+'~'.join(leave_time)+']' if leave_time else '',','.join(TRAINS_NO),QUERY_TICKET_REFERSH_INTERVAL))
    count = 0
    while True:
        try:
            nowTime, status = deadline.do_fix_time()
            if status:
                Log.v('当前时间:%s 处于23点到6点之间,12306处于维护状态,暂不处理下单业务' % nowTime)
                continue

            count += 1
            Log.v('第%d次访问12306网站' % count)
            print('-' * 40)
            flag,ticketDetails = Query.loopQuery(TRAIN_DATE, FROM_STATION, TO_STATION,
                                            TrainUtils.passengerType2Desc(passengerTypeCode),
                                            TRAINS_NO,
                                            seatTypesCode, PASSENGERS_ID,leave_time, POLICY_BILL, QUERY_TICKET_REFERSH_INTERVAL,HEART_BEAT_PER_REQUEST_TIME)
            #非登录状态有票,仅支持自动登录或第三方AI自动登录
            if not flag:
                if SELECT_AUTO_CHECK_CAPTHCA == CAPTCHA_CHECK_METHOD_HAND:
                    Log.e("手动验证模式登录重试失败,请手动重试")
                    return

                status, login = do_login()
                if not status:
                    Log.e("自动验证模式登录重试失败自动登录失败,请手动重试")
                    return

            # Log.v('已为您查询到可用余票:%s' % ticketDetails)
            Log.v('已为您查询到可用余票:[日期:%s,车次:%s,出发站:%s,到达站:%s,出发时间:%s,到达时间:%s]' % (ticketDetails.custom_date,ticketDetails.trainNo,ticketDetails.fromStation,ticketDetails.toStation,ticketDetails.leaveTime,ticketDetails.arriveTime))

            ticketDetails.passengersId = PASSENGERS_ID
            ticketDetails.ticketTypeCodes = passengerTypeCode
            ticketDetails.tourFlag = TOUR_FLAG if TOUR_FLAG else 'dc'
            submit = Submit(ticketDetails)
            seats_default = copy.deepcopy(CHOOSE_SEATS)
            if (ticketDetails.seatType == SEAT_TYPE[SeatName.FIRST_CLASS_SEAT] or ticketDetails.seatType == SEAT_TYPE[SeatName.SECOND_CLASS_SEAT]) and not seats_default:
                results_seat = []
                for i in range(len(PASSENGERS_ID)):
                    random_seat = random.choice(NUM_SEAT)+random.choice(LETTER_SEAT)
                    if random_seat in results_seat:
                        continue
                    results_seat.append(random_seat)
                seats_default.extend(results_seat)

            if submit.submit(seats_default):
                status, contents = submit.showSubmitInfoPretty()
                if status:
                    Log.v("获取车票详情成功")
                    flag = send_mail(mail_user, mailto_list, '12306订票结果通知', mail_host, mail_user, mail_pass, contents)
                    if flag:
                        Log.v("邮件发送成功!")
                    else:
                        Log.v("邮件发送失败!")

                sms_id = send_sms(ACCOUNT_SID,AUTO_TOKEN,FROM_NUM,TO_NUM,'小机机已经成功拿到小票票,请主人记得在30分钟内完成支付!!!')
                if sms_id:
                    Log.v("短信提醒发送成功!")
                else:
                    Log.v("短信提醒发送失败!")
                break
            time.sleep(1)
        except Exception as e:
            Log.w(e)
    login.loginOut()
    Log.d('注销登录成功')
    love.change_status(True)
Esempio n. 9
0
def main():
    #免费代理ip访问
    GetFreeProxy.getAllProxy(THREAD_POOL_SIZE, THREAD_OR_PROCESS,
                             IS_REFASH_IP_POOL)
    init_ip_pool()

    EasyHttp.load_cookies(COOKIE_SAVE_ADDRESS)
    cookies = {c.name: c.value for c in EasyHttp.get_session().cookies}

    RAIL_EXPIRATION = cookies.get('RAIL_EXPIRATION')
    #当前实际显示有效时间为4天,实际访问可下单时间大概为2天(细节可按实际情况调节)
    if 'RAIL_EXPIRATION' in cookies and (int(RAIL_EXPIRATION) -
                                         172800000) < int(time.time() * 1000):
        Log.v('cookie登录已过期,重新请求')
        EasyHttp.removeCookies()
        status, login = do_login()
        if not status:
            return
    else:
        if not ('uamtk' in cookies and 'RAIL_DEVICEID' in cookies):
            status, login = do_login()
            if not status:
                return
        else:
            login = Login()
            Log.v('已登录状态,开始寻找小票票')

    seatTypesCode = SEAT_TYPE_CODE if SEAT_TYPE_CODE else [
        SEAT_TYPE[key] for key in SEAT_TYPE.keys()
    ]
    passengerTypeCode = PASSENGER_TYPE_CODE if PASSENGER_TYPE_CODE else '1'

    count = 0
    while True:
        # 死循环一直查票,直到下单成功
        try:
            nowTime, status = deadline.do_fix_time()
            if status:
                Log.v('当前时间:%s 处于23点到6点之间,12306处于维护状态,暂不处理下单业务' % nowTime)
                continue

            count += 1
            Log.v('第%d次访问12306网站' % count)
            print('-' * 40)
            ticketDetails = Query.loopQuery(
                TRAIN_DATE, FROM_STATION, TO_STATION,
                TrainUtils.passengerType2Desc(passengerTypeCode), TRAINS_NO,
                seatTypesCode, PASSENGERS_ID, POLICY_BILL,
                QUERY_TICKET_REFERSH_INTERVAL)
            Log.v('已为您查询到可用余票:%s' % ticketDetails)

            ticketDetails.passengersId = PASSENGERS_ID
            ticketDetails.ticketTypeCodes = passengerTypeCode
            ticketDetails.tourFlag = TOUR_FLAG if TOUR_FLAG else 'dc'
            submit = Submit(ticketDetails)
            if submit.submit(CHOOSE_SEATS):
                status, contents = submit.showSubmitInfoPretty()
                if status:
                    flag = send_mail(mail_user, mailto_list, '12306订票结果通知',
                                     mail_host, mail_user, mail_pass, contents)
                    if flag:
                        Log.v("邮件发送成功!")
                    else:
                        Log.v("邮件发送失败!")
                    sms_id = send_sms(ACCOUNT_SID, AUTO_TOKEN, FROM_NUM,
                                      TO_NUM,
                                      '小机机已经成功拿到小票票,请主人记得在30分钟内完成支付!!!')
                    if sms_id:
                        Log.v("短信提醒发送成功!")
                    else:
                        Log.v("短信提醒发送失败!")
                break
            time.sleep(1)
        except Exception as e:
            Log.w(e)
    login.loginOut()
    Log.d('注销登录成功')
Esempio n. 10
0
def main():
    #免费代理ip访问
    GetFreeProxy.getAllProxy(THREAD_POOL_SIZE, THREAD_OR_PROCESS,
                             IS_REFASH_IP_POOL)
    init_ip_pool()

    EasyHttp.load_cookies(COOKIE_SAVE_ADDRESS)
    cookies = {c.name: c.value for c in EasyHttp.get_session().cookies}

    RAIL_EXPIRATION = cookies.get('RAIL_EXPIRATION')
    #(int(RAIL_EXPIRATION)-172800000) < int(time.time()*1000)
    if RAIL_EXPIRATION and int(RAIL_EXPIRATION) < int(time.time() * 1000):
        Log.d('cookie登录已过期,重新请求')
        status, login = do_login()
        if not status:
            return
    else:
        if not ('uamtk' in cookies and 'RAIL_DEVICEID' in cookies):
            status, login = do_login()
            if not status:
                return
        else:
            response = EasyHttp.post_custom(loginUrls['normal']['conf'])
            if not response or not response.json():
                Log.d('登录状态检查失败,重新请求')
                status, login = do_login()
                if not status:
                    return
            resp = response.json()
            login_status = resp.get('data').get('is_login')
            Log.d('登录状态:%s' % login_status)
            if 'Y' != login_status:
                Log.d('登录状态已过期,重新请求')
                status, login = do_login()
                if not status:
                    return
            login = Login()
            login._urlInfo = loginUrls['normal']
            Log.v('已登录状态,开始寻找小票票')

    seatTypesCode = SEAT_TYPE_CODE if SEAT_TYPE_CODE else [
        SEAT_TYPE[key] for key in SEAT_TYPE.keys()
    ]
    passengerTypeCode = PASSENGER_TYPE_CODE if PASSENGER_TYPE_CODE else '1'

    count = 0
    while True:
        # 死循环一直查票,直到下单成功
        try:
            nowTime, status = deadline.do_fix_time()
            if status:
                Log.v('当前时间:%s 处于23点到6点之间,12306处于维护状态,暂不处理下单业务' % nowTime)
                continue

            count += 1
            Log.v('第%d次访问12306网站' % count)
            print('-' * 40)
            ticketDetails = Query.loopQuery(
                TRAIN_DATE, FROM_STATION, TO_STATION,
                TrainUtils.passengerType2Desc(passengerTypeCode), TRAINS_NO,
                seatTypesCode, PASSENGERS_ID, POLICY_BILL,
                QUERY_TICKET_REFERSH_INTERVAL)
            Log.v('已为您查询到可用余票:%s' % ticketDetails)

            ticketDetails.passengersId = PASSENGERS_ID
            ticketDetails.ticketTypeCodes = passengerTypeCode
            ticketDetails.tourFlag = TOUR_FLAG if TOUR_FLAG else 'dc'
            submit = Submit(ticketDetails)
            seats_default = copy.deepcopy(CHOOSE_SEATS)
            if (ticketDetails.seatType == SEAT_TYPE[SeatName.FIRST_CLASS_SEAT]
                    or ticketDetails.seatType
                    == SeatName.SECOND_CLASS_SEAT) and not seats_default:
                results_seat = []
                for i in range(len(PASSENGERS_ID)):
                    random_seat = random.choice(NUM_SEAT) + random.choice(
                        LETTER_SEAT)
                    if random_seat in results_seat:
                        continue
                    results_seat.append(random_seat)
                seats_default.extend(results_seat)

            if submit.submit(seats_default):
                status, contents = submit.showSubmitInfoPretty()
                if status:
                    flag = send_mail(mail_user, mailto_list, '12306订票结果通知',
                                     mail_host, mail_user, mail_pass, contents)
                    if flag:
                        Log.v("邮件发送成功!")
                    else:
                        Log.v("邮件发送失败!")
                    sms_id = send_sms(ACCOUNT_SID, AUTO_TOKEN, FROM_NUM,
                                      TO_NUM,
                                      '小机机已经成功拿到小票票,请主人记得在30分钟内完成支付!!!')
                    if sms_id:
                        Log.v("短信提醒发送成功!")
                    else:
                        Log.v("短信提醒发送失败!")
                break
            time.sleep(1)
        except Exception as e:
            Log.w(e)
    login.loginOut()
    Log.d('注销登录成功')
Esempio n. 11
0
def super_hero(love):
    Log.v('启动***超级英雄***线程')
    #免费代理ip访问
    GetFreeProxy.getAllProxy(THREAD_POOL_SIZE, THREAD_OR_PROCESS,
                             IS_REFASH_IP_POOL)
    init_ip_pool()

    EasyHttp.load_cookies(COOKIE_SAVE_ADDRESS)
    cookies = {c.name: c.value for c in EasyHttp.get_session().cookies}

    if 'uamtk' not in cookies or 'RAIL_DEVICEID' not in cookies:
        status, login = do_login(love)
        if not status:
            love.change_offline_status(True)
            return
    else:
        status, _ = check_user_login()
        if not status:
            status, login = do_login(love)
            if not status:
                love.change_offline_status(True)
                return

        Log.v('已登录状态,开始寻找小票票')

    seatTypesCode = SEAT_TYPE_CODE if SEAT_TYPE_CODE else [
        SEAT_TYPE[key] for key in SEAT_TYPE.keys()
    ]
    passengerTypeCode = PASSENGER_TYPE_CODE if PASSENGER_TYPE_CODE else '1'
    Log.d("订单详情:日期[%s]/区间[%s至%s]%s%s/刷票间隔[%ss]" %
          (','.join(TRAIN_DATE), FROM_STATION, TO_STATION,
           '/出发时间段[' + '~'.join(leave_time) + ']' if leave_time else '',
           '/车次[' + ','.join(TRAINS_NO) + ']' if TRAINS_NO else '',
           QUERY_TICKET_REFERSH_INTERVAL))
    count = 0
    while True:
        try:
            nowTime, status = deadline.do_fix_time()
            if status:
                Log.v('当前时间:%s 处于23点到6点之间,12306处于维护状态,暂不处理下单业务' % nowTime)
                continue

            count += 1
            Log.v('第%d次访问12306网站' % count)
            print('-' * 40)
            ticketDetails = Query.loopQuery(
                TRAIN_DATE, FROM_STATION, TO_STATION,
                TrainUtils.passengerType2Desc(passengerTypeCode), TRAINS_NO,
                seatTypesCode, PASSENGERS_ID, leave_time, POLICY_BILL,
                QUERY_TICKET_REFERSH_INTERVAL)
            status = love.get_login_status()
            # status,_ = check_user_login()
            if not status:
                #非登录状态有票,仅支持自动登录或第三方AI自动登录
                if SELECT_AUTO_CHECK_CAPTHCA == CAPTCHA_CHECK_METHOD_HAND:
                    Log.e("手动模式登录状态已过期,请手动重试...")

                status, login = do_login(love)
                if not status:
                    Log.e("登录状态已过期,重试登录失败")
                    love.change_offline_status(True)
                    return

            # Log.v('已为您查询到可用余票:%s' % ticketDetails)
            Log.v('已为您查询到可用余票:[日期:%s,车次:%s,出发站:%s,到达站:%s,出发时间:%s,到达时间:%s]' %
                  (ticketDetails.custom_date, ticketDetails.trainNo,
                   ticketDetails.fromStation, ticketDetails.toStation,
                   ticketDetails.leaveTime, ticketDetails.arriveTime))

            ticketDetails.passengersId = PASSENGERS_ID
            ticketDetails.ticketTypeCodes = passengerTypeCode
            ticketDetails.tourFlag = TOUR_FLAG if TOUR_FLAG else 'dc'
            submit = Submit(ticketDetails)
            seats_default = copy.deepcopy(CHOOSE_SEATS)
            if submit.submit(seats_default):
                status, contents = submit.showSubmitInfoPretty()
                if status:
                    Log.v("获取车票详情成功")
                    flag = send_mail(mail_user, mailto_list, '12306订票结果通知',
                                     mail_host, mail_user, mail_pass, contents)
                    if flag:
                        Log.v("邮件发送成功!")
                    else:
                        Log.v("邮件发送失败!")

                sms_id = send_sms(ACCOUNT_SID, AUTO_TOKEN, FROM_NUM, TO_NUM,
                                  '小机机已经成功拿到小票票,请主人记得在30分钟内完成支付!!!')
                if sms_id:
                    Log.v("短信提醒发送成功!")
                else:
                    Log.v("短信提醒发送失败!")
                break
            time.sleep(1)
        except Exception as e:
            Log.w(e)
    login.loginOut()
    Log.d('注销登录成功')
    love.change_offline_status(True)
Esempio n. 12
0
def main():
    eHttp.load_cookies(COOKIE_SAVE_ADDRESS)
    cookies = {c.name: c.value for c in eHttp.get_session().cookies}
    if not ('uamtk' in cookies and 'RAIL_DEVICEID' in cookies):
            status,login = do_login()
            if not status:
                return
    else:
        response = eHttp.post_custom(loginUrls['normal']['conf'])
        if not response or not response.json():
            Log.d('登录状态检查失败,重新请求')
            status, login = do_login()
            if not status:
                return
        resp = response.json()
        login_status = resp.get('data').get('is_login')
        login_name = resp.get('data').get('name')
        Log.d('登录状态:%s'%login_status)
        if 'Y' != login_status:
            Log.d('登录状态已过期,重新请求')
            status, login = do_login()
            if not status:
                return
        login = Login()
        login._urlInfo = loginUrls['normal']
        if login_name is not None:
            Log.v(login_name + ': 已登录状态,开始寻找车票')

    count = 0
    while True:
        # 死循环查票直到下单成功
        try:
            nowTime, status = do_fix_time()
            if status:
                Log.v('当前时间:%s 处于23点到6点之间,12306处于维护状态,暂不处理下单业务' % nowTime)
                continue
            count += 1
            Log.v('\n第%d次访问12306网站' % count)
            print('-' * 40)
            ticketDetails = Query.loopQuery(TRAIN_DATE, FROM_STATION, TO_STATION,
                                            passengerType2Desc(PASSENGER_TYPE_CODE),
                                            TRAINS_NO, SEAT_TYPE_CODE, PASSENGERS_ID, 
                                            POLICY_BILL, QUERY_TICKET_REFERSH_INTERVAL)
            Log.v('已为您查询到可用余票:%s' % ticketDetails)
            ticketDetails.passengersId = PASSENGERS_ID
            ticketDetails.ticketTypeCodes = PASSENGER_TYPE_CODE
            ticketDetails.tourFlag = TOUR_FLAG
            submit = Submit(ticketDetails)
            seats_default = copy.deepcopy(CHOOSE_SEATS)
            if (ticketDetails.seatType == SEAT_TYPE[SeatName.FIRST_CLASS_SEAT] or ticketDetails.seatType == SEAT_TYPE[SeatName.SECOND_CLASS_SEAT]) and not seats_default:
                results_seat = []
                for i in range(len(PASSENGERS_ID)):
                    random_seat = random.choice(NUM_SEAT)+random.choice(LETTER_SEAT)
                    if random_seat in results_seat:
                        continue
                    results_seat.append(random_seat)
                seats_default.extend(results_seat)    
            if submit.submit(seats_default):
                Log.v("您已成功订购火车票!请在30分钟内前往12306官方网站进行支付")
                break
            else:
                Log.v("购票失败,重新请求")
                time.sleep(5)
        except Exception as e:
            Log.w(e)
            time.sleep(5)
Esempio n. 13
0
    seatTypes = input(
        '请输入座位类别(多个以,分隔,默认:所有)%s: ' %
        (['%s:%s' % (seat, code)
          for seat, code in SEAT_TYPE.items()])).strip().split(',')
    seatTypesCode = seatTypes if seatTypes[0] else [
        SEAT_TYPE[key] for key in SEAT_TYPE.keys()
    ]
    passengerTypeCode = input('请输入购票类型(默认:成人):%s:' % ([
        '%s:%s' % (name, code)
        for name, code in PASSENGER_TICKET_TYPE_CODES.items()
    ])).strip() or '1'
    passengersId = input('请输入乘客身份证号(多个以,分隔): ').strip().split(',')
    tourFlag = input('单程:%s,往返:%s(默认%s): ' %
                     (TourFlag.SINGLE, TourFlag.GO_BACK,
                      TourFlag.SINGLE)).strip() or TourFlag.SINGLE
    Log.d('出发日期: %s,座位类别: %s,乘客类型: %s,车票类型: %s' %
          (trainDate, seatTypesCode, passengerTypeCode, tourFlag))

    session = requests.session()

    login = Login(session)
    for count in range(1, 10, 1):
        Log.v('[%d]正在进行登录...' % count)
        result, msg = login.login(userName, userPwd, type=(count - 1) % 2)
        if Utils.check(result, msg):
            break
        Log.w('登录失败,正在重新进行登录...')
    if not Utils.check(login.isLogin(), '登录失败,程序退出!'):
        exit(-1)
    Log.v('%s,登录成功' % msg)
    ticketDetails = Query.loopQuery(
        session, trainDate, fromStation, toStation,
Esempio n. 14
0
 def isLogin(self):
     formData = {"_json_att": ""}
     jsonRet = EasyHttp.send(self._urlInfo["checkUser"])
     Log.d("checkUser: %s" % jsonRet)
     return (jsonRet["data"]["flag"] if jsonRet and "data" in jsonRet
             and "flag" in jsonRet["data"] else False)