Skip to content

Commit

Permalink
feat:每1.5分钟create一次&取消暂时售罄算作有票
Browse files Browse the repository at this point in the history
  • Loading branch information
Hobr committed Jul 7, 2024
1 parent 80f1f9d commit 496c9fc
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 14 deletions.
Binary file modified assest/fsm.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 10 additions & 14 deletions util/Task/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,17 +118,11 @@ def __init__(
)

# 等待余票结束
self.machine.add_transition(
trigger="QueryTicket",
source="等待余票",
dest="获取Token",
conditions=lambda: not self.data.TimestampCheck(timestamp=self.refreshTime, duration=self.refreshInterval),
)
self.machine.add_transition(
trigger="QueryTicket",
source="等待余票",
dest="创建订单",
conditions=lambda: self.queryTicketCode,
conditions=lambda: self.queryTicketCode or not self.data.TimestampCheck(timestamp=self.refreshTime, duration=self.refreshInterval),
)
self.machine.add_transition(
trigger="QueryTicket",
Expand All @@ -148,7 +142,7 @@ def __init__(
trigger="CreateOrder",
source="创建订单",
dest="获取Token",
conditions=lambda: self.createOrderCode in range(100050, 100060) or not self.data.TimestampCheck(timestamp=self.refreshTime, duration=self.refreshInterval),
conditions=lambda: self.createOrderCode in range(100050, 100060),
)
self.machine.add_transition(
trigger="CreateOrder",
Expand All @@ -160,7 +154,9 @@ def __init__(
trigger="CreateOrder",
source="创建订单",
dest="创建订单",
conditions=lambda: self.createOrderCode not in [0, 219, 100009, *range(100050, 100060)] or self.data.TimestampCheck(timestamp=self.api.saleStart, duration=self.goldTime),
conditions=lambda: self.createOrderCode not in [0, 219, 100009, *range(100050, 100060)]
or self.data.TimestampCheck(timestamp=self.api.saleStart, duration=self.goldTime)
or not self.data.TimestampCheck(timestamp=self.refreshTime, duration=self.refreshInterval),
)

# 创建订单状态结束
Expand All @@ -181,9 +177,9 @@ def __init__(
self.slowSleep = 1
# ERR3 Sleep
self.errSleep = 4.96
# 刷新Token间隔
self.refreshInterval = 7.5
# 上次刷新Token时间
# 重试创建订单间隔
self.refreshInterval = 1.5
# 上次重试创建订单时间
self.refreshTime = 0
# 是否跳过Token获取
self.skipToken = False
Expand Down Expand Up @@ -272,7 +268,6 @@ def QueryTokenAction(self) -> None:
# 成功
case 0:
logger.success("【获取Token】Token获取成功!")
self.refreshTime = int(time())

# 验证
case -401:
Expand Down Expand Up @@ -357,7 +352,7 @@ def QueryTicketAction(self) -> None:
"""
logger.info("【获取票数】正在蹲票...")
code, msg, clickable, salenum = self.api.QueryAmount()
self.queryTicketCode = clickable or salenum != 4 # 2: 可售 4: 已售罄 8: 暂时售罄
self.queryTicketCode = clickable or salenum == 2 # 2: 可售 4: 已售罄 8: 暂时售罄

match code:
# 成功
Expand Down Expand Up @@ -393,6 +388,7 @@ def CreateOrderAction(self) -> None:
"""
logger.info("【创建订单】正在尝试创建订单...")
self.createOrderCode, msg = self.api.CreateOrder()
self.refreshTime = int(time())

match self.createOrderCode:
# 成功
Expand Down

0 comments on commit 496c9fc

Please sign in to comment.