// ==UserScript== // @name ChatGPT Tools // @namespace https://linux.do/u/npc1 // @version 9.0 // @description ChatGPT 工具箱 - Token 获取、Plus 支付链接、全自动注册与账号管理 // @author npc1 // @match https://chatgpt.com/* // @match https://*.chatgpt.com/* // @match https://auth.openai.com/* // @match https://auth0.openai.com/* // @match https://pay.openai.com/* // @icon data:image/png;base64,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 // @grant GM_setValue // @grant GM_getValue // @grant GM_deleteValue // @grant GM_xmlhttpRequest // @grant GM_setClipboard // @grant GM_addStyle // @connect dash.xphdfs.me // @connect tempmail.plus // @connect * // @run-at document-idle // @license MIT // @downloadURL none // ==/UserScript== (function(){ 'use strict'; const _0xb=s=>atob(s); const _0x8d=['tm-app-root','npcmail_api_key','registered_accounts','auto_reg_data','auto_reg_step','tm_auto_redirect_team']; const _0xg=i=>_0x8d[i]; const _0x3c=_0xb('aHR0cHM6Ly9kYXNoLnhwaGRmcy5tZQ=='); const _0x4e={API_KEY:_0xg(0x1),ACCOUNTS:_0xg(0x2),AUTO_REG:_0xg(0x3),AUTO_REG_STEP:_0xg(0x4),AUTO_REDIRECT_TEAM:_0xg(0x5)}; const _0x_TM_API='https://tempmail.plus/api'; const _0x_TM_DOMAINS=['mailto.plus','fexpost.com','fexbox.org','mailbox.in.ua','rover.info','chitthi.in','fextemp.com','any.pink','merepost.com']; const _0x5f={IDLE:'idle',GOTO_SIGNUP:'goto_signup',FILL_EMAIL:'fill_email',FILL_PASSWORD:'fill_password',WAIT_CODE:'wait_code',FILL_CODE:'fill_code',FILL_PROFILE:'fill_profile',COMPLETE:'complete'}; /* ═══════════════ CSS ═══════════════ */ GM_addStyle(` @keyframes tm-spin{to{transform:rotate(360deg)}} @keyframes tm-in{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}} @keyframes tm-pop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}} @keyframes tm-bar{from{width:100%}to{width:0}} @keyframes tm-pulse{0%,100%{box-shadow:0 4px 20px rgba(16,163,127,.5),0 0 0 0 rgba(16,163,127,.3)}50%{box-shadow:0 4px 20px rgba(16,163,127,.5),0 0 0 8px rgba(16,163,127,0)}} @keyframes tm-shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}} @keyframes tm-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}} @keyframes tm-glow{0%,100%{opacity:.5}50%{opacity:1}} @keyframes tm-slideUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}} @keyframes tm-aurora{0%{background-position:0% 50%}25%{background-position:100% 0%}50%{background-position:100% 100%}75%{background-position:0% 100%}100%{background-position:0% 50%}} @keyframes tm-lightsweep{0%{transform:translateX(-200%) skewX(-18deg);opacity:0}15%{opacity:1}85%{opacity:1}100%{transform:translateX(700%) skewX(-18deg);opacity:0}} @keyframes tm-borderShift{0%,100%{border-color:rgba(16,163,127,.22)}33%{border-color:rgba(99,102,241,.18)}66%{border-color:rgba(236,72,153,.16)}} @keyframes tm-breathe{0%,100%{box-shadow:0 0 0 2px rgba(16,163,127,.12),inset 0 0 8px rgba(16,163,127,.02)}50%{box-shadow:0 0 0 3px rgba(16,163,127,.35),inset 0 0 20px rgba(16,163,127,.07)}} @keyframes tm-stagger{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}} @keyframes tm-rippleOut{0%{transform:scale(0);opacity:.4}100%{transform:scale(1);opacity:0}} @keyframes tm-cardShine{from{transform:translateX(-250%) skewX(-18deg)}to{transform:translateX(500%) skewX(-18deg)}} @keyframes tm-iconPop{0%{transform:scale(1)}40%{transform:scale(.8) rotate(-8deg)}70%{transform:scale(1.18) rotate(4deg)}100%{transform:scale(1) rotate(0)}} @keyframes tm-fabMorph{0%,100%{box-shadow:0 4px 20px rgba(16,163,127,.5),0 0 0 0 rgba(16,163,127,.25),0 0 30px rgba(16,163,127,.15)}33%{box-shadow:0 4px 20px rgba(99,102,241,.5),0 0 0 0 rgba(99,102,241,.25),0 0 30px rgba(99,102,241,.15)}66%{box-shadow:0 4px 20px rgba(236,72,153,.5),0 0 0 0 rgba(236,72,153,.25),0 0 30px rgba(236,72,153,.15)}} @keyframes tm-toastSlide{from{transform:translateX(-50%) translateY(-30px) scale(.85);opacity:0}to{transform:translateX(-50%) translateY(0) scale(1);opacity:1}} @keyframes tm-successPulse{0%{box-shadow:0 0 0 0 rgba(16,163,127,.45)}70%{box-shadow:0 0 0 22px rgba(16,163,127,0)}100%{box-shadow:0 0 0 0 rgba(16,163,127,0)}} @keyframes tm-titleGradient{0%{background-position:0% center}100%{background-position:200% center}} @keyframes tm-glassRefract{0%,100%{background-position:0% 0%}50%{background-position:100% 100%}} @keyframes tm-dotFloat{0%{transform:translateY(0) scale(1);opacity:.4}50%{transform:translateY(-12px) scale(1.3);opacity:.8}100%{transform:translateY(0) scale(1);opacity:.4}} #tm-app-root{font-family:'Segoe UI',Inter,-apple-system,BlinkMacSystemFont,Roboto,sans-serif;position:fixed;bottom:24px;right:24px;z-index:2147483647;display:flex;flex-direction:column-reverse;align-items:flex-end;gap:12px;pointer-events:none} #tm-app-root *{box-sizing:border-box} .tm-fab{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,#10a37f 0%,#0d8a6a 100%);box-shadow:0 4px 20px rgba(16,163,127,.5),0 0 0 0 rgba(16,163,127,.3);border:none;cursor:grab;display:flex;align-items:center;justify-content:center;transition:.3s cubic-bezier(.34,1.56,.64,1);color:#fff;pointer-events:auto;touch-action:none;user-select:none;position:relative;overflow:hidden;animation:tm-pulse 3s ease-in-out infinite} .tm-fab::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.2),transparent 60%);pointer-events:none} .tm-fab:hover{transform:scale(1.08);box-shadow:0 6px 24px rgba(16,163,127,.6),0 0 0 4px rgba(16,163,127,.15)} .tm-fab:active{cursor:grabbing} .tm-fab.open{background:linear-gradient(135deg,#1a1a2e,#16213e);box-shadow:0 4px 20px rgba(0,0,0,.4);animation:none} .tm-fab.open svg{transform:rotate(45deg)} .tm-fab.dragging{cursor:grabbing!important;transform:scale(1.12);box-shadow:0 8px 32px rgba(16,163,127,.65)} #tm-app-root.dragging .tm-panel{opacity:0!important;pointer-events:none!important;transform:translateY(12px) scale(.92)!important} .tm-fab svg{width:22px;height:22px;transition:transform .35s cubic-bezier(.4,0,.2,1);filter:drop-shadow(0 1px 2px rgba(0,0,0,.2))} .tm-panel{width:300px;background:rgba(15,15,25,.88);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid rgba(255,255,255,.08);border-radius:20px;box-shadow:0 16px 48px rgba(0,0,0,.35),0 0 0 1px rgba(255,255,255,.05) inset;overflow:hidden;opacity:0;transform:translateY(14px) scale(.92);pointer-events:none;transform-origin:bottom right;transition:.32s cubic-bezier(.34,1.56,.64,1)} .tm-panel.show{opacity:1;transform:none;pointer-events:auto} .tm-p-head{padding:18px 18px 6px;display:flex;justify-content:space-between;align-items:center} .tm-p-title{font-size:16px;font-weight:700;color:#fff;letter-spacing:-.3px} .tm-p-ver{font-size:9px;color:rgba(255,255,255,.45);background:rgba(255,255,255,.08);padding:3px 8px;border-radius:6px;font-weight:600;letter-spacing:.3px} .tm-p-body{padding:8px 10px 12px} .tm-g{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px;margin-bottom:8px} .tm-gi{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;border-radius:14px;border:1px solid transparent;background:rgba(255,255,255,.04);cursor:pointer;transition:.2s;color:rgba(255,255,255,.8);opacity:0;animation:tm-slideUp .35s ease forwards} .tm-panel.show .tm-gi:nth-child(1){animation-delay:.05s} .tm-panel.show .tm-gi:nth-child(2){animation-delay:.08s} .tm-panel.show .tm-gi:nth-child(3){animation-delay:.11s} .tm-panel.show .tm-gi:nth-child(4){animation-delay:.14s} .tm-panel.show .tm-gi:nth-child(5){animation-delay:.17s} .tm-panel.show .tm-gi:nth-child(6){animation-delay:.2s} .tm-panel.show .tm-gi:nth-child(7){animation-delay:.23s} .tm-gi:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.08);transform:translateY(-1px)} .tm-gi:active{transform:scale(.95);background:rgba(255,255,255,.06)} .tm-gi-ic{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:17px;box-shadow:0 2px 8px rgba(0,0,0,.2);transition:.3s cubic-bezier(.34,1.56,.64,1)} .tm-gi:hover .tm-gi-ic{transform:scale(1.12) translateY(-2px);box-shadow:0 4px 14px rgba(0,0,0,.3)} .tm-gi-lb{font-size:10px;font-weight:600;line-height:1.2;text-align:center;opacity:.85} .tm-sep{height:1px;background:rgba(255,255,255,.06);margin:4px 10px} .tm-li{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:10px;border:none;background:transparent;cursor:pointer;transition:.2s;color:rgba(255,255,255,.5);width:100%;text-align:left;font-size:12px;font-weight:500;opacity:0;animation:tm-slideUp .3s ease forwards;animation-delay:.25s} .tm-li+.tm-li{animation-delay:.3s} .tm-li:hover{background:rgba(255,255,255,.07);color:rgba(255,255,255,.8);padding-left:16px} .tm-li svg{width:15px;height:15px;opacity:.4;flex-shrink:0} /* Modal - Liquid Glass */ .tm-ov{position:fixed;inset:0;background:rgba(0,0,0,.4);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:2147483648;display:flex;justify-content:center;align-items:center;opacity:0;visibility:hidden;transition:.3s} .tm-ov.show{opacity:1;visibility:visible} .tm-md{background:rgba(255,255,255,.06);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);width:420px;max-width:92vw;max-height:85vh;border-radius:24px;overflow:hidden;transform:translateY(24px) scale(.92) rotateX(2deg);transition:.4s cubic-bezier(.34,1.56,.64,1);display:flex;flex-direction:column;box-shadow:0 24px 80px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.2),inset 0 -1px 0 rgba(255,255,255,.05),inset 0 0 30px rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.12)} .tm-ov.show .tm-md{transform:none} .tm-md-h{padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.03)} .tm-md-t{font-size:15px;font-weight:700;color:rgba(255,255,255,.95);display:flex;align-items:center;gap:6px;text-shadow:0 1px 2px rgba(0,0,0,.2)} .tm-md-x{width:28px;height:28px;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.06);color:rgba(255,255,255,.5);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:.2s} .tm-md-x:hover{background:rgba(239,68,68,.65);color:#fff;border-color:rgba(239,68,68,.3)} .tm-md-b{padding:16px 18px;overflow-y:auto;flex:1} .tm-md-b::-webkit-scrollbar{width:5px}.tm-md-b::-webkit-scrollbar-track{background:transparent}.tm-md-b::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:4px}.tm-md-b::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.2)} .tm-md-f{padding:12px 18px;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:flex-end;gap:6px;background:rgba(255,255,255,.02)} /* Form - Liquid Glass */ .tm-inp{width:100%;padding:9px 12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:10px;font-size:13px;color:rgba(255,255,255,.9);outline:none;transition:.25s} .tm-inp:focus{border-color:rgba(16,163,127,.5);box-shadow:0 0 0 2px rgba(16,163,127,.15),inset 0 0 10px rgba(16,163,127,.05);background:rgba(255,255,255,.1)} .tm-inp::placeholder{color:rgba(255,255,255,.3)} .tm-sel{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' fill='%23aaa' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px} .tm-sel option{background:#1a1a2e;color:rgba(255,255,255,.9)} .tm-lbl{display:block;margin-bottom:4px;font-size:11px;font-weight:600;color:rgba(255,255,255,.55);text-transform:uppercase;letter-spacing:.3px} .tm-fld{margin-bottom:14px} .tm-fld:last-child{margin-bottom:0} .tm-chk{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:12px;color:rgba(255,255,255,.75)} .tm-chk input{width:16px;height:16px;accent-color:#10a37f} /* Buttons - Liquid Glass */ .tm-btn{border:1px solid rgba(255,255,255,.08);padding:8px 14px;border-radius:10px;font-size:12px;font-weight:600;cursor:pointer;transition:.25s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;gap:4px;position:relative;overflow:hidden} .tm-btn:hover{filter:brightness(1.15);transform:translateY(-1px);box-shadow:0 4px 16px rgba(0,0,0,.15)} .tm-btn:active{transform:scale(.95) translateY(0);box-shadow:none} .tm-btn-p{background:rgba(16,163,127,.6);color:#fff;border-color:rgba(16,163,127,.25);box-shadow:0 2px 10px rgba(16,163,127,.2)} .tm-btn-s{background:rgba(255,255,255,.08);color:rgba(255,255,255,.7);border-color:rgba(255,255,255,.1)} .tm-btn-d{background:rgba(239,68,68,.12);color:rgba(239,68,68,.9);border-color:rgba(239,68,68,.12)} .tm-btn-sm{padding:4px 10px;font-size:11px;border-radius:8px} /* Cards - Liquid Glass */ .tm-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px;margin-bottom:8px;transition:.25s} .tm-card:hover{border-color:rgba(16,163,127,.35);box-shadow:0 4px 16px rgba(16,163,127,.1),inset 0 0 15px rgba(16,163,127,.03);transform:translateY(-1px)} .tm-card-t{font-size:12px;font-weight:600;color:rgba(255,255,255,.92);word-break:break-all} .tm-card-sub{font-size:11px;color:rgba(255,255,255,.5);font-family:monospace;margin-top:2px} .tm-card-meta{font-size:10px;color:rgba(255,255,255,.35);margin-top:4px} .tm-card-acts{display:flex;gap:4px;margin-top:8px;flex-wrap:wrap} .tm-empty{text-align:center;padding:32px 16px;color:rgba(255,255,255,.4);font-size:13px} /* Code - Liquid Glass */ .tm-code{background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:10px 12px;font-family:'SF Mono',Menlo,monospace;font-size:11px;color:rgba(255,255,255,.8);word-break:break-all;max-height:100px;overflow-y:auto} /* Alert - Liquid Glass */ .tm-alert{padding:10px 12px;border-radius:10px;font-size:11px;display:flex;align-items:flex-start;gap:6px;margin-bottom:12px} .tm-alert-w{background:rgba(251,191,36,.1);border:1px solid rgba(251,191,36,.2);color:rgba(251,191,36,.9)} .tm-alert-s{background:rgba(16,185,129,.1);border:1px solid rgba(16,185,129,.2);color:rgba(16,185,129,.9)} .tm-alert-e{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.2);color:rgba(239,68,68,.9)} /* Status bar */ /* Toast */ .tm-toast{position:fixed;top:16px;left:50%;transform:translateX(-50%) translateY(-20px);z-index:2147483650;display:flex;align-items:center;gap:8px;padding:10px 18px;border-radius:12px;font-size:13px;font-weight:600;box-shadow:0 8px 32px rgba(0,0,0,.2);opacity:0;visibility:hidden;transition:.35s cubic-bezier(.34,1.56,.64,1);pointer-events:none} .tm-toast.show{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)} .tm-toast.loading{background:linear-gradient(135deg,#10a37f,#0e8c6b);color:#fff} .tm-toast.success{background:linear-gradient(135deg,#059669,#047857);color:#fff} .tm-toast.error{background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff} .tm-toast .sp{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:tm-spin .7s linear infinite} .tm-sbar{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:2147483650;display:flex;align-items:center;gap:8px;padding:10px 18px;border-radius:10px;font-size:13px;font-weight:600;box-shadow:0 6px 24px rgba(0,0,0,.15);background:linear-gradient(135deg,#10a37f,#0e8c6b);color:#fff;display:none} .tm-sbar.show{display:flex} .tm-sbar .sp{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:tm-spin .7s linear infinite} .tm-sbar .x{background:rgba(255,255,255,.2);border:none;color:#fff;padding:3px 10px;border-radius:5px;font-size:11px;font-weight:600;cursor:pointer;margin-left:10px} .tm-sbar .x:hover{background:rgba(255,255,255,.3)} /* Success - Liquid Glass */ .tm-suc-ic{width:64px;height:64px;margin:0 auto 12px;background:rgba(16,163,127,.15);border:1px solid rgba(16,163,127,.2);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:30px;animation:tm-pop .5s ease-out;box-shadow:0 4px 16px rgba(16,163,127,.15)} .tm-suc-t{font-size:18px;font-weight:700;color:rgba(16,185,129,.95);margin-bottom:4px;text-shadow:0 1px 3px rgba(0,0,0,.15)} .tm-suc-sub{font-size:12px;color:rgba(255,255,255,.5);margin-bottom:16px} .tm-suc-info{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px;margin-bottom:12px} .tm-suc-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0} .tm-suc-row+.tm-suc-row{border-top:1px solid rgba(255,255,255,.06)} .tm-suc-lb{font-size:11px;color:rgba(255,255,255,.4);font-weight:500} .tm-suc-val{font-size:12px;color:rgba(255,255,255,.9);font-weight:600;font-family:monospace;word-break:break-all;max-width:200px;text-align:right} .tm-suc-redir{background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.15);border-radius:10px;padding:10px 12px;margin-bottom:12px} .tm-suc-redir-txt{font-size:12px;color:rgba(16,185,129,.9);font-weight:500;margin-bottom:8px} .tm-suc-prog{height:3px;background:rgba(16,185,129,.1);border-radius:2px;overflow:hidden} .tm-suc-prog-bar{height:100%;background:linear-gradient(90deg,rgba(16,185,129,.8),rgba(5,150,105,.8));border-radius:2px;width:100%} /* ═══════════════ Liquid Glass Animations ═══════════════ */ /* Modal aurora background + light sweep */ .tm-md{position:relative;animation:tm-borderShift 8s ease infinite} .tm-md::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(16,163,127,.06),rgba(99,102,241,.04),rgba(236,72,153,.03),rgba(59,130,246,.04),rgba(16,163,127,.06));background-size:300% 300%;animation:tm-aurora 15s ease infinite;pointer-events:none;z-index:0;border-radius:24px} .tm-md::after{content:'';position:absolute;top:0;left:0;width:22%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),rgba(255,255,255,.03),transparent);pointer-events:none;z-index:1;animation:tm-lightsweep 8s ease-in-out 2s infinite;will-change:transform,opacity} .tm-md-h,.tm-md-b,.tm-md-f{position:relative;z-index:2} /* Staggered entrance for form fields */ .tm-ov.show .tm-fld{opacity:0;animation:tm-stagger .5s cubic-bezier(.16,1,.3,1) forwards} .tm-ov.show .tm-fld:nth-child(1){animation-delay:.04s} .tm-ov.show .tm-fld:nth-child(2){animation-delay:.08s} .tm-ov.show .tm-fld:nth-child(3){animation-delay:.12s} .tm-ov.show .tm-fld:nth-child(4){animation-delay:.16s} .tm-ov.show .tm-fld:nth-child(5){animation-delay:.2s} .tm-ov.show .tm-fld:nth-child(6){animation-delay:.24s} .tm-ov.show .tm-fld:nth-child(7){animation-delay:.28s} .tm-ov.show .tm-fld:nth-child(8){animation-delay:.32s} .tm-ov.show .tm-alert{opacity:0;animation:tm-stagger .5s cubic-bezier(.16,1,.3,1) .02s forwards} .tm-ov.show .tm-chk{opacity:0;animation:tm-stagger .45s cubic-bezier(.16,1,.3,1) .2s forwards} /* Input breathing glow on focus */ .tm-inp:focus{animation:tm-breathe 2.5s ease-in-out infinite} /* Card hover shine sweep */ .tm-card{position:relative;overflow:hidden} .tm-card::after{content:'';position:absolute;top:0;left:0;width:40%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.07),rgba(255,255,255,.02),transparent);pointer-events:none;z-index:1;will-change:transform} .tm-card:hover::after{animation:tm-cardShine .7s ease} /* Grid icon bounce on click */ .tm-gi:active .tm-gi-ic{animation:tm-iconPop .45s cubic-bezier(.34,1.56,.64,1)} .tm-gi:hover .tm-gi-ic{transform:scale(1.15) translateY(-3px) rotate(3deg);box-shadow:0 8px 24px rgba(0,0,0,.35),0 0 15px rgba(255,255,255,.08)} .tm-gi{transition:.25s cubic-bezier(.34,1.56,.64,1)} .tm-gi:hover{transform:translateY(-2px)} /* FAB rainbow morph glow */ .tm-fab{animation:tm-fabMorph 6s ease infinite} .tm-fab.open{animation:none} .tm-fab:hover{animation:none;box-shadow:0 6px 28px rgba(16,163,127,.6),0 0 0 5px rgba(16,163,127,.12)} /* Glass toast notifications */ .tm-toast{backdrop-filter:blur(10px) saturate(1.3);-webkit-backdrop-filter:blur(10px) saturate(1.3);border:1px solid rgba(255,255,255,.15)} .tm-toast.show{animation:tm-toastSlide .45s cubic-bezier(.34,1.56,.64,1)} .tm-toast.loading{background:linear-gradient(135deg,rgba(16,163,127,.85),rgba(14,140,107,.85))} .tm-toast.success{background:linear-gradient(135deg,rgba(5,150,105,.85),rgba(4,120,87,.85))} .tm-toast.error{background:linear-gradient(135deg,rgba(220,38,38,.85),rgba(185,28,28,.85))} /* Success icon pulse ring */ .tm-suc-ic{animation:tm-pop .5s ease-out,tm-successPulse 1.5s ease .5s} /* Panel aurora + floating dots */ .tm-panel{position:relative;overflow:hidden} .tm-panel::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(16,163,127,.05),rgba(99,102,241,.04),transparent,rgba(236,72,153,.03));background-size:300% 300%;animation:tm-aurora 12s ease infinite;pointer-events:none;border-radius:20px;z-index:0} .tm-panel>*{position:relative;z-index:1} /* Panel title shimmer gradient */ .tm-p-title{background:linear-gradient(90deg,#fff 0%,rgba(16,163,127,.8) 45%,rgba(99,102,241,.8) 55%,#fff 100%);background-size:200% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:tm-titleGradient 4s ease infinite} /* Version badge float */ .tm-p-ver{animation:tm-float 3s ease-in-out infinite} /* Close button spin on hover */ .tm-md-x{transition:.25s cubic-bezier(.34,1.56,.64,1)} .tm-md-x:hover{transform:scale(1.1) rotate(90deg)} /* Separator glass refraction */ .tm-sep{background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);transition:.3s} /* Status bar glass */ .tm-sbar{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:linear-gradient(135deg,rgba(16,163,127,.85),rgba(14,140,107,.85));border:1px solid rgba(255,255,255,.12)} /* Button hover glass highlight */ .tm-btn-p:hover{box-shadow:0 4px 20px rgba(16,163,127,.35),inset 0 1px 0 rgba(255,255,255,.15)} .tm-btn-s:hover{box-shadow:0 4px 16px rgba(0,0,0,.12),inset 0 1px 0 rgba(255,255,255,.08)} /* Card stagger entrance in accounts */ .tm-ov.show .tm-card{opacity:0;animation:tm-stagger .45s cubic-bezier(.16,1,.3,1) forwards} .tm-ov.show .tm-card:nth-child(1){animation-delay:.03s} .tm-ov.show .tm-card:nth-child(2){animation-delay:.06s} .tm-ov.show .tm-card:nth-child(3){animation-delay:.09s} .tm-ov.show .tm-card:nth-child(4){animation-delay:.12s} .tm-ov.show .tm-card:nth-child(5){animation-delay:.15s} .tm-ov.show .tm-card:nth-child(6){animation-delay:.18s} .tm-ov.show .tm-card:nth-child(7){animation-delay:.21s} .tm-ov.show .tm-card:nth-child(8){animation-delay:.24s} .tm-ov.show .tm-card:nth-child(9){animation-delay:.27s} .tm-ov.show .tm-card:nth-child(10){animation-delay:.3s} `); /* ═══════════════ 工具函数 ═══════════════ */ function _0x7b(t){GM_setClipboard(t,'text');return!0;} const _0x8c=['James','John','Robert','Michael','William','David','Richard','Joseph','Thomas','Charles','Mary','Patricia','Jennifer','Linda','Barbara','Elizabeth','Susan','Jessica','Sarah','Karen','Emma','Olivia','Ava','Sophia','Isabella','Liam','Noah','Oliver','Elijah','Lucas']; const _0x9d=['Smith','Johnson','Williams','Brown','Jones','Garcia','Miller','Davis','Rodriguez','Martinez','Hernandez','Lopez','Gonzalez','Wilson','Anderson','Thomas','Taylor','Moore','Jackson','Martin','Lee','Thompson','White','Harris','Clark']; function _0xae(l=0x10){const c='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%';let p='';p+='ABCDEFGHIJKLMNOPQRSTUVWXYZ'[Math.floor(Math.random()*0x1a)];p+='abcdefghijklmnopqrstuvwxyz'[Math.floor(Math.random()*0x1a)];p+='0123456789'[Math.floor(Math.random()*0xa)];p+='!@#$%'[Math.floor(Math.random()*0x5)];for(let i=0x4;iMath.random()-0.5).join('');} function _0xbf(){return{firstName:_0x8c[Math.floor(Math.random()*_0x8c.length)],lastName:_0x9d[Math.floor(Math.random()*_0x9d.length)]};} function _0xc0(){const y=new Date().getFullYear();const yr=y-0x12-Math.floor(Math.random()*0x1e);const m=Math.floor(Math.random()*0xc)+0x1;const d=Math.floor(Math.random()*0x1c)+0x1;return{year:yr,month:m,day:d};} /* ═══════════════ NPCmail API ═══════════════ */ function _0xd1(e,o={}){const k=GM_getValue(_0x4e.API_KEY,'');if(!k){return Promise.reject(new Error('请先配置 API Key'));}return new Promise((r,j)=>{GM_xmlhttpRequest({method:o.method||'GET',url:_0x3c+e,headers:{'X-API-Key':k,'Content-Type':_0xb('YXBwbGljYXRpb24vanNvbg==')},data:o.body?JSON.stringify(o.body):undefined,onload:function(rs){try{const d=JSON.parse(rs.responseText);if(rs.status>=0xc8&&rs.status<0x12c){r(d);}else{j(new Error(d.error||d.message||'HTTP '+rs.status));}}catch(x){j(new Error('JSON 解析失败'));}},onerror:function(x){j(new Error('网络请求失败'));}});});} async function _0xe2(){return await _0xd1(_0xb('L2FwaS9wdWJsaWMvYXBpLWtleS9pbmZv'));} async function _0xf3(d=null,p=null){const b={count:0x1,expiryDays:0x7};d&&(b.domain=d);p&&(b.prefix=p);const r=await _0xd1(_0xb('L2FwaS9wdWJsaWMvYmF0Y2gtY3JlYXRlLWVtYWlscw=='),{method:'POST',body:b});if(r.emails&&r.emails.length>0x0)return r.emails[0x0];throw new Error('创建邮箱失败');} async function _0x115(a){const r=await _0xd1(_0xb('L2FwaS9wdWJsaWMvZXh0cmFjdC1jb2Rlcw=='),{method:'POST',body:{addresses:[a]}});if(r&&r.length>0x0&&r[0x0].code)return r[0x0].code;return null;} async function _0x_npcMails(a){return await _0xd1('/api/public/emails/'+encodeURIComponent(a)+'/messages');} /* ═══════════════ TempMail API ═══════════════ */ function _0x_tmReq(ep){return new Promise((r,j)=>{GM_xmlhttpRequest({method:'GET',url:_0x_TM_API+ep,headers:{'Accept':'application/json','X-Requested-With':'XMLHttpRequest'},timeout:15000,onload:function(rs){try{const d=JSON.parse(rs.responseText);if(rs.status>=200&&rs.status<300){r(d);}else{j(new Error('TempMail HTTP '+rs.status));}}catch(x){j(new Error('TempMail 响应解析失败'));}},onerror:function(){j(new Error('TempMail 网络错误'));},ontimeout:function(){j(new Error('TempMail 超时'));}});});} async function _0x_tmInbox(email,epin){return await _0x_tmReq('/mails?email='+encodeURIComponent(email)+'&epin='+(epin||''));} async function _0x_tmMail(id,email,epin){return await _0x_tmReq('/mails/'+id+'?email='+encodeURIComponent(email)+'&epin='+(epin||''));} async function _0x_tmCode(email,epin){try{const inbox=await _0x_tmInbox(email,epin);if(!inbox.mail_list||inbox.mail_list.length===0)return null;const m=inbox.mail_list[0];const det=await _0x_tmMail(m.mail_id,email,epin);const all=(det.text||'')+' '+(det.html||'')+' '+(det.subject||m.subject||'');const mt=all.match(/\b(\d{6})\b/);if(mt)return mt[1];const mt2=all.match(/\b(\d{4,8})\b/);if(mt2)return mt2[1];return null;}catch(e){console.warn('[TempMail]',e);return null;}} /* ═══════════════ Team 后台 API ═══════════════ */ function _0x_teamReq(baseUrl,method,path,apiKey,body){return new Promise((r,j)=>{const url=baseUrl.replace(/\/+$/,'')+path;GM_xmlhttpRequest({method:method,url:url,headers:{'X-API-Key':apiKey,'Content-Type':'application/json'},data:body?JSON.stringify(body):undefined,timeout:15000,onload:function(rs){try{const d=JSON.parse(rs.responseText);if(rs.status>=200&&rs.status<300){r(d);}else{j(new Error(d.detail||d.message||d.error||'HTTP '+rs.status));}}catch(x){j(new Error('响应解析失败 (HTTP '+rs.status+')'));}},onerror:function(){j(new Error('网络请求失败,请检查地址'));},ontimeout:function(){j(new Error('请求超时'));}});});} async function _0x_pushToTeam(){const url=GM_getValue('tm_team_url','');const key=GM_getValue('tm_team_key','');if(!url||!key)throw new Error('请先在设置中配置 Team 后台地址和密钥');let token=null;try{const sr=await fetch(_0xb('L2FwaS9hdXRoL3Nlc3Npb24='));const ct=sr.headers.get('content-type');if(ct&&ct.includes('application/json')){const tk=await sr.json();if(tk.accessToken)token=tk.accessToken;}}catch(e){}if(!token)throw new Error('请先登录 ChatGPT');return await _0x_teamReq(url,'POST','/external/push',key,{access_token:token});} async function _0x_doPush(){_tmToast('推送当前账号...','loading');try{const res=await _0x_pushToTeam();_tmToast('推送成功!Team ID: '+(res.team_id||'已提交'),'success',3000);}catch(e){_tmToast(e.message,'error',3000);}} /* ═══════════════ 自定义域名 ═══════════════ */ function _0x_getCDs(){return GM_getValue('tm_custom_domains',[]);} function _0x_setCDs(d){GM_setValue('tm_custom_domains',d);} function _0x_addCD(d){d=d.trim().toLowerCase().replace(/^@/,'');if(!d||!/^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$/.test(d))return false;const ds=_0x_getCDs();if(ds.includes(d))return false;ds.push(d);_0x_setCDs(ds);return true;} function _0x_rmCD(d){_0x_setCDs(_0x_getCDs().filter(x=>x!==d));} function _0x_randPfx(n=12){const c='abcdefghijklmnopqrstuvwxyz0123456789';let r=c[Math.floor(Math.random()*26)];for(let i=1;i暂未添加域名';return;}el.innerHTML=ds.map(d=>'
'+d+'
').join('');el.querySelectorAll('[data-rmcd]').forEach(b=>{b.onclick=function(){_0x_rmCD(this.dataset.rmcd);_0x_renderCDs();};});} /* ═══════════════ 数据存取 ═══════════════ */ function _0x126(){return GM_getValue(_0x4e.ACCOUNTS,[]);} function _0x137(a){const ac=_0x126();const i=ac.findIndex(x=>x.email===a.email);i>=0x0?ac[i]={...ac[i],...a}:ac.unshift(a);GM_setValue(_0x4e.ACCOUNTS,ac);} function _0x148(e){GM_setValue(_0x4e.ACCOUNTS,_0x126().filter(a=>a.email!==e));} function _0x159(){return GM_getValue(_0x4e.AUTO_REG,null);} function _0x16a(d){GM_setValue(_0x4e.AUTO_REG,d);} function _0x17b(){return GM_getValue(_0x4e.AUTO_REG_STEP,_0x5f.IDLE);} function _0x18c(s){GM_setValue(_0x4e.AUTO_REG_STEP,s);console.log('[AutoReg] Step:',s);} function _0x19d(){GM_deleteValue(_0x4e.AUTO_REG);GM_deleteValue(_0x4e.AUTO_REG_STEP);} /* ═══════════════ DOM 工具 ═══════════════ */ function _0x1ae(m){return new Promise(r=>setTimeout(r,m));} function _0x1bf(s,t=0x2710){return new Promise((r,j)=>{const e=document.querySelector(s);if(e){r(e);return;}const o=new MutationObserver(()=>{const el=document.querySelector(s);if(el){o.disconnect();r(el);}});o.observe(document.body,{childList:!0,subtree:!0});setTimeout(()=>{o.disconnect();j(new Error('元素未找到: '+s));},t);});} function _0x1c0(i,v){i.focus();const n=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,'value').set;n.call(i,v);i.dispatchEvent(new Event('input',{bubbles:!0,composed:!0}));i.dispatchEvent(new Event('change',{bubbles:!0,composed:!0}));for(const c of v){i.dispatchEvent(new KeyboardEvent('keydown',{key:c,bubbles:!0}));i.dispatchEvent(new KeyboardEvent('keypress',{key:c,bubbles:!0}));i.dispatchEvent(new KeyboardEvent('keyup',{key:c,bubbles:!0}));}i.dispatchEvent(new Event('blur',{bubbles:!0}));i.focus();} async function _0x1d1(e,v){console.log('[AutoReg] Setting spinbutton:',v);e.focus();e.click();await _0x1ae(0xc8);if(!e.textContent.match(/\d/)){e.dispatchEvent(new KeyboardEvent('keydown',{key:'ArrowDown',bubbles:!0}));await _0x1ae(0x64);}let m=0x64;while(m-->0x0){let t=e.textContent||e.getAttribute('aria-valuenow')||'';let c=parseInt(t.replace(/\D/g,''));if(isNaN(c)){e.dispatchEvent(new KeyboardEvent('keydown',{key:'ArrowDown',bubbles:!0}));await _0x1ae(0x64);continue;}let d=v-c;if(d===0x0)break;const k=d>0x0?'ArrowUp':'ArrowDown';e.dispatchEvent(new KeyboardEvent('keydown',{key:k,bubbles:!0}));await _0x1ae(0x50);}e.setAttribute('aria-valuenow',v);e.dispatchEvent(new Event('change',{bubbles:!0}));e.dispatchEvent(new Event('blur',{bubbles:!0}));await _0x1ae(0x64);} function _0x1e2(e){e.click();e.dispatchEvent(new MouseEvent('click',{bubbles:!0,cancelable:!0}));} function _0x1f3(s,ts){const es=document.querySelectorAll(s);for(const e of es){const t=e.textContent.toLowerCase();for(const x of ts){if(t.includes(x.toLowerCase()))return e;}}return null;} /* ═══════════════ Toast 通知 ═══════════════ */ let _toastTimer=null; function _tmToast(msg,type='loading',duration=0){let t=document.getElementById('tm-toast');if(!t){t=document.createElement('div');t.id='tm-toast';t.className='tm-toast';document.body.appendChild(t);}if(_toastTimer){clearTimeout(_toastTimer);_toastTimer=null;}t.className='tm-toast '+type+' show';t.innerHTML=(type==='loading'?'
':type==='success'?'':'')+''+msg+'';if(duration>0){_toastTimer=setTimeout(()=>{t.classList.remove('show');_toastTimer=null;},duration);}} function _tmToastHide(){const t=document.getElementById('tm-toast');if(t)t.classList.remove('show');if(_toastTimer){clearTimeout(_toastTimer);_toastTimer=null;}} /* ═══════════════ 状态栏 ═══════════════ */ function _0x437(){if(document.getElementById('tm-status-bar'))return;const b=document.createElement('div');b.id='tm-status-bar';b.className='tm-sbar';b.innerHTML='
自动注册中...';document.body.appendChild(b);document.getElementById('tm-stop-reg').onclick=_0x98c;} function _0x98c(){_0x19d();_0xa9d();alert('已终止自动注册');} function _0xbae(t){const b=document.getElementById('tm-status-bar');const e=document.getElementById('tm-status-text');if(b&&e){e.innerText=t;b.classList.add('show');}} function _0xa9d(){const b=document.getElementById('tm-status-bar');if(b)b.classList.remove('show');} /* ═══════════════ 初始化入口 ═══════════════ */ function _0x204(){if(document.getElementById(_0xg(0x0)))return;_0x215();_0x326();_0x437();_0x548();} /* ═══════════════ 主面板 ═══════════════ */ function _0x215(){ const r=document.createElement('div');r.id=_0xg(0x0); const p=document.createElement('div');p.className='tm-panel'; p.innerHTML=`
ChatGPT Tools
v9.0
`; const fab=document.createElement('button');fab.className='tm-fab';fab.innerHTML=''; /* 拖动逻辑 */ let _drag=false,_moved=false,_sx,_sy,_sl,_st; function _onStart(e){if(p.classList.contains('show'))return;_drag=true;_moved=false;const ev=e.touches?e.touches[0]:e;const rc=r.getBoundingClientRect();_sx=ev.clientX;_sy=ev.clientY;_sl=rc.left;_st=rc.top;r.classList.add('dragging');fab.classList.add('dragging');e.preventDefault();} function _onMove(e){if(!_drag)return;const ev=e.touches?e.touches[0]:e;const dx=ev.clientX-_sx,dy=ev.clientY-_sy;if(Math.abs(dx)>3||Math.abs(dy)>3)_moved=true;let nl=_sl+dx,nt=_st+dy;nl=Math.max(0,Math.min(nl,window.innerWidth-52));nt=Math.max(0,Math.min(nt,window.innerHeight-52));r.style.right='auto';r.style.bottom='auto';r.style.left=nl+'px';r.style.top=nt+'px';e.preventDefault();} function _onEnd(e){if(!_drag)return;_drag=false;r.classList.remove('dragging');fab.classList.remove('dragging');if(_moved){const rc=r.getBoundingClientRect();GM_setValue('tm_fab_pos',JSON.stringify({x:rc.left,y:rc.top}));e.preventDefault();e.stopPropagation();}} fab.addEventListener('mousedown',_onStart);fab.addEventListener('touchstart',_onStart,{passive:false}); document.addEventListener('mousemove',_onMove);document.addEventListener('touchmove',_onMove,{passive:false}); document.addEventListener('mouseup',_onEnd);document.addEventListener('touchend',_onEnd); fab.addEventListener('click',(e)=>{e.stopPropagation();if(_moved){_moved=false;return;}p.classList.toggle('show');fab.classList.toggle('open');}); document.addEventListener('click',(e)=>{if(!r.contains(e.target)&&p.classList.contains('show')){p.classList.remove('show');fab.classList.remove('open');}}); r.appendChild(p);r.appendChild(fab);document.body.appendChild(r); /* 恢复保存的位置 */ try{const sp=GM_getValue('tm_fab_pos');if(sp){const pos=JSON.parse(sp);r.style.right='auto';r.style.bottom='auto';r.style.left=Math.min(Math.max(0,pos.x),window.innerWidth-52)+'px';r.style.top=Math.min(Math.max(0,pos.y),window.innerHeight-52)+'px';}}catch(e){} p.addEventListener('click',async(e)=>{e.stopPropagation();const item=e.target.closest('[data-act]');if(!item)return;const act=item.dataset.act;p.classList.remove('show');fab.classList.remove('open');switch(act){case'token':_0xcbf();break;case'pay':_0xdd0();break;case'team':_0xee1();break;case'register':_0x659();break;case'accounts':_0xff2();break;case'inbox':_0x_showInbox();break;case'push':_0x_doPush();break;case'settings':_0x76a();break;case'about':_0x103();break;}}); } /* ═══════════════ Modal 创建 ═══════════════ */ function _0x326(){ // Pay Modal if(!document.getElementById('tm-modal-pay')){const m=document.createElement('div');m.id='tm-modal-pay';m.className='tm-ov';m.innerHTML=`
✅ 生成成功
⚠️ 请在无痕模式 + 全局节点下打开
支付链接
`;document.body.appendChild(m); m.querySelectorAll('[data-close]').forEach(b=>b.onclick=()=>m.classList.remove('show')); document.getElementById('tm-modal-pay-copy').onclick=function(){_0x7b(document.getElementById('tm-modal-pay-code').innerText);this.innerText='✅ 已复制';setTimeout(()=>this.innerText='📋 复制',1200);}; document.getElementById('tm-modal-pay-open').onclick=function(){window.open(document.getElementById('tm-modal-pay-code').innerText,'_blank');};} // Settings Modal if(!document.getElementById('tm-modal-settings')){const m=document.createElement('div');m.id='tm-modal-settings';m.className='tm-ov';m.innerHTML=`
⚙️ 设置
API: ${_0x3c}
CF 邮件路由转发到 TempMail 邮箱,无需 API Key
配置后可在账号列表中一键推送账号到管理系统
`;document.body.appendChild(m); m.querySelectorAll('[data-close]').forEach(b=>b.onclick=()=>m.classList.remove('show')); document.getElementById('tm-settings-test').onclick=async function(){const st=document.getElementById('tm-settings-status');const k=document.getElementById('tm-settings-apikey').value.trim();if(!k){st.style.display='block';st.style.background='rgba(239,68,68,.12)';st.style.color='rgba(239,68,68,.9)';st.innerText='❌ 请输入 API Key';return;}GM_setValue(_0x4e.API_KEY,k);this.innerText='测试中...';try{const i=await _0xe2();st.style.display='block';st.style.background='rgba(16,185,129,.12)';st.style.color='rgba(16,185,129,.9)';st.innerText='✅ 连接成功!剩余: '+i.remaining_calls;}catch(e){st.style.display='block';st.style.background='rgba(239,68,68,.12)';st.style.color='rgba(239,68,68,.9)';st.innerText='❌ '+e.message;}this.innerText='测试连接';}; document.getElementById('tm-settings-use-cd').onchange=function(){document.getElementById('tm-cd-section').style.display=this.checked?'block':'none';}; document.getElementById('tm-cd-add').onclick=function(){const v=document.getElementById('tm-cd-input').value;if(_0x_addCD(v)){document.getElementById('tm-cd-input').value='';_0x_renderCDs();}else{alert('域名格式不正确或已存在');}}; document.getElementById('tm-settings-test-team').onclick=async function(){const st=document.getElementById('tm-settings-status');const url=document.getElementById('tm-settings-team-url').value.trim();const key=document.getElementById('tm-settings-team-key').value.trim();if(!url||!key){st.style.display='block';st.style.background='rgba(239,68,68,.12)';st.style.color='rgba(239,68,68,.9)';st.innerText='❌ 请输入 Team 后台地址和密钥';return;}this.innerText='测试中...';try{const r=await _0x_teamReq(url,'GET','/external/health',key);st.style.display='block';st.style.background='rgba(16,185,129,.12)';st.style.color='rgba(16,185,129,.9)';st.innerText='✅ Team 后台连接成功!';}catch(e){st.style.display='block';st.style.background='rgba(239,68,68,.12)';st.style.color='rgba(239,68,68,.9)';st.innerText='❌ '+e.message;}this.innerText='测试 Team';}; document.getElementById('tm-settings-save').onclick=function(){GM_setValue(_0x4e.API_KEY,document.getElementById('tm-settings-apikey').value.trim());GM_setValue(_0x4e.AUTO_REDIRECT_TEAM,document.getElementById('tm-settings-auto-redirect').checked);GM_setValue('tm_reg_prefix',document.getElementById('tm-settings-reg-prefix').value.trim());GM_setValue('tm_reg_domain',document.getElementById('tm-settings-reg-domain').value);GM_setValue('tm_use_cd',document.getElementById('tm-settings-use-cd').checked);GM_setValue('tm_tm_addr',document.getElementById('tm-settings-tm-addr').value.trim());GM_setValue('tm_tm_epin',document.getElementById('tm-settings-tm-epin').value.trim());GM_setValue('tm_team_url',document.getElementById('tm-settings-team-url').value.trim());GM_setValue('tm_team_key',document.getElementById('tm-settings-team-key').value.trim());m.classList.remove('show');};} // Accounts Modal if(!document.getElementById('tm-modal-accounts')){const m=document.createElement('div');m.id='tm-modal-accounts';m.className='tm-ov';m.innerHTML=`
📋 账号列表
`;document.body.appendChild(m); m.querySelectorAll('[data-close]').forEach(b=>b.onclick=()=>m.classList.remove('show'));} // Inbox Modal if(!document.getElementById('tm-modal-inbox')){const m=document.createElement('div');m.id='tm-modal-inbox';m.className='tm-ov';m.innerHTML=`
📬 收件箱
📭 选择邮箱后点击获取
`;document.body.appendChild(m); m.querySelectorAll('[data-close]').forEach(b=>b.onclick=()=>m.classList.remove('show')); document.getElementById('tm-inbox-fetch').onclick=async function(){const email=document.getElementById('tm-inbox-email').value;if(!email){alert('请选择邮箱');return;}this.innerText='加载中...';this.disabled=true;document.getElementById('tm-inbox-detail').style.display='none';document.getElementById('tm-inbox-list').style.display='block';document.getElementById('tm-inbox-list').innerHTML='
正在获取邮件...
';try{const mails=await _0x_fetchAllMails(email);_0x_renderMailList(mails,email);document.getElementById('tm-inbox-count').innerText=mails.length+' 封邮件';}catch(e){document.getElementById('tm-inbox-list').innerHTML='
❌ '+e.message+'
';document.getElementById('tm-inbox-count').innerText='';}this.innerText='📥 获取';this.disabled=false;};} // About Modal if(!document.getElementById('tm-modal-about')){const m=document.createElement('div');m.id='tm-modal-about';m.className='tm-ov';m.innerHTML=`
ℹ️ 关于
ChatGPT Tools
v9.0
🔑 Token
💳 Plus
🚀 注册
🌐 自定义域名
👨‍💻 开发者: NPC →
`;document.body.appendChild(m); m.querySelectorAll('[data-close]').forEach(b=>b.onclick=()=>m.classList.remove('show'));} // Success Modal if(!document.getElementById('tm-modal-success')){const m=document.createElement('div');m.id='tm-modal-success';m.className='tm-ov';m.innerHTML=`
🎉
注册成功!
账号已保存到列表
邮箱
密码
3s 后跳转...
`;document.body.appendChild(m);} } /* ═══════════════ 收件箱逻辑 ═══════════════ */ let _inboxCache=[]; function _0x_showInbox(){ const sel=document.getElementById('tm-inbox-email');sel.innerHTML=''; const ac=_0x126();ac.forEach(a=>{const o=document.createElement('option');o.value=a.email;o.innerText=a.email;if(a.customDomain)o.dataset.cd='1';sel.appendChild(o);}); const tmA=GM_getValue('tm_tm_addr','');if(tmA&&!ac.find(a=>a.email===tmA)){const o=document.createElement('option');o.value='__tm__'+tmA;o.innerText=tmA+' (TempMail)';o.dataset.cd='1';sel.appendChild(o);} document.getElementById('tm-inbox-list').innerHTML='
📭 选择邮箱后点击获取
'; document.getElementById('tm-inbox-list').style.display='block'; document.getElementById('tm-inbox-detail').style.display='none'; document.getElementById('tm-inbox-count').innerText=''; _inboxCache=[];document.getElementById('tm-modal-inbox').classList.add('show');} async function _0x_fetchAllMails(email){ const ac=_0x126();const acc=ac.find(a=>a.email===email);const isCD=acc&&acc.customDomain;const isTmDirect=email.startsWith('__tm__'); const tmAddr=GM_getValue('tm_tm_addr','');const tmEpin=GM_getValue('tm_tm_epin',''); if(isTmDirect||isCD){ const useAddr=isTmDirect?email.replace('__tm__',''):tmAddr;if(!useAddr)throw new Error('请先在设置中配置 TempMail 取件邮箱'); const inbox=await _0x_tmInbox(useAddr,tmEpin);if(!inbox.mail_list||inbox.mail_list.length===0)return[]; const mails=[];for(const m of inbox.mail_list){try{const det=await _0x_tmMail(m.mail_id,useAddr,tmEpin);mails.push({id:m.mail_id,subject:det.subject||m.subject||'(无主题)',from:det.from_mail||m.from_mail||'未知',fromName:det.from_name||m.from_name||'',time:m.time||'',date:det.date||'',text:det.text||'',html:det.html||'',source:'tempmail'});}catch(e){mails.push({id:m.mail_id,subject:m.subject||'(无主题)',from:m.from_mail||'未知',fromName:m.from_name||'',time:m.time||'',text:'',html:'',source:'tempmail'});}} _inboxCache=mails;return mails; }else{ try{const r=await _0x_npcMails(email);let mails=[];const arr=Array.isArray(r)?r:(r&&r.messages?r.messages:[]);mails=arr.map((m,i)=>({id:m.id||i,subject:m.subject||'(无主题)',from:m.sender||m.from||'未知',fromName:'',time:m.received_at?new Date(m.received_at).toLocaleString():'',date:m.received_at||'',text:m.body||m.text||'',html:m.html||'',isRead:m.is_read||false,source:'npcmail'})); _inboxCache=mails;return mails;}catch(e){throw new Error('获取失败: '+e.message);}}} function _0x_parseMailHTML(html){if(!html)return'';try{const doc=new DOMParser().parseFromString(html,'text/html');doc.querySelectorAll('script,style,link,meta').forEach(el=>el.remove());const links=doc.querySelectorAll('a[href]');links.forEach(a=>{a.setAttribute('target','_blank');a.setAttribute('rel','noopener');a.style.color='rgba(96,165,250,.9)';});const imgs=doc.querySelectorAll('img');imgs.forEach(img=>{img.style.maxWidth='100%';img.style.height='auto';img.style.borderRadius='6px';});let h=doc.body.innerHTML||'';h=h.replace(/on\w+\s*=\s*"[^"]*"/gi,'');h=h.replace(/on\w+\s*=\s*'[^']*'/gi,'');return h;}catch(e){return html.replace(/<[^>]+>/g,' ').replace(/\s+/g,' ').trim();}} function _0x_renderMailList(mails,email){ const el=document.getElementById('tm-inbox-list'); if(!mails||mails.length===0){el.innerHTML='
📭 该邮箱暂无邮件
';return;} el.innerHTML=mails.map((m,i)=>{const sender=m.fromName?(m.fromName+' <'+m.from+'>'):m.from;return`
${_0x_escHtml(m.subject)}
${m.time||''}
来自: ${sender}
${m.text?'
'+_0x_escHtml(m.text.substring(0,80))+(m.text.length>80?'...':'')+'
':''}
`;}).join(''); el.querySelectorAll('[data-mail-view]').forEach(c=>{c.onclick=function(){_0x_viewMailDetail(parseInt(this.dataset.mailView));};});} function _0x_escHtml(s){const d=document.createElement('div');d.innerText=s;return d.innerHTML;} function _0x_viewMailDetail(idx){ const m=_inboxCache[idx];if(!m)return; const el=document.getElementById('tm-inbox-detail');const list=document.getElementById('tm-inbox-list'); list.style.display='none';el.style.display='block'; const sender=m.fromName?(m.fromName+' <'+m.from+'>'):m.from; let content='';if(m.html){content=_0x_parseMailHTML(m.html);}else{content='
'+_0x_escHtml(m.text||'(无内容)')+'
';} el.innerHTML=`
${_0x_escHtml(m.subject)}
👤 ${_0x_escHtml(sender)} 🕐 ${m.time||m.date||''}
${content}
${m.html?'':''}
`; document.getElementById('tm-inbox-back').onclick=function(){el.style.display='none';list.style.display='block';}; document.getElementById('tm-mail-copy-text').onclick=function(){const txt=m.text||(m.html?new DOMParser().parseFromString(m.html,'text/html').body.textContent:'');_0x7b(txt);this.innerText='✅ 已复制';setTimeout(()=>this.innerText='📋 复制纯文本',800);}; const rawBtn=document.getElementById('tm-mail-toggle-raw');if(rawBtn){let showRaw=false;rawBtn.onclick=function(){showRaw=!showRaw;const ce=document.getElementById('tm-mail-content');if(showRaw){ce.innerText=m.html;ce.style.fontFamily="'SF Mono',Menlo,monospace";ce.style.fontSize='11px';}else{ce.innerHTML=_0x_parseMailHTML(m.html);ce.style.fontFamily='inherit';ce.style.fontSize='12px';}this.innerText=showRaw?'🔄 切换解析':'🔄 切换原始';};}} /* ═══════════════ 注册成功弹窗逻辑 ═══════════════ */ function _0x214(e,pw,oc,cn){document.getElementById('tm-success-email').innerText=e;document.getElementById('tm-success-password').innerText=pw;const rs=document.getElementById('tm-suc-redir-wrap');const cb=document.getElementById('tm-success-cancel');const ce=document.getElementById('tm-success-countdown');const pb=document.getElementById('tm-success-progress-bar');const wr=typeof oc==='function';rs.style.display=wr?'block':'none';cb.innerText=wr?'取消':'关闭';document.getElementById('tm-modal-success').classList.add('show');let cd=0x3;let cl=!1;let tm=null;if(wr){ce.innerText=cd;pb.style.width='100%';pb.style.transition='none';setTimeout(()=>{pb.style.transition='width 3s linear';pb.style.width='0%';},0x32);tm=setInterval(()=>{if(cl){clearInterval(tm);return;}cd--;ce.innerText=cd;if(cd<=0x0){clearInterval(tm);document.getElementById('tm-modal-success').classList.remove('show');oc();}},0x3e8);}cb.onclick=function(){cl=!0;if(tm)clearInterval(tm);document.getElementById('tm-modal-success').classList.remove('show');if(cn)cn();};document.getElementById('tm-success-copy').onclick=function(){_0x7b('邮箱: '+e+'\n密码: '+pw);this.innerText='✅ 已复制';setTimeout(()=>this.innerText='📋 复制',800);};} /* ═══════════════ Token / Pay / Team ═══════════════ */ async function _0x325(){const r=await fetch(_0xb('L2FwaS9hdXRoL3Nlc3Npb24='));if(r.status===0x193)throw new Error('403 Forbidden');const d=await r.json();if(!d.accessToken)throw new Error('未登录');return d.accessToken;} async function _0xcbf(){_tmToast('获取 Token...','loading');try{_0x7b(await _0x325());_tmToast('Token 已复制到剪贴板','success',2000);}catch(e){_tmToast(e.message,'error',3000);}} async function _0xdd0(){_tmToast('生成 Plus 支付链接...','loading');try{const tk=await _0x325();const r=await fetch(_0xb('aHR0cHM6Ly9jaGF0Z3B0LmNvbS9iYWNrZW5kLWFwaS9wYXltZW50cy9jaGVja291dA=='),{method:'POST',headers:{'Authorization':'Bearer '+tk,'Content-Type':_0xb('YXBwbGljYXRpb24vanNvbg==')},body:JSON.stringify({plan_type:'plus',checkout_ui_mode:'hosted',cancel_url:_0xb('aHR0cHM6Ly9jaGF0Z3B0LmNvbS8='),success_url:_0xb('aHR0cHM6Ly9jaGF0Z3B0LmNvbS8=')})});const d=await r.json();if(d.url){_0x7b(d.url);document.getElementById('tm-modal-pay-code').innerText=d.url;_tmToastHide();document.getElementById('tm-modal-pay').classList.add('show');}else throw new Error(d.detail||'API 错误');}catch(e){_tmToast(''+e,'error',3000);}} async function _0xee1(){_tmToast('生成 Team 链接...','loading');try{const sr=await fetch(_0xb('L2FwaS9hdXRoL3Nlc3Npb24='));const ct=sr.headers.get('content-type');if(!ct||!ct.includes(_0xb('YXBwbGljYXRpb24vanNvbg=='))){_tmToast('请先登录 ChatGPT','error',3000);return;}const tk=await sr.json();if(!tk.accessToken){_tmToast('请先登录 ChatGPT','error',3000);return;}const p={plan_name:'chatgptteamplan',team_plan_data:{workspace_name:'MyTeam',price_interval:'month',seat_quantity:0x5},promo_campaign:{promo_campaign_id:'team-1-month-free',is_coupon_from_query_param:!0},checkout_ui_mode:'custom'};const r=await fetch(_0xb('aHR0cHM6Ly9jaGF0Z3B0LmNvbS9iYWNrZW5kLWFwaS9wYXltZW50cy9jaGVja291dA=='),{method:'POST',headers:{Authorization:'Bearer '+tk.accessToken,'Content-Type':_0xb('YXBwbGljYXRpb24vanNvbg==')},body:JSON.stringify(p)});const d=await r.json();if(d.checkout_session_id){const su=_0xb('aHR0cHM6Ly9jaGF0Z3B0LmNvbS9jaGVja291dC9vcGVuYWlfbGxjLw==')+d.checkout_session_id;_0x7b(su);document.getElementById('tm-modal-pay-code').innerText=su;_tmToastHide();document.getElementById('tm-modal-pay').classList.add('show');}else{_tmToast('生成失败:'+(d.detail||'未知错误'),'error',3000);}}catch(e){_tmToast(''+e,'error',3000);}} async function _0x436(e,pw){try{const sr=await fetch(_0xb('L2FwaS9hdXRoL3Nlc3Npb24='));const ct=sr.headers.get('content-type');if(!ct||!ct.includes(_0xb('YXBwbGljYXRpb24vanNvbg=='))){_0xa9d();alert('获取会话失败');return;}const tk=await sr.json();if(!tk.accessToken){_0xa9d();alert('获取 Token 失败');return;}_0xbae('生成 Team 短链接...');const p={plan_name:'chatgptteamplan',team_plan_data:{workspace_name:'MyTeam',price_interval:'month',seat_quantity:0x5},promo_campaign:{promo_campaign_id:'team-1-month-free',is_coupon_from_query_param:!0},checkout_ui_mode:'custom'};const r=await fetch(_0xb('aHR0cHM6Ly9jaGF0Z3B0LmNvbS9iYWNrZW5kLWFwaS9wYXltZW50cy9jaGVja291dA=='),{method:'POST',headers:{Authorization:'Bearer '+tk.accessToken,'Content-Type':_0xb('YXBwbGljYXRpb24vanNvbg==')},body:JSON.stringify(p)});const d=await r.json();if(d.checkout_session_id){const su=_0xb('aHR0cHM6Ly9jaGF0Z3B0LmNvbS9jaGVja291dC9vcGVuYWlfbGxjLw==')+d.checkout_session_id;_0xa9d();_0x214(e,pw,()=>{window.location.href=su;},()=>{});}else{_0xa9d();alert('生成失败');}}catch(ex){_0xa9d();alert('出错:'+ex);}} /* ═══════════════ 域名加载 / 设置 / 账号列表 ═══════════════ */ async function _0x547(){const dd=['git-hub.email','hccc.edu.kg','xphdfs.me','kiroxubei.tech','xpzsd.codes','zhurunqi.love','geminikey.app','geminikey.email','880070.xyz','880333.xyz','ghukr.cn','292998.xyz'];let ad=[];try{const d=await _0xd1(_0xb('L2FwaS9wdWJsaWMvZG9tYWlucw=='));if(Array.isArray(d))ad=d;else if(d&&d.domains)ad=d.domains;}catch(e){console.warn('获取域名失败:',e);}return[...new Set([...ad,...dd])];} async function _0x76a(){document.getElementById('tm-settings-apikey').value=GM_getValue(_0x4e.API_KEY,'');document.getElementById('tm-settings-auto-redirect').checked=GM_getValue(_0x4e.AUTO_REDIRECT_TEAM,!1);document.getElementById('tm-settings-reg-prefix').value=GM_getValue('tm_reg_prefix','');document.getElementById('tm-settings-team-url').value=GM_getValue('tm_team_url','');document.getElementById('tm-settings-team-key').value=GM_getValue('tm_team_key','');const ucd=GM_getValue('tm_use_cd',false);document.getElementById('tm-settings-use-cd').checked=ucd;document.getElementById('tm-cd-section').style.display=ucd?'block':'none';document.getElementById('tm-settings-tm-addr').value=GM_getValue('tm_tm_addr','');document.getElementById('tm-settings-tm-epin').value=GM_getValue('tm_tm_epin','');_0x_renderCDs();const sd=GM_getValue('tm_reg_domain','');const ds=document.getElementById('tm-settings-reg-domain');if(ds.options.length<=0x2){const dm=await _0x547();const lo=ds.querySelector('option[value="LOADING"]');if(lo)lo.remove();dm.forEach(d=>{const dn=typeof d==='string'?d:d.domain;if(!ds.querySelector('option[value="'+dn+'"]')){const o=document.createElement('option');o.value=dn;o.innerText=dn;ds.appendChild(o);}});}ds.value=sd||'';document.getElementById('tm-settings-status').style.display='none';document.getElementById('tm-modal-settings').classList.add('show');} function _0x103(){document.getElementById('tm-modal-about').classList.add('show');} const _PG_SIZE=10; let _pgCur=1; function _0xff2(page){ const ac=_0x126();const ls=document.getElementById('tm-accounts-list'); if(ac.length===0){ls.innerHTML='
📭 暂无账号
';document.getElementById('tm-modal-accounts').classList.add('show');return;} const total=ac.length;const pages=Math.ceil(total/_PG_SIZE); if(!page)page=1;if(page<1)page=1;if(page>pages)page=pages;_pgCur=page; const start=(page-1)*_PG_SIZE;const end=Math.min(start+_PG_SIZE,total);const slice=ac.slice(start,end); let h=`
共 ${total} 个账号${page} / ${pages} 页
`; h+=slice.map((a,idx)=>{const i=start+idx;return `
${a.email}
密码: ${a.password}
${a.status||'已创建'} · ${new Date(a.createdAt).toLocaleString()}
`;}).join(''); if(pages>1){h+=`
${page}/${pages}
`;} ls.innerHTML=h; if(pages>1){const pf=document.getElementById('tm-pg-first');const pp=document.getElementById('tm-pg-prev');const pn=document.getElementById('tm-pg-next');const pl=document.getElementById('tm-pg-last');if(pf)pf.onclick=()=>_0xff2(1);if(pp)pp.onclick=()=>_0xff2(_pgCur-1);if(pn)pn.onclick=()=>_0xff2(_pgCur+1);if(pl)pl.onclick=()=>_0xff2(pages);} document.getElementById('tm-modal-accounts').classList.add('show');} /* ═══════════════ 账号操作事件 ═══════════════ */ document.addEventListener('click',async function(e){const b=e.target.closest('[data-action]');if(!b)return;const a=b.dataset.action;if(a==='copyemail'){const i=parseInt(b.dataset.index);const ac=_0x126()[i];if(ac){_0x7b(ac.email);b.innerText='✅';setTimeout(()=>b.innerText='📋 账号',800);}}else if(a==='copypwd'){const i=parseInt(b.dataset.index);const ac=_0x126()[i];if(ac){_0x7b(ac.password);b.innerText='✅';setTimeout(()=>b.innerText='🔑 密码',800);}}else if(a==='code'){const em=b.dataset.email;try{b.innerText='...';const c=await _0x115(em);if(c){_0x7b(c);alert('验证码: '+c+'\n已复制');}else alert('未找到验证码');}catch(ex){alert('错误: '+ex.message);}b.innerText='📨 验证码';}else if(a==='del'){const em=b.dataset.email;if(confirm('确定删除?')){_0x148(em);_0xff2();}}}); /* ═══════════════ 注册流程 (v8.1 原版逻辑 + TempMail 扩展) ═══════════════ */ async function _0x659(){const ucd=GM_getValue('tm_use_cd',false);const cds=_0x_getCDs();if(ucd&&cds.length>0){const tmA=GM_getValue('tm_tm_addr','');if(!tmA){alert('请先在设置中配置 TempMail 取件邮箱');_0x76a();return;}try{_0xbae('正在准备自定义域名邮箱...');const dom=cds[Math.floor(Math.random()*cds.length)];const pfx=GM_getValue('tm_reg_prefix','')||_0x_randPfx(12);const email=pfx+'@'+dom;const rd={email:email,password:_0xae(),..._0xbf(),birthday:_0xc0(),createdAt:new Date().toISOString(),status:'注册中',customDomain:true,tmAddr:tmA,tmEpin:GM_getValue('tm_tm_epin','')};_0x16a(rd);_0x18c(_0x5f.GOTO_SIGNUP);_0x137(rd);_0xbae('正在跳转注册页面...');await _0x1ae(0x1f4);window.location.href=_0xb('aHR0cHM6Ly9jaGF0Z3B0LmNvbS9hdXRoL2xvZ2lu');}catch(e){_0xa9d();alert('准备失败: '+e.message);_0x19d();}return;}const k=GM_getValue(_0x4e.API_KEY,'');if(!k){alert('请先配置 API Key 或启用自定义域名模式');_0x76a();return;}const p=GM_getValue('tm_reg_prefix','');const d=GM_getValue('tm_reg_domain','');await _0x87b({prefix:p,domain:d});} async function _0x87b(c={}){try{_0xbae('正在创建邮箱...');const ed=await _0xf3(c.domain||null,c.prefix||null);const rd={email:ed.address,password:_0xae(),..._0xbf(),birthday:_0xc0(),createdAt:new Date().toISOString(),status:'注册中'};_0x16a(rd);_0x18c(_0x5f.GOTO_SIGNUP);_0x137(rd);_0xbae('正在跳转注册页面...');await _0x1ae(0x1f4);window.location.href=_0xb('aHR0cHM6Ly9jaGF0Z3B0LmNvbS9hdXRoL2xvZ2lu');}catch(e){_0xa9d();alert('创建邮箱失败: '+e.message);_0x19d();}} async function _0x98d(d){_0xbae('正在填写密码...');const pi=await _0x1bf('input[type="password"], input[name="password"]',0x3a98);_0x1c0(pi,d.password);await _0x1ae(0x3e8);let cb=document.querySelector('button[type="submit"]')||_0x1f3('button',['Continue','继续','Next']);if(cb){_0x1e2(cb);_0x18c(_0x5f.WAIT_CODE);_0xbae('等待验证码...');await _0x1ae(0x7d0);await _0xa9e(d);}} async function _0xa9e(d){_0xbae('等待验证码邮件...');let c=null;const isTM=d.customDomain&&d.tmAddr;for(let i=0x0;i<0x3c;i++){_0xbae('等待验证码... ('+(i+0x1)+'/60)'+(isTM?' [TempMail]':''));if(isTM){c=await _0x_tmCode(d.tmAddr,d.tmEpin||'',d.regTs||0);}else{c=await _0x115(d.email);}if(c)break;await _0x1ae(0xbb8);}if(c){_0x16a({...d,verificationCode:c});_0x18c(_0x5f.FILL_CODE);await _0xbaf(c,d);}else{throw new Error('验证码获取超时');}} async function _0xbaf(c,d){_0xbae('正在填写验证码...');await _0x1ae(0x3e8);const ci=document.querySelectorAll('input[type="text"][maxlength="1"], input[autocomplete="one-time-code"]');if(ci.length>=0x6){for(let i=0x0;i0)_0x1c0(ai[0],d.firstName+' '+d.lastName);}await _0x1ae(0x1f4);const bd=d.birthday;const sb=document.querySelectorAll('[role="spinbutton"]');if(sb.length>=0x3){await _0x1d1(sb[0],bd.year);await _0x1d1(sb[1],bd.month);await _0x1d1(sb[2],bd.day);}else{const vi=Array.from(document.querySelectorAll('input')).filter(el=>{const r=el.getBoundingClientRect();return r.width>0&&r.height>0&&el.type!=='hidden';});if(vi.length>1){_0x1c0(vi[1],bd.year+'/'+String(bd.month).padStart(2,'0')+'/'+String(bd.day).padStart(2,'0'));}}await _0x1ae(0x3e8);let cb=document.querySelector('button[type="submit"]')||_0x1f3('button',['Continue','继续','Agree','同意']);if(cb){_0x1e2(cb);const cu=window.location.href;let s=0;while(window.location.href===cu){s++;_0xbae('等待页面... ('+s+'s)');await _0x1ae(0x3e8);if(!document.querySelector('[role="spinbutton"]'))break;}_0x18c(_0x5f.COMPLETE);_0xa9d();_0x137({...d,status:'注册完成'});_0x19d();const ar=GM_getValue(_0x4e.AUTO_REDIRECT_TEAM,!1);if(ar){_0xbae('生成 Team 短链接...');await _0x1ae(0x5dc);await _0x436(d.email,d.password);}else{_0x214(d.email,d.password,null,null);}}} /* ═══════════════ 自动注册主流程 (v8.1 原版) ═══════════════ */ async function _0x548(){let st=_0x17b();const d=_0x159();if(st===_0x5f.IDLE||!d)return;const u=window.location.href;const ia=u.includes('auth.openai.com')||u.includes('/auth/');if(!ia&&st!==_0x5f.IDLE&&st!==_0x5f.COMPLETE){_0x18c(_0x5f.COMPLETE);_0xa9d();_0x137({...d,status:'注册完成'});_0x19d();const ar=GM_getValue(_0x4e.AUTO_REDIRECT_TEAM,!1);if(ar){_0xbae('注册完成,生成 Team 短链接...');await _0x1ae(0x5dc);await _0x436(d.email,d.password);}else{_0x214(d.email,d.password,null,null);}return;}await _0x1ae(0x7d0);try{function _vis(s){const els=document.querySelectorAll(s);for(const el of els){const rc=el.getBoundingClientRect();const cs=window.getComputedStyle(el);if(rc.width>0&&rc.height>0&&cs.visibility!=='hidden'&&cs.display!=='none'&&parseFloat(cs.opacity)>0)return el;}return null;}const hp=_vis('input[type="password"], input[name="password"]');const hc=_vis('input[maxlength="1"], input[autocomplete="one-time-code"], input[name="code"]');const hpi=_vis('input[name="firstName"], input[name="first_name"], input[id*="firstName"]');if(hc&&st!==_0x5f.FILL_CODE&&st!==_0x5f.WAIT_CODE){st=_0x5f.FILL_CODE;_0x18c(st);}else if(hpi&&st!==_0x5f.FILL_PROFILE){st=_0x5f.FILL_PROFILE;_0x18c(st);}else if(hp&&st===_0x5f.FILL_EMAIL){st=_0x5f.FILL_PASSWORD;_0x18c(st);}if(st===_0x5f.GOTO_SIGNUP){_0xbae('准备注册...');await _0x1ae(0x3e8);const _ei=_vis('input[type="email"], input[name="email"], input[name="username"], #username');if(_ei){_0x18c(_0x5f.FILL_EMAIL);_0xbae('填写邮箱...');await _0x1ae(0x1f4);_0x1c0(_ei,d.email);await _0x1ae(0x3e8);let _cb=document.querySelector('button[type="submit"]')||_0x1f3('button',['Continue','继续','Next']);if(_cb){_0x1e2(_cb);_0x18c(_0x5f.FILL_PASSWORD);let _s=0;let _pi=null;while(!_pi){_s++;_0xbae('等待... ('+_s+'s)');await _0x1ae(0x3e8);_pi=_vis('input[type="password"], input[name="password"]');if(_s>=60){_0xbae('超时');return;}}await _0x98d(d);}return;}else{let sl=document.querySelector('a[href*="signup"], [data-testid="signup-link"]');if(!sl){const all=document.querySelectorAll('a, button, div, span, [role="button"], [class*="btn"], [class*="button"], [tabindex]');for(const el of all){const txt=(el.textContent||'').trim();if(/^(sign up|sign up for free|免费注册|create account)$/i.test(txt)){sl=el;break;}}}if(sl){_0xbae('点击注册...');_0x1e2(sl);await _0x1ae(0xbb8);_0x18c(_0x5f.FILL_EMAIL);}else{_0xbae('等待注册入口...');await _0x1ae(0xbb8);await _0x548();return;}}}else if(st===_0x5f.FILL_EMAIL){_0xbae('填写邮箱...');await _0x1ae(0x3e8);const ei=await _0x1bf('input[type="email"], input[name="email"], input[id*="email"], input[autocomplete="email"], input[inputmode="email"], input[name="username"], #username',0x3a98);_0x1c0(ei,d.email);await _0x1ae(0x3e8);let cb=document.querySelector('button[type="submit"]')||_0x1f3('button',['Continue','继续','Next']);if(cb){_0x1e2(cb);_0x18c(_0x5f.FILL_PASSWORD);let s=0;let pi=null;while(!pi){s++;_0xbae('等待... ('+s+'s)');await _0x1ae(0x3e8);pi=document.querySelector('input[type="password"], input[name="password"]');if(s>=0x3c){_0xbae('超时');return;}}await _0x98d(d);}}else if(st===_0x5f.FILL_PASSWORD){await _0x98d(d);}else if(st===_0x5f.WAIT_CODE){await _0xa9e(d);}else if(st===_0x5f.FILL_CODE){const ud=_0x159();await _0xbaf(ud.verificationCode,d);}else if(st===_0x5f.FILL_PROFILE){await _0xcc0(d);}else if(st===_0x5f.COMPLETE){_0xa9d();_0x137({...d,status:'注册完成'});_0x19d();const ar=GM_getValue(_0x4e.AUTO_REDIRECT_TEAM,!1);if(ar){_0xbae('生成 Team 短链接...');await _0x1ae(0x5dc);await _0x436(d.email,d.password);}else{_0x214(d.email,d.password,null,null);}}}catch(e){console.error('[AutoReg]',e);_0xbae('错误: '+e.message);setTimeout(()=>{_0xa9d();if(confirm('自动注册出错: '+e.message+'\n\n是否重试?')){_0x548();}else{_0x19d();}},0x7d0);}} /* ═══════════════ 点击涟漪效果 ═══════════════ */ document.addEventListener('click',function(e){const b=e.target.closest('.tm-btn,.tm-gi');if(!b)return;const rc=b.getBoundingClientRect();const sz=Math.max(rc.width,rc.height)*2.5;const x=e.clientX-rc.left-sz/2;const y=e.clientY-rc.top-sz/2;const rp=document.createElement('span');rp.style.cssText='position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.3) 0%,rgba(255,255,255,.1) 40%,transparent 70%);pointer-events:none;width:'+sz+'px;height:'+sz+'px;left:'+x+'px;top:'+y+'px;transform:scale(0);opacity:1;animation:tm-rippleOut .65s cubic-bezier(0,.4,.2,1) forwards;z-index:10';b.style.position||(b.style.position='relative');b.style.overflow='hidden';b.appendChild(rp);setTimeout(()=>rp.remove(),700);}); setInterval(_0x204,0x5dc); setTimeout(_0x204,0x3e8); })();