#!/bin/sh
API_URL="https://4399.nekoinsi.de/api/uf/get"

# 询问是否使用当前目录保存文件
printf "是否在当前目录生成账号密码列表txt文件？(y/n)："
read choice

# 定义文件名
txt_name="4399小号账号密码.txt"
# 选择n则不写入文件
if [ "$choice" != "y" ] && [ "$choice" != "Y" ];then
    txt_name=""
fi

printf "请输入获取个数："
read req_num

i=1
while [ $i -le $req_num ]
do
    echo "===== 正在获取第 $i 个账号 ====="
    res=$(curl -s -m 10 -H "x-ciallo: 1c1760b3-c9b9-40e0-8350-5a7c8a6bc940" "$API_URL")

    # 检测错误码：如果code为-429，则提示并退出循环
    error_code=$(echo "$res" | awk -F'"code":' '{print $2}' | awk -F',' '{print $1}')
    if [ "$error_code" = "-429" ]; then
        echo "获取已达今日限额"
        break  # 遇到频率限制，直接终止循环
    fi

    data_str=$(echo "$res" | awk -F'"data":"' '{print $2}' | awk -F'"' '{print $1}')

    account=$(echo "$data_str" | awk -F'----' '{print $1}')
    pwd=$(echo "$data_str" | awk -F'----' '{print $2}')

    echo "账号："
    echo "$account"
    echo "密码："
    echo "$pwd"

    # 确认文件标识存在就逐行写入data原始串
    if [ -n "$txt_name" ];then
        echo "$data_str" >> "$txt_name"
    fi

    i=$((i+1))
done

# 提示结束
if [ -n "$txt_name" ];then
    echo -e "\n已全部获取完成，数据保存至：$txt_name"
else
    echo -e "\n获取完成，未保存本地文件"
fi
