1
1
mirror of https://github.com/KenanZhu/AutoLibrary.git synced 2026-06-18 15:33:03 +08:00

Compare commits

...

3 Commits

Author SHA1 Message Date
KenanZhu b24e4f473f fix(LibChecker): chore(LibChecker): introduce a new method to generate more readable output
: add renew checker method for upcoming feature: 'Auto Renew'
2025-11-08 18:34:38 +08:00
KenanZhu 8bb65be0b9 fix(LibChecker): remove the debug print 2025-11-08 18:32:33 +08:00
KenanZhu 631785122b fix(gui.ALConfigWidget): fix the width of web driver path line edit 2025-11-08 18:31:07 +08:00
2 changed files with 45 additions and 7 deletions
+43 -5
View File
@@ -39,6 +39,16 @@ class LibChecker(LibOperator):
pass pass
@staticmethod
def __formatDiffTime(
seconds: float
) -> str:
hours = int(seconds // 3600)
minutes = int(seconds % 3600 // 60)
seconds = int(seconds % 60)
return f"{hours}{minutes}{seconds}"
def __navigateToReserveRecordPage( def __navigateToReserveRecordPage(
self self
@@ -166,7 +176,6 @@ class LibChecker(LibOperator):
for i in range(checked_count, len(reservations)): # the last one is load button for i in range(checked_count, len(reservations)): # the last one is load button
reservation = reservations[i] reservation = reservations[i]
record = self.__decodeReserveRecord(reservation) record = self.__decodeReserveRecord(reservation)
print(record)
if record is None: if record is None:
continue continue
record_date = record["date"] record_date = record["date"]
@@ -243,22 +252,51 @@ class LibChecker(LibOperator):
if time_diff_seconds < -30*60: if time_diff_seconds < -30*60:
self._showTrace( self._showTrace(
f"用户在 {date} 的预约开始时间为 {begin_time}, " f"用户在 {date} 的预约开始时间为 {begin_time}, "
f"距离当前时间还有 {abs(time_diff_seconds)/60:.2f} 分钟, 无法签到" f"距离当前时间还有 {self.__formatDiffTime(abs(time_diff_seconds))}, 无法签到"
) )
return False return False
# before in 30 minutes, can checkin # before in 30 minutes, can checkin
elif -30*60 <= time_diff_seconds < 0: elif -30*60 <= time_diff_seconds < 0:
self._showTrace( self._showTrace(
f"用户在 {date} 的预约开始时间为 {begin_time}, " f"用户在 {date} 的预约开始时间为 {begin_time}, "
f"距离当前时间还有 {abs(time_diff_seconds)/60:.2f} 分钟, 可以签到" f"距离当前时间还有 {self.__formatDiffTime(abs(time_diff_seconds))}, 可以签到"
) )
return True return True
# past less than 30 minutes, can checkin # past less than 30 minutes, can checkin
elif 0 <= time_diff_seconds < 30*60: elif 0 <= time_diff_seconds < 30*60:
self._showTrace( self._showTrace(
f"用户在 {date} 的预约开始时间为 {begin_time}, " f"用户在 {date} 的预约开始时间为 {begin_time}, "
f"当前时间已经 {abs(time_diff_seconds)/60:.2f} 分钟, 可以签到" f"当前时间已经 {self.__formatDiffTime(abs(time_diff_seconds))}, 可以签到"
) )
return True return True
self._showTrace(f"用户在 {date} 没有有效预约记录, 无法签到") self._showTrace(f"用户在 {date} 没有有效预约记录, 无法签到")
return False
def canRenew(
self,
date: str
) -> bool:
# have a using record in the given date
record = self.__getReserveRecord(date, "使用中")
if record is not None:
end_time = record["time"]["end"]
end_time = datetime.strptime(f"{date} {end_time}", "%Y-%m-%d %H:%M")
time_diff = end_time - datetime.now()
time_diff_seconds = time_diff.total_seconds()
# a using record is definitely after the begin time
if abs(time_diff_seconds) < 120*60:
self._showTrace(
f"用户在 {date} 的预约结束时间为 {end_time}, "
f"距离当前时间还有 {self.__formatDiffTime(abs(time_diff_seconds))}, 可以续约"
)
return True
else:
self._showTrace(
f"用户在 {date} 的预约结束时间为 {end_time}, "
f"距离当前时间还有 {self.__formatDiffTime(abs(time_diff_seconds))}, 无法续约"
)
return False
self._showTrace(f"用户在 {date} 没有有效预约记录, 无法续约")
return False return False
+2 -2
View File
@@ -1127,13 +1127,13 @@
<widget class="QLineEdit" name="BrowseBrowserDriverEdit"> <widget class="QLineEdit" name="BrowseBrowserDriverEdit">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>265</width> <width>250</width>
<height>25</height> <height>25</height>
</size> </size>
</property> </property>
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>260</width> <width>300</width>
<height>25</height> <height>25</height>
</size> </size>
</property> </property>