diff --git a/script/circle_down.lua b/script/circle_down.lua new file mode 100644 index 0000000..8d3f714 --- /dev/null +++ b/script/circle_down.lua @@ -0,0 +1,83 @@ +-- 定义基础URL +local base_url = "https://www.xxx.com" + +-- 函数:验证输入是否合法 +local function validate_input(input) + local a, b = input:match("^(%d+),(%d+)$") + if a and b then + a = tonumber(a) + b = tonumber(b) + if a <= b then + return a, b + end + end + return nil +end + +-- 函数:拼接URL列表 +local function generate_urls(a, b) + local urls = {} + for i = a, b do + table.insert(urls, base_url .. "/" .. i) + end + return urls +end + +-- 函数:执行URL并处理失败情况 +local function execute_urls(urls) + local failed_urls = {} + for _, url in ipairs(urls) do + local success = os.execute("curl -I " .. url) -- 使用curl命令检查URL是否可访问 + if not success then + print("执行失败: " .. url) + io.write("是否重试? (y/n): ") + local retry = io.read() + if retry == "y" then + success = os.execute("curl -I " .. url) + if not success then + table.insert(failed_urls, url) + end + else + table.insert(failed_urls, url) + end + end + end + return failed_urls +end + +-- 函数:将失败的URL保存到文件 +local function save_failed_urls(failed_urls) + if #failed_urls > 0 then + local file = io.open("failed_urls.txt", "w") + if file then + for _, url in ipairs(failed_urls) do + file:write(url .. "\n") + end + file:close() + print("失败的URL已保存到 failed_urls.txt") + else + print("打开文件失败。") + end + else + print("所有URL执行成功,没有失败的URL。") + end +end + +-- 主程序 +while true do + io.write("请输入起始数字a和终止数字b(格式为a,b)或输入re重新开始: ") + local input = io.read() + if input == "re" then + print("重新开始...") + else + local a, b = validate_input(input) + if a and b then + local urls = generate_urls(a, b) + local failed_urls = execute_urls(urls) + save_failed_urls(failed_urls) + break + else + print("输入格式不正确或a > b,请重新输入。") + end + end +end