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

157 lines
4.3 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
# import_token.sh - CursorTokenImport交互脚本
# 颜色定义
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"
# 确保工作目录存在
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}请选择要导入的Token日期:${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
# 选择筛选条件
echo -e "${BLUE}请选择筛选条件:${NC}"
echo "1) 使用量少于指定次数"
echo "2) 使用率低于指定百分比且剩余至少指定天数"
echo "3) 导入专业版账号"
echo "4) 自定义参数组合"
echo "5) 不使用筛选条件"
read -p "请输入选项 [1-5]: " filter_option
case $filter_option in
1)
read -p "请输入最大使用次数: " max_used
filter_param="--max-used=$max_used"
echo -e "${GREEN}筛选条件: 使用量少于 $max_used${NC}"
;;
2)
read -p "请输入最大使用率(%): " max_usage
read -p "请输入最小剩余天数: " min_days
filter_param="--max-usage=$max_usage --min-days=$min_days"
echo -e "${GREEN}筛选条件: 使用率低于 $max_usage% 且剩余至少 $min_days${NC}"
;;
3)
read -p "请输入最大使用次数: " max_used
filter_param="--source=pro --max-used=$max_used"
echo -e "${GREEN}筛选条件: 专业版账号使用量少于 $max_used${NC}"
;;
4)
echo -e "${YELLOW}请输入自定义参数 (例如: --max-usage=30 --min-days=2)${NC}"
read -p "自定义参数: " filter_param
echo -e "${GREEN}筛选条件: $filter_param${NC}"
;;
5)
filter_param=""
echo -e "${GREEN}不使用筛选条件${NC}"
;;
*)
echo -e "${RED}无效选项,不使用筛选条件${NC}"
filter_param=""
;;
esac
# 构建命令
CMD="php think CursorTokenImport"
if [ -n "$date_param" ]; then
CMD="$CMD $date_param"
fi
if [ -n "$filter_param" ]; then
CMD="$CMD $filter_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/import_$(date +%Y%m%d_%H%M%S).log"
echo -e "${GREEN}正在后台运行...${NC}"
nohup $CMD > "$LOG_FILE" 2>&1 &
PID=$!
echo $PID > import.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}"