Files
shaitoken/filter_token.sh
2025-04-15 05:58:55 +00:00

149 lines
3.9 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# filter_token.sh - CursorTokenFilter交互脚本
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
NC='\033[0m' # 恢复默认颜色
# 工作目录
WORK_DIR="/www/wwwroot/api2.nosqli.com"
LOG_DIR="$WORK_DIR/runtime/log"
DEFAULT_OUTPUT="$WORK_DIR/tokens_$(date +%Y%m%d).csv"
# 确保工作目录存在
cd "$WORK_DIR" || {
echo -e "${RED}错误: 无法进入工作目录 $WORK_DIR${NC}"
exit 1
}
# 如果venv存在则激活
if [ -d "venv" ]; then
source venv/bin/activate
fi
# 显示标题
echo -e "${GREEN}=================================${NC}"
echo -e "${GREEN} Cursor Token 筛选工具 ${NC}"
echo -e "${GREEN}=================================${NC}"
# 选择日期
echo -e "${BLUE}请选择要筛选的日期:${NC}"
echo "1) 今天"
echo "2) 昨天"
echo "3) 前天"
echo "4) 指定日期"
echo "5) 默认(不指定日期)"
read -p "请输入选项 [1-5]: " date_option
case $date_option in
1)
date_param=$(date +%Y%m%d)
echo -e "${GREEN}已选择今天: $date_param${NC}"
;;
2)
date_param=$(date -d "yesterday" +%Y%m%d)
echo -e "${GREEN}已选择昨天: $date_param${NC}"
;;
3)
date_param=$(date -d "2 days ago" +%Y%m%d)
echo -e "${GREEN}已选择前天: $date_param${NC}"
;;
4)
read -p "请输入日期 (格式: YYYYMMDD): " date_param
echo -e "${GREEN}已选择指定日期: $date_param${NC}"
;;
5)
date_param=""
echo -e "${GREEN}使用默认日期${NC}"
;;
*)
echo -e "${RED}无效选项,使用默认日期${NC}"
date_param=""
;;
esac
# 是否仅显示有效Token
echo -e "${BLUE}是否仅显示有效Token?${NC}"
echo "1) 是"
echo "2) 否"
read -p "请输入选项 [1-2]: " valid_option
if [ "$valid_option" = "1" ]; then
valid_param="--valid-only"
echo -e "${GREEN}仅显示有效Token${NC}"
else
valid_param=""
echo -e "${GREEN}显示所有Token${NC}"
fi
# 自定义输出路径
echo -e "${BLUE}是否使用自定义输出路径?${NC}"
echo "1) 是"
echo "2) 否 (使用默认路径: $DEFAULT_OUTPUT)"
read -p "请输入选项 [1-2]: " output_option
if [ "$output_option" = "1" ]; then
read -p "请输入输出CSV文件路径: " output_param
echo -e "${GREEN}使用自定义输出路径: $output_param${NC}"
else
output_param=$DEFAULT_OUTPUT
echo -e "${GREEN}使用默认输出路径: $output_param${NC}"
fi
# 构建命令
if [ -n "$date_param" ]; then
CMD="php think CursorTokenFilter $date_param"
else
CMD="php think CursorTokenFilter"
fi
if [ -n "$valid_param" ]; then
CMD="$CMD $valid_param"
fi
if [ -n "$output_param" ]; then
CMD="$CMD --output=$output_param"
fi
# 询问运行模式
echo -e "${BLUE}请选择运行模式:${NC}"
echo "1) 前台运行"
echo "2) 后台运行"
read -p "请输入选项 [1-2]: " run_mode
# 显示将要执行的命令
echo -e "${YELLOW}即将执行命令: $CMD${NC}"
read -p "按回车键确认执行..." confirm
# 根据运行模式执行命令
if [ "$run_mode" = "2" ]; then
# 后台运行
LOG_FILE="$LOG_DIR/filter_$(date +%Y%m%d_%H%M%S).log"
echo -e "${GREEN}正在后台运行...${NC}"
nohup $CMD > "$LOG_FILE" 2>&1 &
PID=$!
echo $PID > filter.pid
echo -e "${GREEN}服务已在后台启动PID: $PID${NC}"
echo -e "${GREEN}日志文件: $LOG_FILE${NC}"
# 询问是否实时查看日志
echo -e "${BLUE}是否实时查看日志?${NC}"
echo "1) 是"
echo "2) 否"
read -p "请输入选项 [1-2]: " view_log
if [ "$view_log" = "1" ]; then
echo -e "${GREEN}正在查看日志按Ctrl+C退出日志查看...${NC}"
tail -f "$LOG_FILE"
fi
else
# 前台运行
echo -e "${GREEN}正在前台运行...${NC}"
$CMD
echo -e "${GREEN}执行完成${NC}"
fi
echo -e "${GREEN}操作完成!${NC}"