diff --git a/host.py b/host.py index 717fd9e..df031d5 100644 --- a/host.py +++ b/host.py @@ -72,47 +72,83 @@ def ticket(): userId = int(userId) timestamp = int(time.time()) charge_data = charge(userId) - if charge_data['userChargeList'][2]['stock'] == 0: - login_data = login(userId, timestamp) - if login_data['returnCode'] == 102: - returnCode = 403 - status = "403 Forbidden" - info = "Unable to operate. Please refresh QrCode." - log = [] - elif login_data['returnCode'] == 100: - returnCode = 403 - status = "403 Forbidden" - info = "Unable to operate. Probably User has logged in." - log = [] - elif login_data['returnCode'] == 1: - ticket_data = get_ticket(userId) - if ticket_data['returnCode'] == 0: - logout(userId, timestamp) - returnCode = 405 - status = "405 Method Not Allowed" - info = "WARNING: THIS INFO SHOULD NEVER APPEARS. IF YOU SEE THIS WARNING PLEASE CONTACT Telegram@sasakure. Unable to operate. Successfully Logged in. Probably User has had one ticket." - log = {"UserLoginApiStatus": 1, "UserLogoutApiStatus": 1} - elif ticket_data['returnCode'] == 1: - logout(userId, timestamp) - returnCode = 200 - status = "200 OK" - info = "Succeed." - log = {"UserLoginApiStatus": 1, "UpsertUserChargelogStatus": 1, "UserLogoutApiStatus": 1} - else: - returnCode = 500 - status = "500 Internal Server Error" - info = "Unknown Error. Failed in UserLogin" - log = login_data - elif charge_data['userChargeList'][2]['stock'] == 1: - returnCode = 403 - status = "403 Forbidden" - info = "User has had a ticket." - log = [] - else: - returnCode = 500 - status = "500 Internal Server Error" - info = "Unknown Error. Failed in GetUserCharge" - log = charge_data + i = 0 + while i < 10: + try: + if charge_data['userChargeList'][i]['chargeId'] == 6 and charge_data['userChargeList'][i]['stock'] == 0: + login_data = login(userId, timestamp) + if login_data['returnCode'] == 102: + returnCode = 403 + status = "403 Forbidden" + info = "Unable to operate. Please refresh QrCode." + log = [] + break + elif login_data['returnCode'] == 100: + returnCode = 403 + status = "403 Forbidden" + info = "Unable to operate. Probably User has logged in." + log = [] + break + elif login_data['returnCode'] == 1: + ticket_data = get_ticket(userId) + if ticket_data['returnCode'] == 0: + logout(userId, timestamp) + returnCode = 405 + status = "405 Method Not Allowed" + info = "WARNING: THIS INFO SHOULD NEVER APPEARS. IF YOU SEE THIS WARNING PLEASE CONTACT Telegram@sasakure. Unable to operate. Successfully Logged in. Probably User has had one ticket." + log = {"UserLoginApiStatus": 1, "UserLogoutApiStatus": 1} + break + elif ticket_data['returnCode'] == 1: + logout(userId, timestamp) + returnCode = 200 + status = "200 OK" + info = "Succeed." + log = {"UserLoginApiStatus": 1, "UpsertUserChargelogStatus": 1, "UserLogoutApiStatus": 1} + break + elif charge_data['userChargeList'][i]['chargeId'] == 6 and charge_data['userChargeList'][i]['stock'] == 1: + returnCode = 403 + status = "403 Forbidden" + info = "User has had a ticket." + log = [] + break + else: + i = i + 1 + except IndexError: + login_data = login(userId, timestamp) + if login_data['returnCode'] == 102: + returnCode = 403 + status = "403 Forbidden" + info = "Unable to operate. Please refresh QrCode." + log = [] + break + elif login_data['returnCode'] == 100: + returnCode = 403 + status = "403 Forbidden" + info = "Unable to operate. Probably User has logged in." + log = [] + break + elif login_data['returnCode'] == 1: + ticket_data = get_ticket(userId) + if ticket_data['returnCode'] == 0: + logout(userId, timestamp) + returnCode = 405 + status = "405 Method Not Allowed" + info = "WARNING: THIS INFO SHOULD NEVER APPEARS. IF YOU SEE THIS WARNING PLEASE CONTACT Telegram@sasakure. Unable to operate. Successfully Logged in. Probably User has had one ticket." + log = {"UserLoginApiStatus": 1, "UserLogoutApiStatus": 1} + break + elif ticket_data['returnCode'] == 1: + logout(userId, timestamp) + returnCode = 200 + status = "200 OK" + info = "Succeed." + log = {"UserLoginApiStatus": 1, "UpsertUserChargelogStatus": 1, "UserLogoutApiStatus": 1} + break + else: + returnCode = 500 + status = "500 Internal Server Error" + info = "Unknown Error. Failed in UserLogin" + log = login_data + break data = jsonify({"status": status, "timestamp": timestamp, "info": info, "apiName": "ticket", "date": datetime.now(pytz.timezone('Asia/Shanghai')).strftime('%a, %d %b %Y %H:%M:%S GMT+8'), "userId": userId}) return data, returnCode