diff --git a/yixing/.idea/12306login.iml b/.idea/12306login.iml similarity index 69% rename from yixing/.idea/12306login.iml rename to .idea/12306login.iml index 8cd72c9..774d532 100644 --- a/yixing/.idea/12306login.iml +++ b/.idea/12306login.iml @@ -2,7 +2,7 @@ - + diff --git a/yixing/.idea/codeStyleSettings.xml b/.idea/codeStyleSettings.xml similarity index 100% rename from yixing/.idea/codeStyleSettings.xml rename to .idea/codeStyleSettings.xml diff --git a/yixing/.idea/dictionaries/wenxianping.xml b/.idea/dictionaries/wenxianping.xml similarity index 100% rename from yixing/.idea/dictionaries/wenxianping.xml rename to .idea/dictionaries/wenxianping.xml diff --git a/yixing/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml similarity index 100% rename from yixing/.idea/inspectionProfiles/Project_Default.xml rename to .idea/inspectionProfiles/Project_Default.xml diff --git a/yixing/__init__.py b/agency/__init__.py similarity index 100% rename from yixing/__init__.py rename to agency/__init__.py diff --git a/yixing/agency/agency_tools.py b/agency/agency_tools.py similarity index 100% rename from yixing/agency/agency_tools.py rename to agency/agency_tools.py diff --git a/yixing/agency/proxy_list b/agency/proxy_list similarity index 100% rename from yixing/agency/proxy_list rename to agency/proxy_list diff --git a/yixing/agency/__init__.py b/config/__init__.py similarity index 100% rename from yixing/agency/__init__.py rename to config/__init__.py diff --git a/yixing/config/ticketConf.py b/config/ticketConf.py similarity index 100% rename from yixing/config/ticketConf.py rename to config/ticketConf.py diff --git a/yixing/config/ticket_config.yaml b/config/ticket_config.yaml similarity index 93% rename from yixing/config/ticket_config.yaml rename to config/ticket_config.yaml index 748f536..09ee8ce 100644 --- a/yixing/config/ticket_config.yaml +++ b/config/ticket_config.yaml @@ -21,7 +21,7 @@ #damatu:打码兔账号,用于自动登录 set: - station_date: "2018-02-05" + station_date: "2018-02-06" station_trains: - "G1353" - "G1329" @@ -47,10 +47,10 @@ ticke_peoples: - "梁敏" damatu: - uesr: "" - pwd: "" + uesr: "wenxianping" + pwd: "wen1995" 12306count: - uesr: "@qq.com" + uesr: "931128603@qq.com" pwd: "QWERTY" diff --git a/yixing/config/__init__.py b/damatuCode/__init__.py similarity index 100% rename from yixing/config/__init__.py rename to damatuCode/__init__.py diff --git a/yixing/damatuCode/damatuWeb.py b/damatuCode/damatuWeb.py similarity index 98% rename from yixing/damatuCode/damatuWeb.py rename to damatuCode/damatuWeb.py index b9822ce..9dc7f09 100644 --- a/yixing/damatuCode/damatuWeb.py +++ b/damatuCode/damatuWeb.py @@ -4,7 +4,8 @@ import hashlib import json import base64 import requests -from yixing.myException.balanceException import balanceException + +from myException.balanceException import balanceException def md5str(str): # md5加密字符串 diff --git a/yixing/damatuCode/__init__.py b/init/__init__.py similarity index 100% rename from yixing/damatuCode/__init__.py rename to init/__init__.py diff --git a/yixing/init/login.py b/init/login.py similarity index 97% rename from yixing/init/login.py rename to init/login.py index b0b3408..ebe8efb 100644 --- a/yixing/init/login.py +++ b/init/login.py @@ -4,11 +4,10 @@ import random import json import re from time import sleep -from yixing.config.ticketConf import _get_yaml - -from yixing.damatuCode.damatuWeb import DamatuApi -from yixing.myUrllib import myurllib2 +from config.ticketConf import _get_yaml +from damatuCode.damatuWeb import DamatuApi +from myUrllib import myurllib2 codeimg = 'https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew?module=login&rand=sjrand&%s' % random.random() diff --git a/yixing/init/select_ticket_info.py b/init/select_ticket_info.py similarity index 95% rename from yixing/init/select_ticket_info.py rename to init/select_ticket_info.py index a84bb15..dc587cf 100644 --- a/yixing/init/select_ticket_info.py +++ b/init/select_ticket_info.py @@ -8,11 +8,12 @@ import sys import time from collections import OrderedDict -from yixing.config.ticketConf import _get_yaml -from yixing.myException.PassengerUserException import PassengerUserException -from yixing.myException.ticketConfigException import ticketConfigException -from yixing.myException.ticketIsExitsException import ticketIsExitsException -from yixing.myUrllib import myurllib2 +from config.ticketConf import _get_yaml +from myException.PassengerUserException import PassengerUserException +from myException.ticketConfigException import ticketConfigException +from myException.ticketIsExitsException import ticketIsExitsException +from myException.ticketNumOutException import ticketNumOutException +from myUrllib import myurllib2 reload(sys) sys.setdefaultencoding('utf-8') @@ -399,8 +400,8 @@ class select: if int(ticket) < len(self.user_info): print("当前余票数小于乘车人数,放弃订票") else: - self.checkQueueOrder() - return True + if self.checkQueueOrder(): + return True else: print("正在排队,当前排队人数:" + str(countT) + "当前余票还剩余:" + getQueueCountResult["data"]["ticket"]+ "张") else: @@ -434,7 +435,8 @@ class select: c_data = checkQueueOrderResult["data"] if "data" in checkQueueOrderResult else {} if 'submitStatus' in c_data and c_data['submitStatus']: print("出票成功!") - self.queryOrderWaitTime() + if self.queryOrderWaitTime(): + return True else: if 'errMsg' in c_data and c_data['errMsg']: print("出票失败," + c_data['errMsg'] + "请重新选择。") @@ -470,7 +472,7 @@ class select: orderId = self.queryMyOrderNoComplete() if orderId: print ("恭喜您订票成功,订单号为:{0}, 请立即打开浏览器登录12306,访问‘未完成订单’,在30分钟内完成支付!".format(orderId)) - break + return True else: print("正在排队中,请耐心等待...") elif "msg" in queryOrderWaitTimeResult["data"] and queryOrderWaitTimeResult["data"]["msg"]: @@ -491,9 +493,13 @@ class select: queryMyOrderNoCompleteUrl = "https://kyfw.12306.cn/otn/queryOrder/queryMyOrderNoComplete" data = {"_json_att": None} queryMyOrderNoCompleteResult = json.loads(myurllib2.Post(queryMyOrderNoCompleteUrl, data)) - if "data" in queryMyOrderNoCompleteResult and queryMyOrderNoCompleteResult["data"]: + if "data" in queryMyOrderNoCompleteResult and queryMyOrderNoCompleteResult["data"] and "orderDBList" in queryMyOrderNoCompleteResult["data"] and queryMyOrderNoCompleteResult["data"]["orderDBList"]: orderId = queryMyOrderNoCompleteResult["data"]["orderDBList"][0]["sequence_no"] return orderId + elif "orderCacheDTO" in queryMyOrderNoCompleteResult["data"] and queryMyOrderNoCompleteResult["data"]["orderCacheDTO"]: + if "message" in queryMyOrderNoCompleteResult["data"]["orderCacheDTO"] and queryMyOrderNoCompleteResult["data"]["orderCacheDTO"]["message"]: + print(queryMyOrderNoCompleteResult["data"]["orderCacheDTO"]["message"]["message"]) + raise ticketNumOutException(queryMyOrderNoCompleteResult["data"]["orderCacheDTO"]["message"]["message"]) else: if "message" in queryMyOrderNoCompleteResult and queryMyOrderNoCompleteResult["message"]: print queryMyOrderNoCompleteResult["message"] @@ -532,16 +538,7 @@ class select: if time.strftime('%H:%M:%S', time.localtime(time.time())) > "23:00:00": print "12306休息时间,本程序自动停止,明天早上七点运行" break - set_type = self.submitOrderRequest() - # if set_type: - # if self.check_user(): - # self.submit_station() - # self.getPassengerTicketStr(set_type) - # self.getRepeatSubmitToken() - # self.user_info = self.getPassengerDTOs() - # if self.checkOrderInfo(): - # if self.getQueueCount(): - # break + self.submitOrderRequest() except PassengerUserException as e: print e.message break @@ -551,6 +548,9 @@ class select: except ticketIsExitsException as e: print e.message break + except ticketNumOutException as e: + print e.message + break except ValueError as e: if e.message == "No JSON object could be decoded": print("12306接口无响应,正在重试") diff --git a/yixing/myException/PassengerUserException.py b/myException/PassengerUserException.py similarity index 100% rename from yixing/myException/PassengerUserException.py rename to myException/PassengerUserException.py diff --git a/yixing/init/__init__.py b/myException/__init__.py similarity index 100% rename from yixing/init/__init__.py rename to myException/__init__.py diff --git a/yixing/myException/balanceException.py b/myException/balanceException.py similarity index 100% rename from yixing/myException/balanceException.py rename to myException/balanceException.py diff --git a/yixing/myException/ticketConfigException.py b/myException/ticketConfigException.py similarity index 100% rename from yixing/myException/ticketConfigException.py rename to myException/ticketConfigException.py diff --git a/yixing/myException/ticketIsExitsException.py b/myException/ticketIsExitsException.py similarity index 100% rename from yixing/myException/ticketIsExitsException.py rename to myException/ticketIsExitsException.py diff --git a/yixing/myException/__init__.py b/myUrllib/__init__.py similarity index 100% rename from yixing/myException/__init__.py rename to myUrllib/__init__.py diff --git a/yixing/myUrllib/myurllib2.py b/myUrllib/myurllib2.py similarity index 100% rename from yixing/myUrllib/myurllib2.py rename to myUrllib/myurllib2.py diff --git a/yixing/requirements.txt b/requirements.txt similarity index 100% rename from yixing/requirements.txt rename to requirements.txt diff --git a/yixing/run.py b/run.py similarity index 100% rename from yixing/run.py rename to run.py diff --git a/yixing/station_name.txt b/station_name.txt similarity index 100% rename from yixing/station_name.txt rename to station_name.txt diff --git a/tkcode b/tkcode new file mode 100644 index 0000000..7fa38d5 Binary files /dev/null and b/tkcode differ diff --git a/yixing/myUrllib/__init__.py b/yixing/myUrllib/__init__.py deleted file mode 100644 index e69de29..0000000