|
厌倦了滚动浏览相同的帖子?当您创建帐户后,您将始终回到您离开的地方。使用帐户,不仅可以享受无广告的清爽界面!
您需要 登录 才可以下载或查看,没有账号?注册
×
我已上岸,送给大家!
注:该脚本没有代抢功能,只是辅助选择复选框和兑换优惠卷功能。
黑五活动地址:https://akile.io/shop/server?typ ... 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();
- });
- //吐槽放货时间不稳定,有缘人才能抢到
- })();
复制代码 |
|