自动签到 ACG论坛 + 嗶咔漫畫 + MT论坛 + 远景论坛等
// ==UserScript==
// @name 自动签到助手
// @version 0.5
// @description 自动签到 ACG论坛 + 嗶咔漫畫 + MT论坛 + 远景论坛等
// @author Crayon
// @match *://acgfun.pro/*
// @match *://manhuabika.com/puser/*
// @match *://*.binmt.cc/*
// @match *://*.pcbeta.com/*
// @match *://fishc.com.cn/*
// @match *://bbs.kafan.cn/*
// @match *://*.52pojie.cn/*
// @match *://*.55188.com/*
// @match *://*.anywlan.com/*
// @grant none
// @license MIT
// @run-at document-idle
// @namespace https://greasyfork.org/users/1249027
// ==/UserScript==
(function () {
'use strict';
// ---------------- 共用状态提示 ----------------
function createSimpleStatus(site) {
const statusDiv = document.createElement('div');
statusDiv.id = 'sign-status';
statusDiv.style.cssText = `
position: fixed;
top: 20px;
right: 20px;
padding: 12px 20px;
border-radius: 8px;
background: rgba(0, 0, 0, 0.85);
color: white;
font-family: Arial, sans-serif;
font-size: 14px;
z-index: 9999;
box-shadow: 0 3px 10px rgba(0,0,0,0.3);
display: flex;
align-items: center;
border-left: 4px solid #ffcc00;
`;
const statusText = document.createElement('div');
statusText.id = 'status-text';
statusText.innerText = `【${site}】签到助手启动中...`;
statusText.style.fontWeight = 'bold';
statusDiv.appendChild(statusText);
document.body.appendChild(statusDiv);
}
function updateStatus(text, color = '#ffcc00') {
const statusText = document.getElementById('status-text');
const statusDiv = document.getElementById('sign-status');
if (statusText) statusText.innerText = text;
if (statusDiv) statusDiv.style.borderLeftColor = color;
}
// ---------------- ACG 签到 ----------------
function acgSign() {
const key = 'acg';
const today = new Date().toDateString();
const signed = localStorage.getItem(`${key}_signed`) === today;
if (signed) return;
createSimpleStatus('ACG');
if (url.includes('plugin.php?id=k_misign:sign')) {
const signButton = document.getElementById('JD_sign');
if (signButton) {
signButton.click();
localStorage.setItem(`${key}_signed`, today);
updateStatus('ACG 签到成功!即将刷新...', '#00ff9d');
setTimeout(() => location.reload(), 2000);
} else if (document.querySelector('.btnvisted')) {
localStorage.setItem(`${key}_signed`, today);
updateStatus('ACG 今日已签到 ✓', '#00ff9d');
} else {
updateStatus('ACG 未找到签到按钮 ❌', '#ff4d4d');
}
} else {
window.location.href = 'https://acgfun.pro/plugin.php?id=k_misign:sign';
}
}
// ---------------- 嗶咔漫畫 签到 ----------------
function bikaSign() {
createSimpleStatus('嗶咔');
const today = new Date().toDateString();
const signed = localStorage.getItem('bika_sign_date') === today;
// 是否已经在签到页
const isSignPage = location.href.includes('/puser/');
if (!isSignPage) {
// 如果不是签到页,跳转
if (!signed) {
updateStatus('嗶咔 跳转签到页面...', '#ffcc00');
window.location.href = 'https://manhuabika.com/puser/?vflush=' + Date.now();
}
return;
}
// 是签到页,执行签到
const punchButton = document.querySelector('button.my-punch-button');
if (punchButton && punchButton.innerText.includes('打嗶咔')) {
punchButton.click();
localStorage.setItem('bika_sign_date', today);
updateStatus('嗶咔 漫畫签到成功 ✓', '#00ff9d');
} else {
localStorage.setItem('bika_sign_date', today);
updateStatus('嗶咔 今日已签到或按钮不存在', '#00ff9d');
}
}
// ---------------- MT论坛 签到 ----------------
function binmtSign() {
const key = 'bbs_binmt_sign_date';
const today = new Date().toDateString();
const signed = localStorage.getItem(key) === today;
if (location.href.includes("k_misign-sign.html")) {
createSimpleStatus('MT论坛');
setTimeout(() => {
const btn = document.getElementById("JD_sign");
if (btn) {
btn.click();
localStorage.setItem(key, today);
updateStatus('MT论坛 签到成功 ✓', '#00ff9d');
setTimeout(() => location.reload(), 2000);
} else if (document.querySelector(".btnvisted")) {
localStorage.setItem(key, today);
updateStatus('MT论坛 今日已签到 ✓', '#00ff9d');
} else {
updateStatus('MT论坛 未找到按钮 ❌', '#ff4d4d');
}
}, 1000);
} else if (!signed) {
location.href = "https://bbs.binmt.cc/k_misign-sign.html";
}
}
// ======= 远景论坛签到 =======
function handlePcbeta() {
const key = 'pcbeta';
const today = new Date().toDateString();
const signed = localStorage.getItem(`${key}_signed`) === today;
const taskURL = "/home.php?mod=task&do=apply&id=149";
if (location.href.includes(taskURL)) {
createSimpleStatus('远景论坛');
setTimeout(() => {
const html = document.body.innerHTML;
if (html.includes('任务已成功完成')) {
localStorage.setItem(`${key}_signed`, today);
updateStatus('远景论坛 签到完成 ✓', '#00ff9d');
} else if (html.includes('您已申请过此任务')) {
localStorage.setItem(`${key}_signed`, today);
updateStatus('远景论坛 今日已签到 ✓', '#00ff9d');
} else {
updateStatus('远景论坛 签到失败或任务不存在 ❌', '#ff4d4d');
}
}, 1000);
} else if (!signed) {
location.href = taskURL;
}
}
// ======= 鱼C论坛签到 =======
function fishcSign() {
createSimpleStatus('鱼C论坛');
const key = 'fishc';
const today = new Date().toDateString();
if (localStorage.getItem(`${key}_signed`) === today) return;
if (location.href.includes('plugin.php?id=k_misign:sign')) {
// 在签到页面
const btn = document.querySelector('#JD_sign');
if (btn) {
btn.click();
console.log('签到成功');
updateStatus('鱼C论坛 签到完成 ✓', '#00ff9d');
} else if (document.querySelector('.btnvisted')) {
console.log('今日已签到');
updateStatus('鱼C论坛 今日已签到 ✓', '#00ff9d');
}
localStorage.setItem(`${key}_signed`, today);
} else {
// 不是签到页面,跳转
window.location.href = "https://fishc.com.cn/plugin.php?id=k_misign:sign";
}
}
// ======= 52pojie论坛签到 =======
function sign52pojie() {
const key = '52pojie';
const today = new Date().toDateString();
const signed = localStorage.getItem(`${key}_signed`) === today;
if (signed) return;
createSimpleStatus('52pojie');
const qdImg = document.querySelector("img[src$='qds.png']");
const applyLink = document.querySelector('a[href^="home.php?mod=task&do=apply&id=2"]');
if (qdImg && applyLink) {
localStorage.setItem(`${key}_signed`, today);
applyLink.click(); // 自动点击签到任务链接
updateStatus('52pojie 签到中...', '#00ff9d');
} else {
updateStatus('52pojie 今日已签到或无按钮', '#00ff9d');
}
}
// ======= 理想论坛签到 =======
function sign55188() {
const key = '55188';
const today = new Date().toDateString();
const signed = localStorage.getItem(`${key}_signed`) === today;
const signURL = 'https://www.55188.com/plugin.php?id=sign';
// 如果今天已签到则退出
if (signed) return;
// 如果当前页面不是签到页,自动跳转
if (!location.href.includes('plugin.php?id=sign')) {
window.location.href = signURL;
return;
}
createSimpleStatus('55188');
const signBtn = document.getElementById('addsign');
if (signBtn) {
localStorage.setItem(`${key}_signed`, today);
updateStatus('55188 签到中...', '#00ff9d');
location.href = 'plugin.php?id=sign&mod=add&jump=1'; // 跳转进行签到
} else {
updateStatus('55188 今日已签到或按钮不存在', '#00ff9d');
}
}
// ======= 卡饭论坛签到 =======
function signKafan() {
const key = 'kafan';
const today = new Date().toDateString();
if (localStorage.getItem(`${key}_signed`) === today) return;
createSimpleStatus('卡饭论坛');
const imgs = Array.from(document.querySelectorAll("img"));
const dkImg = imgs.find(img => img.src.includes('dsu_amupper/images/dk.png'));
const wbImg = imgs.find(img => img.src.includes('dsu_amupper/images/wb.png'));
if (dkImg && wbImg && wbImg.closest('a')?.style.display === 'none') {
const dkLink = dkImg.closest('a');
if (dkLink) {
dkLink.click();
localStorage.setItem(`${key}_signed`, today);
updateStatus('卡饭论坛 签到中...', '#00ff9d');
}
} else {
updateStatus('卡饭论坛 今日已签到或按钮不可见', '#00ff9d');
}
}
// ======= AnyWlan签到 =======
function signAnyWlan() {
const key = 'anywlan';
const today = new Date().toDateString();
const signed = localStorage.getItem(`${key}_signed`) === today;
if (signed) return;
// 检查是否未登录
if (document.querySelector('a[href^="member.php?mod=logging&action=login"]')) {
console.log('AnyWlan 未登录,跳过签到');
return;
}
createSimpleStatus('AnyWlan');
// 当前是签到页
if (url.includes('k_misign:sign')) {
const signBtn = document.getElementById('JD_sign');
if (signBtn) {
signBtn.click();
localStorage.setItem(`${key}_signed`, today);
updateStatus('AnyWlan 签到成功 ✓', '#00ff9d');
setTimeout(() => location.reload(), 1500);
} else if (document.querySelector('.btnvisted')) {
localStorage.setItem(`${key}_signed`, today);
updateStatus('AnyWlan 今日已签到 ✓', '#00ff9d');
} else {
updateStatus('AnyWlan 未找到签到按钮 ❌', '#ff4d4d');
}
} else {
// 自动跳转到签到页面
window.location.href = "https://www.anywlan.com/plugin.php?id=k_misign:sign";
}
}
const url = location.href;
if (url.includes('acgfun.pro')) {
acgSign();
} else if (url.includes('manhuabika.com')) {
bikaSign();
} else if (url.includes('bbs.binmt.cc')) {
binmtSign();
} else if (url.includes('bbs.pcbeta.com') || url.includes('i.pcbeta.com')) {
handlePcbeta();
} else if (url.includes('fishc.com.cn')){
fishcSign()
} else if (url.includes('52pojie.cn')) {
sign52pojie();
} else if (url.includes('55188.com')) {
sign55188();
} else if (url.includes('bbs.kafan.cn')) {
signKafan();
} else if (url.includes('www.anywlan.com')) {
signAnyWlan();
}
})();