diff --git a/CozeProxy/src/main/java/catx/feitu/CozeProxy/CozeGPT.java b/CozeProxy/src/main/java/catx/feitu/CozeProxy/CozeGPT.java index 00a2e11..65a23ed 100644 --- a/CozeProxy/src/main/java/catx/feitu/CozeProxy/CozeGPT.java +++ b/CozeProxy/src/main/java/catx/feitu/CozeProxy/CozeGPT.java @@ -20,6 +20,7 @@ import java.net.Proxy; import java.time.Instant; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Objects; import java.util.concurrent.CopyOnWriteArrayList; @@ -247,11 +248,12 @@ public catx.feitu.CozeProxy.impl.GenerateMessage chat(String Prompts, String con if (Objects.equals(responseMessage.Message, BotResponseStatusCode.TRY_A_BIT_LATER)) continue; if (Objects.equals(responseMessage.Message, BotResponseStatusCode.TRY_TOMORROW)) { - selectedProtocol.isLimited = true; + selectedProtocol.limitedDate = new Date(); protocols.remove(0); } isDone = true; + selectedProtocol.chatCountTotal++; } utils.lock.getLock(conversationID).unlock(); return responseMessage; diff --git a/CozeProxy/src/main/java/catx/feitu/CozeProxy/utils/DateUtils.java b/CozeProxy/src/main/java/catx/feitu/CozeProxy/utils/DateUtils.java new file mode 100644 index 0000000..fd27c2e --- /dev/null +++ b/CozeProxy/src/main/java/catx/feitu/CozeProxy/utils/DateUtils.java @@ -0,0 +1,35 @@ +package catx.feitu.CozeProxy.utils; + +import java.util.Calendar; +import java.util.Date; + +public class DateUtils { + private DateUtils () { } + /** + * 计算时间是否过了相对与计算时间的第二天某点 + * + * @param inputTime 被比较时间 + * @param hour 小时 + * @return true/false + * @author ChatGPT + */ + public static boolean isBeforeNineAMNextDay(Date inputTime, int hour) { + // 设置日历对象为传入时间 + Calendar inputCalendar = Calendar.getInstance(); + inputCalendar.setTime(inputTime); + + // 在传入时间上加上一天,并设置时间为9点整 + inputCalendar.add(Calendar.DAY_OF_MONTH, 1); + inputCalendar.set(Calendar.HOUR_OF_DAY, hour); + inputCalendar.set(Calendar.MINUTE, 0); + inputCalendar.set(Calendar.SECOND, 0); + inputCalendar.set(Calendar.MILLISECOND, 0); + + // 获取设定时间(第二天的9点) + Date nextDayNineAM = inputCalendar.getTime(); + + // 返回当前时间是否在第二天的9点之前的结果 + return new Date().before(nextDayNineAM); + } + +} diff --git a/CozeProxy/src/main/java/catx/feitu/CozeProxy/utils/ProtocolUtils.java b/CozeProxy/src/main/java/catx/feitu/CozeProxy/utils/ProtocolUtils.java index 341aec5..4f10f92 100644 --- a/CozeProxy/src/main/java/catx/feitu/CozeProxy/utils/ProtocolUtils.java +++ b/CozeProxy/src/main/java/catx/feitu/CozeProxy/utils/ProtocolUtils.java @@ -9,7 +9,7 @@ public class ProtocolUtils { public static List getAliveProtocols (List protocols) { List aliveProtocols = new ArrayList<>(); for (Protocol protocol : protocols) { - if (!protocol.isLimited) { + if (protocol.limitedDate == null || DateUtils.isBeforeNineAMNextDay(protocol.limitedDate,9)) { aliveProtocols.add(protocol); } } diff --git a/CozeProxy/src/main/java/catx/feitu/CozeProxy/utils/extensions/Protocol.java b/CozeProxy/src/main/java/catx/feitu/CozeProxy/utils/extensions/Protocol.java index 82cff64..a014fcc 100644 --- a/CozeProxy/src/main/java/catx/feitu/CozeProxy/utils/extensions/Protocol.java +++ b/CozeProxy/src/main/java/catx/feitu/CozeProxy/utils/extensions/Protocol.java @@ -1,6 +1,8 @@ package catx.feitu.CozeProxy.utils.extensions; +import java.util.Date; + public class Protocol extends catx.feitu.CozeProxy.protocol.ProtocolHandle { public int chatCountTotal = 0; - public boolean isLimited = false; + public Date limitedDate; }