candy 发表于 19 小时前

AkileCloud黑色星期五辅助脚本

https://pic.imgdb.cn/item/673f65dbd29ded1a8c43f20a.png

我已上岸,送给大家!

注:该脚本没有代抢功能,只是辅助选择复选框和兑换优惠卷功能。

黑五活动地址:https://akile.io/shop/server?type=traffic&areaId=5&nodeId=9&planId=898&shop_code=2024-blackfriday-bbbbbbb
注意,上面的链接只是过去的页面,测试用,每天都不一样,自己去群里等6B放新链接
Akile官方交流群:https://t.me/akileChat

// ==UserScript==
// @name         自动选择 AkileCloud 优惠券+勾选协议(支持兑换功能)
// @namespace    toalan
// @version      1.5
// @description自动展开优惠券下拉框、支持兑换码功能并选择第一个优惠券
// @author       Alan
// @match      https://akile.io/*
// @grant      none
// ==/UserScript==

(function () {
    'use strict';

    // 等待指定元素加载
    const waitForElement = (selector, timeout = 10000) => {
      return new Promise((resolve, reject) => {
            const interval = 500; // 检测间隔
            let elapsed = 0;

            const check = setInterval(() => {
                const element = document.querySelector(selector);
                if (element) {
                  clearInterval(check);
                  resolve(element);
                } else if (elapsed >= timeout) {
                  clearInterval(check);
                  reject(`元素 ${selector} 超时未加载`);
                } else {
                  elapsed += interval;
                }
            }, interval);
      });
    };

    // 自动输入兑换码并兑换
    const redeemCode = async () => {
      try {
            console.log("正在检查是否需要兑换优惠券...");

            // 等待兑换码输入框和按钮
            const inputField = await waitForElement('.activity-card input.arco-input');
            const redeemButton = await waitForElement('.activity-card button');

            console.log("找到兑换码输入框和按钮,开始输入兑换码...");
            inputField.value = '2024BlackFriday';

            // 触发输入框更新事件
            const inputEvent = new Event('input', { bubbles: true });
            inputField.dispatchEvent(inputEvent);

            console.log("点击立即兑换按钮...");
            redeemButton.click();

            // 等待兑换完成
            await new Promise(resolve => setTimeout(resolve, 2000)); // 等待 2 秒
            console.log("兑换完成,准备重新选择优惠券...");
      } catch (error) {
            console.error("兑换优惠券失败:", error);
      }
    };

    // 自动选择优惠券
    const autoSelectCoupon = async () => {
      try {
            console.log("正在等待优惠券下拉框...");
            const dropdown = await waitForElement('.arco-select-view-single');

            console.log("找到优惠券下拉框,模拟点击展开...");
            dropdown.click(); // 展开下拉框

            console.log("等待优惠券选项加载...");
            const optionsList = await waitForElement('.arco-select-dropdown-list');

            const firstOption = optionsList.querySelector('li');
            if (firstOption) {
                console.log("找到优惠券,选择第一个优惠券...");
                firstOption.click();
            } else {
                console.log("没有优惠券,尝试兑换...");
                await redeemCode(); // 执行兑换逻辑
                console.log("重新尝试选择优惠券...");
                await autoSelectCoupon(); // 再次尝试选择优惠券
            }
      } catch (error) {
            console.error("自动选择优惠券失败:", error);
      }
    };

    //自动勾选协议
    'use strict';

    // 轮询间隔(毫秒)
    const interval = 500;
    // 最大等待时间(毫秒)
    const maxWaitTime = 10000;
    let elapsedTime = 0;

    // 勾选所有复选框
    const checkAllCheckboxes = () => {
      // 查找所有复选框
      const checkboxes = document.querySelectorAll('.arco-checkbox-target');
      checkboxes.forEach(checkbox => {
            if (!checkbox.checked) {
                checkbox.checked = true; // 勾选复选框
                const event = new Event('change', { bubbles: true }); // 创建 change 事件
                checkbox.dispatchEvent(event); // 触发事件
                console.log('已勾选复选框');
            }
      });
    };

    // 等待复选框加载并勾选
    const waitForCheckboxes = () => {
      const checkboxes = document.querySelectorAll('.arco-checkbox-target');
      if (checkboxes.length > 0 || elapsedTime >= maxWaitTime) {
            if (checkboxes.length > 0) {
                checkAllCheckboxes(); // 如果找到了复选框,进行勾选
            } else {
                console.warn('未找到复选框,脚本停止运行');
            }
            clearInterval(timer);
      } else {
            elapsedTime += interval;
      }
    };

    // 开始轮询
    const timer = setInterval(waitForCheckboxes, interval);


    // 页面加载后执行
    window.addEventListener('load', () => {
      console.log("页面加载完成,尝试自动选择优惠券...");
      autoSelectCoupon();
    });

    //吐槽放货时间不稳定,有缘人才能抢到

})();
页: [1]
查看完整版本: AkileCloud黑色星期五辅助脚本