您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
在用户打开掘金页面后, 自动签到, 每天最多签到一次.签到完之后自动跳抽奖页面,每天最多免费抽一次. 基于iframe实现, 不用担心接口被禁. 只支持 Chrome80+ 浏览器.
当前为
// ==UserScript== // @name [掘金]自动签到&自动抽奖 // @namespace http://tampermonkey.net/ // @version 1.0.1 // @author mgtx // @description 在用户打开掘金页面后, 自动签到, 每天最多签到一次.签到完之后自动跳抽奖页面,每天最多免费抽一次. 基于iframe实现, 不用担心接口被禁. 只支持 Chrome80+ 浏览器. // @license MIT // @icon https://lf3-cdn-tos.bytescm.com/obj/static/xitu_juejin_web//static/favicons/favicon-32x32.png // @match https://juejin.cn/* // @grant none // @run-at document-idle // @noframes // ==/UserScript== (function() { "use strict"; const NAMESPACE = "juejin-auto-check"; const LOCAL_STORAGE_KEY = "tampermonkey-" + NAMESPACE; function getDate() { const date = new Date(); const year = date.getFullYear(); const month = String(date.getMonth() + 1).padStart(2, "0"); const day = String(date.getDate()).padStart(2, "0"); return `${year}-${month}-${day}`; } function createIframe(id) { const iframe = document.createElement("iframe"); iframe.id = id; iframe.style.position = "fixed"; iframe.style.top = "120px"; iframe.style.right = "24px"; iframe.style.width = "375px"; iframe.style.height = "850px"; iframe.style.zIndex = "1000"; iframe.src = "https://juejin.cn/user/center/signin"; return iframe; } function removeIframe(id) { const ele = document.getElementById(id); if (ele) { document.body.removeChild(ele); } } function updateBtn() { const signInBtn = document.querySelector(".signin-btn"); if (signInBtn) { signInBtn.classList.remove("signin-btn"); signInBtn.classList.add("signedin-btn"); } const textEle = signInBtn == null ? void 0 : signInBtn.querySelector(".btn-text"); if (textEle) { textEle.classList.add("signed-text"); textEle.textContent = "已签到"; } } function signIn() { const id = `iframe-${Math.ceil(Math.random() * 100)}`; const iframe = createIframe(id); document.body.prepend(iframe); iframe.onload = () => { const dialog = document.getElementById(id); if (dialog && dialog.contentDocument) { const btn = dialog.contentDocument.querySelector(".signin.btn"); if (btn) { btn.click(); } const timer = setTimeout(() => { clearTimeout(timer); removeIframe(id); updateBtn(); }, 1e3); } }; } function main() { const latestDay = localStorage.getItem(LOCAL_STORAGE_KEY); const today = getDate(); if (!latestDay || latestDay !== today) { try { signIn(); localStorage.setItem(LOCAL_STORAGE_KEY, today); } catch (error) { localStorage.removeItem(LOCAL_STORAGE_KEY); } } } main(); })();