diff --git a/bot.py b/bot.py index a0c79b7..19564ab 100644 --- a/bot.py +++ b/bot.py @@ -32,12 +32,13 @@ from config import ( get_merged_permissions, MAIL_SYSTEMS, ) -from mail_service import MailPool, extract_magic_link -from stripe_token import StripeTokenizer -from gift_checker import GiftChecker -from claude_auth import attack_claude, finalize_login -import account_store -import proxy_pool +from core.mail_service import MailPool, extract_magic_link +from core.stripe_token import StripeTokenizer +from core.gift_checker import GiftChecker +from core.claude_auth import attack_claude, finalize_login +from core import account_store +from core import proxy_pool +from core import permissions # --- 日志配置 --- logging.basicConfig( @@ -327,7 +328,7 @@ async def cmd_proxystatus(update: Update, context: ContextTypes.DEFAULT_TYPE): # 用户权限管理(仅管理员) # ============================================================ -import permissions +from core import permissions def _admin_only(func): """管理员专属装饰器:只有 config.toml 中 commands=["*"] 的用户可使用""" @@ -1017,8 +1018,8 @@ def _check_worker(loop: asyncio.AbstractEventLoop, status_msg, card_line: str, a acc_parts = account_line.split("|") email, session_key, org_uuid = acc_parts[0], acc_parts[1], acc_parts[2] - from models import ClaudeAccount - from identity import random_ua + from core.models import ClaudeAccount + from core.identity import random_ua account = ClaudeAccount(email, session_key, org_uuid, random_ua()) masked = f"{cc[:4]}****{cc[-4:]}" @@ -1153,8 +1154,8 @@ async def handle_document(update: Update, context: ContextTypes.DEFAULT_TYPE): def _batch_check_worker(loop: asyncio.AbstractEventLoop, status_msg, cards: list, acc_lines: list): """批量 CC 检查工作线程(round-robin 轮询账号)""" - from models import ClaudeAccount - from identity import random_ua + from core.models import ClaudeAccount + from core.identity import random_ua results = [] total = len(cards) diff --git a/config.py b/config.py index b6c18a5..4c04290 100644 --- a/config.py +++ b/config.py @@ -58,7 +58,7 @@ ADMIN_USERS: set[int] = { def get_merged_permissions() -> dict[int, set[str]]: """合并 config.toml 静态权限 + permissions.json 运行时权限""" - import permissions as perm_mod + from core import permissions as perm_mod merged = dict(_STATIC_PERMISSIONS) for uid, cmds in perm_mod.get_permissions_map().items(): merged.setdefault(uid, set()).update(cmds) @@ -73,4 +73,4 @@ MAIL_SYSTEMS: list[dict] = _cfg.get("mail", []) # --- 代理池 --- # 代理逻辑统一由 proxy_pool.py 管理,这里只做 re-export 保持兼容 -from proxy_pool import get_proxy, get_proxy_count # noqa: E402, F401 +from core.proxy_pool import get_proxy, get_proxy_count # noqa: E402, F401 diff --git a/core/__init__.py b/core/__init__.py new file mode 100644 index 0000000..4aa7a1c --- /dev/null +++ b/core/__init__.py @@ -0,0 +1,5 @@ +""" +autoClaude 核心模块包 + +包含认证、检查、邮件、代理、账号存储等业务逻辑。 +""" diff --git a/account_store.py b/core/account_store.py similarity index 100% rename from account_store.py rename to core/account_store.py diff --git a/claude_auth.py b/core/claude_auth.py similarity index 98% rename from claude_auth.py rename to core/claude_auth.py index 04be313..edd4e43 100644 --- a/claude_auth.py +++ b/core/claude_auth.py @@ -3,8 +3,8 @@ import base64 from curl_cffi import requests # 用于模拟指纹 from config import CLAUDE_URL, get_proxy -from models import ClaudeAccount -from identity import random_ua +from core.models import ClaudeAccount +from core.identity import random_ua def attack_claude(target_email): diff --git a/gift_checker.py b/core/gift_checker.py similarity index 97% rename from gift_checker.py rename to core/gift_checker.py index 1384a65..d52cd92 100644 --- a/gift_checker.py +++ b/core/gift_checker.py @@ -1,8 +1,8 @@ from curl_cffi import requests # 用于模拟指纹 from config import PRODUCT_ID, get_proxy -from models import ClaudeAccount -from identity import random_address +from core.models import ClaudeAccount +from core.identity import random_address class GiftChecker: diff --git a/identity.py b/core/identity.py similarity index 100% rename from identity.py rename to core/identity.py diff --git a/mail_service.py b/core/mail_service.py similarity index 100% rename from mail_service.py rename to core/mail_service.py diff --git a/models.py b/core/models.py similarity index 100% rename from models.py rename to core/models.py diff --git a/permissions.py b/core/permissions.py similarity index 100% rename from permissions.py rename to core/permissions.py diff --git a/proxy_pool.py b/core/proxy_pool.py similarity index 100% rename from proxy_pool.py rename to core/proxy_pool.py diff --git a/stripe_token.py b/core/stripe_token.py similarity index 98% rename from stripe_token.py rename to core/stripe_token.py index 25ba8a0..3c45847 100644 --- a/stripe_token.py +++ b/core/stripe_token.py @@ -3,7 +3,7 @@ import random from curl_cffi import requests # 用于模拟指纹 from config import STRIPE_PK, get_proxy -from identity import random_address, random_name +from core.identity import random_address, random_name class StripeTokenizer: diff --git a/main.py b/main.py index 3f967b3..a59f21f 100644 --- a/main.py +++ b/main.py @@ -3,10 +3,10 @@ import random import string from config import MAIL_SYSTEMS -from mail_service import MailPool, extract_magic_link -from stripe_token import StripeTokenizer -from gift_checker import GiftChecker -from claude_auth import attack_claude, finalize_login +from core.mail_service import MailPool, extract_magic_link +from core.stripe_token import StripeTokenizer +from core.gift_checker import GiftChecker +from core.claude_auth import attack_claude, finalize_login # --- 主流程 (The Ritual) ---