搜索
缓存时间02 现在时间02 缓存数据 起风了 唯有努力生存
查看: 40|回复: 0

AkileCloud黑色星期五辅助脚本

[复制链接]
发表于 昨天 00:20 | 显示全部楼层 |阅读模式

厌倦了滚动浏览相同的帖子?当您创建帐户后,您将始终回到您离开的地方。使用帐户,不仅可以享受无广告的清爽界面!

您需要 登录 才可以下载或查看,没有账号?注册

×


我已上岸,送给大家!

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

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

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

  10. (function () {
  11.     'use strict';

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

  17.             const check = setInterval(() => {
  18.                 const element = document.querySelector(selector);
  19.                 if (element) {
  20.                     clearInterval(check);
  21.                     resolve(element);
  22.                 } else if (elapsed >= timeout) {
  23.                     clearInterval(check);
  24.                     reject(`元素 ${selector} 超时未加载`);
  25.                 } else {
  26.                     elapsed += interval;
  27.                 }
  28.             }, interval);
  29.         });
  30.     };

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

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

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

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

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

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

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

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

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

  61.             const firstOption = optionsList.querySelector('li');
  62.             if (firstOption) {
  63.                 console.log("找到优惠券,选择第一个优惠券...");
  64.                 firstOption.click();
  65.             } else {
  66.                 console.log("没有优惠券,尝试兑换...");
  67.                 await redeemCode(); // 执行兑换逻辑
  68.                 console.log("重新尝试选择优惠券...");
  69.                 await autoSelectCoupon(); // 再次尝试选择优惠券
  70.             }
  71.         } catch (error) {
  72.             console.error("自动选择优惠券失败:", error);
  73.         }
  74.     };

  75.     //自动勾选协议
  76.     'use strict';

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

  82.     // 勾选所有复选框
  83.     const checkAllCheckboxes = () => {
  84.         // 查找所有复选框
  85.         const checkboxes = document.querySelectorAll('.arco-checkbox-target');
  86.         checkboxes.forEach(checkbox => {
  87.             if (!checkbox.checked) {
  88.                 checkbox.checked = true; // 勾选复选框
  89.                 const event = new Event('change', { bubbles: true }); // 创建 change 事件
  90.                 checkbox.dispatchEvent(event); // 触发事件
  91.                 console.log('已勾选复选框');
  92.             }
  93.         });
  94.     };

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

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


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

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

  117. })();
复制代码
爱生活,爱奶昔~

Powered by Nyarime. Licensed

GMT+8, 2024-11-24 02:29 , Processed in 0.027265 second(s), 7 queries , Gzip On, Redis On
发帖际遇 ·手机版 ·小黑屋 ·RSS ·奶昔网

登录切换风格
快速回复 返回顶部 返回列表