您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
直接上传邀请码!
当前为
// ==UserScript== // @name 自动上传邀请码 // @namespace https://linux.do // @version 0.0.2 // @description 直接上传邀请码! // @author codecow // @match https://linux.do/* // @icon https://www.google.com/s2/favicons?sz=64&domain=linux.do // @require https://cdn.bootcdn.net/ajax/libs/jquery/1.9.1/jquery.min.js // @grant none // @license MIT // @run-at document-end // ==/UserScript== (function () { 'use strict'; let date = new Date(); date.setDate(date.getDate() + 3); // 格式化日期和时间 const year = date.getFullYear(); const month = (date.getMonth() + 1).toString().padStart(2, '0'); // 月份是从0开始的 const day = date.getDate().toString().padStart(2, '0'); const hours = date.getHours().toString().padStart(2, '0'); const minutes = date.getMinutes().toString().padStart(2, '0'); // 时区处理,这里简化处理为+08:00,具体时区可能需要动态获取或计算 const timezone = '+08:00'; // 构建expires_at参数值 const expiresAt = `${year}-${month}-${day} ${hours}:${minutes}${timezone}`; let csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute('content'); let headers = { "accept": "*/*", "accept-language": "zh-CN,zh;q=0.9,en;q=0.8", "cache-control": "no-cache", "discourse-logged-in": "true", "discourse-present": "true", "pragma": "no-cache", "x-csrf-token": csrfToken, "x-requested-with": "XMLHttpRequest", 'sec-ch-ua': '"Google Chrome";v="123", "Not:A-Brand";v="8", "Chromium";v="123"', 'Discourse-Logged-In': 'true', 'sec-ch-ua-arch': '"x86"', 'sec-ch-ua-platform-version': '"10.0.0"', 'X-Requested-With': 'XMLHttpRequest', 'sec-ch-ua-full-version-list': '"Google Chrome";v="123.0.6312.60", "Not:A-Brand";v="8.0.0.0", "Chromium";v="123.0.6312.60"', 'sec-ch-ua-bitness': '"64"', 'sec-ch-ua-model': '', 'sec-ch-ua-platform': '"Windows"', 'Discourse-Present': 'true', 'sec-ch-ua-mobile': '?0', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'sec-ch-ua-full-version': '"123.0.6312.60"', 'Referer': 'https://linux.do/u/codecow/invited/pending' } let body = "max_redemptions_allowed=10&expires_at=" + encodeURIComponent(expiresAt) let count = 0; let flag = true; let inviteLinks = []; let upload_headers = { 'Content-Type': 'application/json', }; fetchInvite; // 获取邀请链接 async function fetchInvite() { let response = await fetch(`https://linux.do/invites`, { "headers": headers, "method": "POST", "mode": "cors", "credentials": "include", "body": body }).then(response => { if (response.status === 429) { console.error('Too Many Requests'); flag = false; } }).catch((err) => { flag = false; console.log('Error:', err); }); if (response.status === 429) { console.error('Too Many Requests'); flag = false; } else { let data = await response.json(); if (data.error_type === "rate_limit") { console.log('Rate limit reached, stopping.'); flag = false; } else { inviteLinks.push(data.link); const inviteLinksObject = inviteLinks.reduce((obj, link) => { obj[link] = link; return obj; }, {}); // 上传邀请链接 fetch(`https://linuxdo-invites.speedcow.top/upload`, { "headers": upload_headers, "method": "POST", "mode": 'no-cors', "body": JSON.stringify(inviteLinksObject) }) .then(response => response.json()) .then(data => { console.log(data); }) .catch((err) => { flag = false; console.log('Error:', err); }); } } } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址