From 83babd150089794c44e41d4765bb3b36b50fd187 Mon Sep 17 00:00:00 2001 From: wlt233 <1486185683@qq.com> Date: Wed, 13 Nov 2024 17:19:35 +0800 Subject: [PATCH] fix bug --- conf.ini | 2 +- cookie.py | 2 ++ ticket.py | 63 ++++++++++++++++++++++++++++++------------------------- 3 files changed, 38 insertions(+), 29 deletions(-) diff --git a/conf.ini b/conf.ini index 866bb11..a7d7bc8 100644 --- a/conf.ini +++ b/conf.ini @@ -5,7 +5,7 @@ interval1 = 5000 interval2 = 500 username = theo.bal.d2.79.8@gmail.com password = Nijigasaki1214 -cookie = ACEUCI=1; SCOUTER=x3r0eu8rdpfvvm; ACEFCID=UID-67344B044C2B3720B8A8FB64; ACEUACS=undefined; _ga=GA1.1.1973599067.1731480324; mxuid=f462236b-7f65-4776-a6de-46dc6715ec2e; cro_uv_ymd=20241113; AUBS2A39876863068=1731480324912546807%7C2%7C1731480324912546807%7C1%7C1731480324325B1COZ6%7C1; TKGLOBAL_SES=AAAAlBK4XWccUeZ6-vNYcvqLYn-5s8PZxWsz_S8eenI564JuHVYul1TOlCXbn1672AMdYTQz-aoHG5CILDQzDbv_FaFYNJaPx0evUQMJkBseJzToYnjfBqK45U-Dd14ZjmnMTYoEstvw5kZAYJ-AdK1CcVWuhLeEA419r5B8ogFCRxsAoPbWbQg-PVxQNcxNksakIXiUgmejbdGvOOkScdu2qMI.A; TKGLOBAL_CHK=AAAA4HhSeftkR-heOlLeUKgH4__rSvzTsZUK_Iu7Q1LrN-3BdTTVuh1gNJZ2hS-1tTzkarglz7X3zq2mS_NgXZwMq5BRtIGGuIkPhabYsMHT8rJy5_FAMwH7hfxrJTC-Gz2hHYtWfLBaLe3fdc4tobuzYwq-Z2UVUhZNwX11XRPFqlqFfrAVXwIZmSH0rGykOKZTj-E2UT6w7QdmvkrwwVN5la_FjC03xjhR2AbCeWiqymZ-YB87cK2xyu1HECLa4FYY6nlVOM7dC-cJqqSnZb61uQT8jOYMWLVrzPuUL0BQ0ucb.tKANqptF2XKMqhII_afhfV9TSbaS0ekNiA6bT0PIryFdIjnfRPGy95Mp82wSx9F68SgN6sU1ZC28v_B68U7jN3SaoMIhECmjPGj9gtP9oBXxGqlZhy2M6iHKUfA_0hJRIeyjpYLBo1Yx9prGTKjk-Wi0CrlrxHO6_z5nLcAoS7O0UPIvkYF5WQRUjd2QxVinhQYLM6keS4S76yzKOnFHce4e3D_0ida4W0xYoKbuthGN0LvFEnqUS3QjlEBMtqvhCKfWwZGLKPekubYGcsj01rYiAFm_UrGKiezb3hXjaYVBo-G4635QBukwpJkSiP-oLZOUL0nok7DY8NozfMvJDw; TKGLOBAL=KnLuIDsQjMq%2FddCjD7YWcikNgnImESNKoadR7mBw7SeCYcVULQm6p5lsc5aiUM9xZs5DX6CdUhT8HdpYStykUCTGmf3Apz61oMUbVpFNfcfUZxO8SNmOW3BChvN7w4j6sE%2BKIQIsR%2BS%2FMpEUmnitXZxw7nPjv0heV2a4J%2BzZB0NAr48czsWVCr8Ka%2FLWQJCPRM6WzB93JSdiK2%2Bh5D%2BCegPoH%2F46kgGL4y0vjnaSWNvOnIIwFB85AzncFjjPnXRUPt0KsID2U%2Bh8FXVALRlI1jbl4FNA2YKkAJuanRsKNTXcH7rlPHc3c97NwQo5Uao9I11Maga%2Fmpk1leD%2BT%2Fg6sle6DX3Z0AKfoPOaJYN7TO5NQQ4UARd5Gk5aj%2FV5FGGMBjbyAUdkdl%2B297%2Fm50WSsUe99IGUazpf3JgUCr9ZHxTDE8iEOnAndCv4Qmr1G105i1%2B%2BeyUJwLHQXRQFY75PiBL7lPVZv6Cgz8iZbX2WhCdTilxcvsePAs0JwB0VjDSZJeyP4NdTzWRBPF3ZlQpy92IumE%2FuPGlk7ysFSwKAVcg0z8rFKMXAQWMU7y53aVhO7mx8NWylzvobRSwqULYBOOJHp2rbKou1ltkDGDcnDVpHDbEwn277w6eP3VRYLUQWGO5bnMfJJSKD%2FaRsppnwpiNRx8H3%2BqQGbZlYtLw%2F210WtLuIe2ByV8vJTGKvXKt46gUprqBOq%2FeDeD2Eb9Zl6oATA77qFgznUj3smczkdQq9q7%2Bo8Cgkpsz3i9zTnCxSDhzbOufDd5zW18D9jc5EnwSsQyCREcabJ%2FQU8lvkpS1OIwCIoggwK%2FwkShZn1iXbOCpE%2Foc1PlATO0KttuxF%2FBCuWy6fq7CIXN7yzuQBmdvVX7EFikhGA348RqPH7gRg3iSiUiXBSSdycm%2FzbVvJLRFceUZp0iNdPy7zUaaEcEsiFJWL8hOtWmyJl8YCH5tCSgmzZE%2FGT%2FslsrV7RH5rocXgWXr1SPOuhYoxitPLIbaBZOH0uKysJoxn9hmkvUuRIKN7gUJhanBaSkt2fOYiTcSDvEb1QEe%2BZsigkIonWOH7iOnUTEnTjWnbtqAaqMtj1RNdVQG5JStuBf52iyZAFPKM9dqC%2F%2FQFpoV4JUx7xckq8VaXZO7IbvEPJeo5QQa469rRMRWNC864hukAPZ56AA%3D%3D; TKGLOBAL_MASKING_ID="the*************@gmail.com"; TKLINK_CAPTCHA_KEY=01cfff51-f84b-4de8-9334-82f3940cc475; TKLINK_CHK_NO="WPjYvajLGinplpnCYNCq4A=="; _ga_PVZX56STJJ=GS1.1.1731480324.1.1.1731480334.50.0.0; ASBS2A39876863068=1731480324912546807%7C1731480335981116885%7C1731480324912546807%7C0%7Cbookmark; ARBS2A39876863068=httpswwwticketlinkcokrglobalzhreserveplanschedule1740993756bookmark; wcCookieV2=43.198.205.125_T_798900_WC; TKLINK_CHK_KEY="6WI8yRjBwHfdVotNaoaNWI3iCh0Kfn/qHUgx6oaQVDZ8rWxuYhj8mhLhFzmFzB+NBekOJ5/dHh2GdvKBmWO6GQ==" +cookie = ACEUCI=1; SCOUTER=z4goact5cpuv28; ACEFCID=UID-67346B196F8C525AC4D6339C; ACEUACS=undefined; mxuid=51d18e88-4873-485a-95ab-7f8834d42ea0; _ga=GA1.1.46977207.1731488538; cro_uv_ymd=20241113; AUBS2A39876863068=1731488537400286700%7C2%7C1731488537400286700%7C1%7C1731488537298YC4H1S%7C1; TKGLOBAL_SES=AAAAlLtFu9-5ZnitMZqLT4MjVHjXuFbihJ0lSPQ6vtMgqfW_pE2-BZ520K9tSGplJJW-JLPeV9_uxfdpYRrJtPKW8dy4_lQXcLw7Nm9DzSFbAj2R7GjZBfExW0hCecB_0alJeq9eeLda3xxl7PQC7mFGlMP4wRoytOjYXDh_5IfOW3Vcj4nde-ZcOfy0drmkBqQd4XbjVNJDML9s5TPrqCiJEuc.A; TKGLOBAL_CHK=AAAA4XR7i3tbtQehiXXhXAAAa9Zd_f9h5rRBDpSu8fO6ORh522ZU0gpixEh7nxdDoWnv0AOD6rtWGb3RVrIwS7vdiIcxK-s5Kxg6YMvv20BRV4t32CWkNNLtL7FLKGD8gSz7VneYLtVPHnrJgYnCryA_Y3PMJ_dXdafmF0DP_YVSSVUN7U3g1aLdgxewHgUkzk7iVA_k7OmjJph9OW5cxjXltplboKhUt54SK3V3IENhPZ0M7wNVudRSJkhSIHCt5XLO8gbFuBCiOE3Auz0aBnMmWHjRhN2Ry68LQMxN2ukzooK7E4EOC30UsWHiZpATzq7FzQ.IPs161_Abns_fFbMVqjc9miN8o4X1V8odLJ2ESIVQIJ7Dm2Dz2aaIHehQcc3459-3YN96K-odPQPZzVkofhljuaMU35X5UXsK61I3oEOZSOGdJ1U5mIxXawHWQBYLYDcZWjZnYzJkLoIaDFTX9Z-K5A_Qd8KWHOMFR5_MRr-BHaJkJnP_Dgs8Y8raMKUT_2UpGiS6xjcbUqprdzfpjw24YlyrQCcdkRC3-Zi5zChIjmDxQSnEgmw0u2tO823d0zwMBnX-XTEDUo_YS9_FHdqlCgZDI24KjLBMcz2iSNepyyfNk5sjZFnB0HJaEZeF044EQP5zS4BcZZjar_3STVxSA; TKGLOBAL=KnLuIDsQjMq%2FddCjD7YWcikNgnImESNKoadR7mBw7SeCYcVULQm6p5lsc5aiUM9xZs5DX6CdUhT8HdpYStykUCTGmf3Apz61oMUbVpFNfcfUZxO8SNmOW3BChvN7w4j6sE%2BKIQIsR%2BS%2FMpEUmnitXZxw7nPjv0heV2a4J%2BzZB0NAr48czsWVCr8Ka%2FLWQJCPRM6WzB93JSdiK2%2Bh5D%2BCegPoH%2F46kgGL4y0vjnaSWNvOnIIwFB85AzncFjjPnXRUPt0KsID2U%2Bh8FXVALRlI1jbl4FNA2YKkAJuanRsKNTXcH7rlPHc3c97NwQo5Uao9I11Maga%2Fmpk1leD%2BT%2Fg6sle6DX3Z0AKfoPOaJYN7TO5NQQ4UARd5Gk5aj%2FV5FGGMBjbyAUdkdl%2B297%2Fm50WSsR9%2BerIQIOQTr%2B5SHfAaVk4aQ46iibZNH%2BOxISDH1VUFQJ%2BSDIbvo3%2BD8cm8%2BhlqBlVvVtpHq6Y0E%2BY1yzZflgmnbea04F6KRlRVWYr5rlAAMnWLha0%2FXMOOG%2F1Kn30%2BtNIBw%2FF2yA2dpQL3GN9l73fGPYBPnoAX2jKii3iLfO6HsUt8qXz8lj%2Bf%2FRmH3n%2FuY9IrQnA2uMkuewE7Q%2FGmHt7W%2FW5YLYqQ6Ns6gcoOHTfNzmdEHhFbi2olxTY96RDCo48BY3QYs9jO%2FiFb34Cwq%2Feft2OFlBFR5yHlClgGyGgk8WdHlD5DkMVgXzM%2ByGlIbCfAvZxYzHY9jAHo6vRHIPsWTNgBY0an9wSV8Tg1tBmdvX498352sK4lwD7nopRMrg5Sj01Uk3GbQx%2F%2FvTbPl2894rdnihH%2FSm61tisfkCrvpOMRYcPscfXdwH5qj7D3ntRFJ2SOrTdjWFSon3Y5FQEXg9m7P8hP34q3VD4S2%2BrmlLkAFQbnmtcgip%2BN4Gxcx9abLohg9SS5G4gBhTkpPb9TFxsWakEQG8YHGxN13sGtfWfh3rbInQpO7cDOW%2F8%2BOJZCHNeXiYtcWImL3QHK%2Felf3B8PoI2XU8%2Bt2jogZ11pLOCmBoX%2FT5zNU6lYDjMmc%2BnV9sFn45gxoNMhQqPmuV6qPlQ%2FJYMJFxaIn%2FnLtPXX4CWjDjoDSkxHein7ZuAd7YC%2BuUXlL49rdjNtOCU9gqhYv4tU6BT4O4cg5nZ2WAKnYh%2BVV4fk1mX22X2GAN0naw%3D%3D; TKGLOBAL_MASKING_ID="the*************@gmail.com"; TKLINK_CAPTCHA_KEY=fa9663ab-8ea0-43c8-83db-afab8c544209; TKLINK_CHK_NO="clupiqMFH37RYsJFvEIuAQ=="; _ga_PVZX56STJJ=GS1.1.1731488537.1.1.1731488546.51.0.0; ASBS2A39876863068=1731488537400286700%7C1731488547168735040%7C1731488537400286700%7C0%7Cbookmark; ARBS2A39876863068=httpswwwticketlinkcokrglobalzhreserveplanschedule1740993756bookmark; wcCookieV2=103.151.173.102_T_559041_WC; TKLINK_CHK_KEY="/DihM4JRsrX9Uv3CfoGMBBi/LlUA/D9REZ0mWNsxc8Wlb3IZLpEbqCoYg2C5urUlS9d/Tq7otJfKEi6KchbIIw==" [seat] seats = diff --git a/cookie.py b/cookie.py index 6e81d46..333adc4 100644 --- a/cookie.py +++ b/cookie.py @@ -13,6 +13,8 @@ from ocr import DdddOcr # 2024.11.10 | v0.1 # ref: https://www.ticketlink.co.kr/global/zh/product/51390 + + def get_cookie(username, password, headless): try: ocr = DdddOcr(origin_onnx_path="./data/common_old.onnx", show_ad=False) diff --git a/ticket.py b/ticket.py index 34e8db8..75d65b6 100644 --- a/ticket.py +++ b/ticket.py @@ -9,23 +9,23 @@ import time import httpx from loguru import logger -from cookie import get_cookie # type: ignore +from cookie import get_cookie # code by wlt233 | for LoveLive! Series AsiaTour 2024 # 2024.11.12 | v0.2 # ref: https://www.ticketlink.co.kr/global/zh/product/51390 + + # log logger.add("./data/log/{time}.log") - # seat data COOKIE, USERNAME, PASSWORD, HEADLESS, PROXY = "", "", "", "", "" with open("./data/able_d1.json", "r") as f: able_d1 = json.load(f) with open("./data/able_d2.json", "r") as f: able_d2 = json.load(f) - coordinates = [ (1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (2, 6), (2, 7), @@ -45,7 +45,8 @@ for x, y in coordinates: -# web + +# web wrapper async def _async_req(method, url: str, proxy=None, *args, **kwargs): logger.info(f"[async {method}] {url}") # logger.info(f"{args} {kwargs}") @@ -62,7 +63,9 @@ async def async_post_json(url: str, proxy=None, *args, **kwargs): raise e -# soldout + + +# soldout check async def get_sold(): global COOKIE headers = { @@ -183,16 +186,15 @@ async def lock_ticket(day, seats): if resp["success"]: print("\x07") logger.success(f"锁票成功!支付链接:\nhttps://www.ticketlink.co.kr/global/en/reserve/key/{resp['data']}/price") - os.system("pause") - sys.exit(0) + seats.clear() + await asyncio.sleep(450) else: msg = f"锁票失败!msg:{resp['result']['message']}" if "이전에 진행된 예매가 있습니다" in msg: msg += (f" 有正在进行的预售,请访问以下链接初始化。" f"https://www.ticketlink.co.kr/global/en/reserve/plan/schedule/{day_code}?loadPrevious=true") logger.critical(msg) - os.system("pause") - sys.exit(0) + await asyncio.sleep(10) else: logger.error(msg) except: @@ -202,7 +204,7 @@ async def lock_ticket(day, seats): - +# cookie def update_cookie(): global COOKIE, USERNAME, PASSWORD, HEADLESS COOKIE = get_cookie(USERNAME, PASSWORD, HEADLESS) @@ -220,27 +222,32 @@ def update_cookie(): - - +# main loop state machine async def loop(interval1, interval2, seats): - t = time.time() while True: - await search_seats(seats) - if seats[1] or seats[2]: - break + if not (seats[1] or seats[2]): + t = time.time() + while True: + await search_seats(seats) + if seats[1] or seats[2]: + break + else: + logger.error("没有搜索到内场座位...") + if time.time() - t > 1200: + update_cookie() + t = time.time() + else: + await asyncio.sleep(interval1 / 1000) else: - logger.error("没有搜索到内场座位...") - if time.time() - t > 1200: - update_cookie() - t = time.time() - else: - await asyncio.sleep(interval1 / 1000) - - event_loop = asyncio.get_event_loop() - while True: - event_loop.create_task(lock_ticket(1, seats[1])) - event_loop.create_task(lock_ticket(2, seats[2])) - await asyncio.sleep(interval2 / 1000) + event_loop = asyncio.get_event_loop() + while True: + event_loop.create_task(lock_ticket(1, seats[1])) + event_loop.create_task(lock_ticket(2, seats[2])) + if not (seats[1] or seats[2]): + break + else: + await asyncio.sleep(interval2 / 1000) +