Skip to content
This repository has been archived by the owner on Jul 4, 2024. It is now read-only.

Commit

Permalink
feat: 第二天9点自动清理限制
Browse files Browse the repository at this point in the history
  • Loading branch information
NahidaLing committed Apr 25, 2024
1 parent 0a962bb commit 7a67008
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 3 deletions.
4 changes: 3 additions & 1 deletion CozeProxy/src/main/java/catx/feitu/CozeProxy/CozeGPT.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down
35 changes: 35 additions & 0 deletions CozeProxy/src/main/java/catx/feitu/CozeProxy/utils/DateUtils.java
Original file line number Diff line number Diff line change
@@ -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);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ public class ProtocolUtils {
public static List<Protocol> getAliveProtocols (List<Protocol> protocols) {
List<Protocol> aliveProtocols = new ArrayList<>();
for (Protocol protocol : protocols) {
if (!protocol.isLimited) {
if (protocol.limitedDate == null || DateUtils.isBeforeNineAMNextDay(protocol.limitedDate,9)) {
aliveProtocols.add(protocol);
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
}

0 comments on commit 7a67008

Please sign in to comment.