master
wlt233 4 months ago
parent e0ecf31395
commit 83babd1500

@ -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 =

@ -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)

@ -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]))
if not (seats[1] or seats[2]):
break
else:
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]))
await asyncio.sleep(interval2 / 1000)

Loading…
Cancel
Save