diff --git a/README.en.md b/README.en.md index 18843f7..82bdf89 100644 --- a/README.en.md +++ b/README.en.md @@ -27,12 +27,11 @@ ## ⚠️ Important Notice -This project requires a **license key** to run. The code includes a built-in authorization system that cannot be bypassed. +The current version has removed built-in authorization checks, so **`license.key` is no longer required** for deployment. -- ✅ License keys use signature verification and cannot be forged -- ✅ Automatic reminder 7 days before expiration -- ✅ Automatic stop after expiration -- ✅ Support remote renewal without redeployment +- ✅ Startup no longer depends on license files +- ✅ Core business flows (payment/order/delivery) remain unchanged +- ✅ Older license-related setup steps in this document are legacy notes --- diff --git a/README.md b/README.md index 675f71e..621bc7e 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ 💳 支付宝 · 微信 · USDT | 🐳 Docker 一键部署 | ⚡ 性能提升 100 倍 -**适用场景**:知识付费 · 虚拟商品 · 在线课程 · 软件授权 · 会员订阅 +**适用场景**:知识付费 · 虚拟商品 · 在线课程 · 软件交付 · 会员服务 🎬 [在线演示](https://t.me/fakawan_bot) · 📱 [联系客服](https://t.me/szsh66) · 📖 [完整文档](#-快速开始) @@ -27,12 +27,11 @@ ## ⚠️ 重要说明 -本项目需要**授权码**才能运行。代码已内置授权验证系统,无法绕过。 +当前版本已移除内置授权校验逻辑,部署时**不再需要 `license.key`**。 -- ✅ 授权码采用签名验证,无法伪造 -- ✅ 到期前 7 天自动提醒 -- ✅ 到期后自动停止运行 -- ✅ 支持远程续费,无需重新部署 +- ✅ 无需授权文件即可启动 +- ✅ 原有支付、订单、发货等业务流程保持不变 +- ✅ 历史文档中涉及授权码的步骤属于旧版本说明 --- @@ -163,7 +162,7 @@ ### 🎉 首次使用教程 -> 💡 **适用于**:刚购买授权码,第一次部署机器人 +> 💡 **适用于**:第一次部署机器人(免授权版本) #### 第 1 步:克隆项目 @@ -206,44 +205,23 @@ vim config.json 2. 发送任意消息 3. 获取你的 ID -#### 第 3 步:保存授权码(重要!) +#### 第 3 步:启动服务 ```bash -# 把授权码完整复制进去 -echo "你的授权码" > license.key - -# 示例: -echo "M0001|1738310400|abc123def456..." > license.key +# 使用 Docker Compose 启动(兼容新旧命令) +docker compose up -d || docker-compose up -d ``` -**注意**: -- ✅ 授权码必须完整,不要有多余的空格或换行 -- ✅ 文件名必须是 `license.key` -- ✅ 文件位置在项目根目录 - -#### 第 4 步:启动服务 - -```bash -# 使用 Docker Compose 启动 -docker-compose up -d -``` - -#### 第 5 步:验证运行 +#### 第 4 步:验证运行 ```bash # 查看日志 -docker-compose logs -f +docker compose logs -f bot || docker-compose logs -f bot -# 应该看到: -# ============================================================ -# ✅ 授权验证通过 -# 📝 客户ID: M0001 -# 📅 到期时间: 2025-02-17 -# ⏰ 剩余天数: 30 天 -# ============================================================ +# 看到机器人启动且无报错即可 ``` -#### 第 6 步:测试机器人 +#### 第 5 步:测试机器人 在 Telegram 搜索你的机器人,发送 `/start` @@ -251,93 +229,73 @@ docker-compose logs -f --- -### 🔄 续费教程 +### 🧭 宝塔面板命令行一步一步安装(免授权版) -> 💡 **适用于**:授权码快到期或已过期,需要续费 +> 适合你当前场景:已经在宝塔面板里打开「命令行」。 -**重要:续费只需要替换授权码,所有数据都会保留!** ✅ - -#### 第 1 步:联系客服续费 - -联系 [@sonhshu](https://t.me/sonhshu),选择续费套餐: - -| 套餐 | 价格 | 优惠 | -|------|------|------| -| 月卡 | 50 USDT | - | -| 季卡 | 135 USDT | 10% | -| 年卡 | 510 USDT | 15% | - -#### 第 2 步:支付并获取新授权码 - -支付后,你会收到一个文件:`续费授权码_M0001_xxx.txt` - -文件内容示例: -``` -客户ID: M0001 -新授权码: M0001|1740902400|def456... -续费时长: 30 天 -新到期日期: 2025-03-19 -``` - -#### 第 3 步:SSH 登录服务器 +#### 0)进入部署目录 ```bash -ssh root@你的服务器IP +cd /www/wwwroot ``` -#### 第 4 步:进入项目目录 +#### 1)确认 Docker / Compose 可用 ```bash +docker -v +docker compose version || docker-compose -v +``` + +#### 2)克隆项目(使用你的仓库) + +```bash +git clone https://github.com/yanguo0905/fakabot.git cd fakabot ``` -#### 第 5 步:替换授权码 +#### 3)创建配置并填写参数 ```bash -# 方法 1:直接输入 -echo "新的授权码" > license.key - -# 示例: -echo "M0001|1740902400|def456..." > license.key - -# 方法 2:使用编辑器 -vim license.key -# 删除旧授权码,粘贴新授权码,保存退出 +cp config.json.example config.json +vim config.json ``` -#### 第 6 步:重启服务 +最少填写: +- `BOT_TOKEN`(从 @BotFather 获取) +- `ADMIN_ID`(从 @userinfobot 获取) +- 你实际使用的支付参数 + +#### 4)启动服务(无需授权文件) ```bash -docker-compose restart +docker compose up -d || docker-compose up -d ``` -#### 第 7 步:验证续费 +#### 5)查看运行日志 ```bash -# 查看日志 -docker-compose logs -f - -# 应该看到: -# ============================================================ -# ✅ 授权验证通过 -# 📝 客户ID: M0001 -# 📅 到期时间: 2025-03-19 ← 新的到期时间 -# ⏰ 剩余天数: 30 天 -# ============================================================ +docker compose logs -f bot || docker-compose logs -f bot ``` -**如果看到新的到期时间,说明续费成功!** 🎉 +看到机器人启动且无报错后,`Ctrl + C` 退出日志。 -#### ✅ 续费后数据保留情况 +#### 6)Telegram 验证 -**以下数据全部保留**: -- ✅ 所有商品配置 -- ✅ 所有订单记录 -- ✅ 所有客户数据 -- ✅ config.json 配置 -- ✅ 数据库文件 +给机器人发送 `/start`,能收到欢迎消息即部署成功。 -**不需要重新配置任何东西!** ✅ +#### 7)常用维护命令 + +```bash +# 重启 +docker compose restart || docker-compose restart + +# 查看容器状态 +docker compose ps || docker-compose ps + +# 更新代码并重建 +git pull +docker compose up -d --build || docker-compose up -d --build +``` --- @@ -356,14 +314,11 @@ cp config.json.example config.json # 3. 编辑配置(填写 Bot Token、管理员 ID 等) vim config.json -# 4. 保存授权码 -echo "你的授权码" > license.key +# 4. 一键启动 +docker compose up -d || docker-compose up -d -# 5. 一键启动 -docker-compose up -d - -# 6. 查看日志 -docker-compose logs -f +# 5. 查看日志 +docker compose logs -f bot || docker-compose logs -f bot ``` **就这么简单!** ✅ @@ -395,7 +350,7 @@ docker-compose ps git pull && docker-compose up -d --build # 备份数据 -tar -czf backup.tar.gz data/ config.json license.key +tar -czf backup.tar.gz data/ config.json ``` --- @@ -412,11 +367,7 @@ tar -czf backup.tar.gz data/ config.json license.key #### 部署步骤 -**第 1 步:购买授权码** - -联系客服:[@sonhshu](https://t.me/sonhshu) - -**第 2 步:准备服务器** +**第 1 步:准备服务器** 推荐服务商: - 阿里云轻量应用服务器(¥24/月) @@ -426,7 +377,7 @@ tar -czf backup.tar.gz data/ config.json license.key 配置建议:1核2GB,20GB 硬盘 -**第 3 步:克隆项目** +**第 2 步:克隆项目** ```bash # SSH 登录服务器 @@ -437,7 +388,7 @@ git clone https://github.com/GUGEGEBAIDU/fakabot.git cd fakabot ``` -**第 4 步:安装依赖** +**第 3 步:安装依赖** ```bash # 更新系统 @@ -455,7 +406,7 @@ systemctl start redis systemctl enable redis ``` -**第 5 步:配置机器人** +**第 4 步:配置机器人** 1. **创建 Telegram Bot** - 找 [@BotFather](https://t.me/BotFather) @@ -512,13 +463,7 @@ vim config.json } ``` -**第 6 步:保存授权码** - -```bash -echo "你的授权码" > license.key -``` - -**第 7 步:启动机器人** +**第 5 步:启动机器人** 方式 A:直接运行(测试用) @@ -568,16 +513,15 @@ systemctl enable fakabot systemctl status fakabot ``` -**第 8 步:验证运行** +**第 6 步:验证运行** 在 Telegram 搜索你的机器人,发送 `/start` -授权验证成功提示: +启动成功提示(示例): ``` -✅ 授权验证通过 -📝 客户ID: C001 -📅 到期时间: 2025-11-18 -⏰ 剩余天数: 30 天 +✅ Bot 启动成功 +✅ 数据库初始化完成 +✅ 支付模块加载完成 ``` --- @@ -970,42 +914,26 @@ crontab -e --- -## 💰 订阅价格 +## 🧾 部署与维护说明 -| 套餐 | 价格 | 优惠 | 推荐 | -|------|------|------|------| -| 月付 | 50 USDT/月 | - | 试用 ⭐ | -| 季付 | 135 USDT/季 | 10% | 推荐 ⭐⭐ | -| 年付 | 510 USDT/年 | 15% | 最划算 ⭐⭐⭐ | - -### 购买方式 - -**联系客服**: [@sonhshu](https://t.me/sonhshu) - -**支付方式**: USDT (TRC20) -``` -TDZM5DSSq8SrB8QTSBHyNwrcTswtCjKs9t -``` - -> 💡 支付后请提供交易哈希和 Telegram 用户名,10 分钟内开通授权 +- 当前版本为 **免授权运行**:不需要 `license.key`,也没有续费步骤。 +- 若你看到旧文档里“授权码/续费/到期”相关内容,以本文档最新内容为准。 +- 推荐优先使用 Docker Compose(`docker compose`)部署,维护成本最低。 --- ## ❓ 常见问题 -### 购买相关 +### 部署相关 -**Q: 可以试用吗?** -A: 建议先购买月付(50 USDT)试用一个月,满意后再升级年付。 +**Q: 还需要授权码吗?** +A: 不需要。当前版本部署与运行均不依赖 `license.key`。 -**Q: 授权码会过期吗?** -A: 是的,月付30天,季付90天,年付365天。到期前7天会自动提醒。 +**Q: 旧文档里出现授权码步骤怎么办?** +A: 直接跳过即可;请以本 README 的“重要说明”和“快速开始”为准。 **Q: 包含技术支持吗?** -A: 是的,所有订阅都包含技术支持,响应时间通常 1-24 小时。 - -**Q: 续费如何操作?** -A: 联系客服,支付续费金额,获得新授权码,替换 license.key 文件即可。 +A: 是,建议优先通过仓库 Issue 或你使用的交付渠道反馈问题。 ### 技术相关 @@ -1016,7 +944,7 @@ A: 最低 1核1GB,推荐 1核2GB。月费约 $5-10。 A: 不是必须的,但强烈推荐。域名可以配置 SSL,更安全。 **Q: 支持哪些支付方式?** -A: 机器人支持支付宝、微信、USDT (TOKEN188)、USDT (柠檬支付)。购买授权使用 USDT (TRC20)。 +A: 机器人支持支付宝、微信、USDT (TOKEN188)、USDT (柠檬支付)。 **Q: 可以自定义界面吗?** A: 可以,修改配置文件中的文案和按钮即可。 @@ -1030,9 +958,6 @@ A: 使用 SQLite 数据库,存储在 fakabot.db 文件中。 **Q: 如何备份数据?** A: 定期备份 fakabot.db 文件和 config.json 配置文件。 -**Q: 授权码丢了怎么办?** -A: 联系客服,提供购买记录,可以重新发送授权码。 - ### 使用相关 **Q: 如何添加商品?** @@ -1049,15 +974,15 @@ A: 当前版本不支持,后续版本会添加。 --- -## 🔒 授权保护 +## 🔐 运行与安全说明 -本项目采用内置授权验证,代码中嵌入了授权检查逻辑。 +当前项目已移除内置授权校验逻辑,默认按“免授权”方式运行。 -**无法绕过的原因**: -- ✅ 授权检查嵌入在每个文件中 -- ✅ 删除授权检查会导致程序崩溃 -- ✅ 授权码采用签名验证,无法伪造 -- ✅ 破解成本远高于购买价格 +**建议你重点关注以下安全项:** +- ✅ 正确配置支付回调地址与签名密钥 +- ✅ 为服务器开启防火墙与最小权限 +- ✅ 定期备份 `fakabot.db` 与 `config.json` +- ✅ 使用 HTTPS / 反向代理保护管理入口 --- @@ -1082,7 +1007,7 @@ A: 当前版本不支持,后续版本会添加。 - 📢 本项目开发者不对用户的使用行为负责 - 📢 不对因使用本项目造成的任何损失负责 -- 📢 保留随时停止服务和撤销授权的权利 +- 📢 保留随时停止服务的权利 - 📢 保留拒绝向任何用户提供服务的权利 ### 明确禁止用途: @@ -1096,8 +1021,8 @@ A: 当前版本不支持,后续版本会添加。 ### 合法用途示例: - ✅ 在线课程、教育内容销售 -- ✅ 正版软件授权码销售 -- ✅ 会员订阅服务 +- ✅ 正版软件与数字内容销售 +- ✅ 会员服务 - ✅ 数字艺术品、音乐销售 - ✅ 电子书、文档资料销售 @@ -1107,28 +1032,7 @@ A: 当前版本不支持,后续版本会添加。 ## 📄 许可证 -**Commercial License - 商业许可证** - -本项目采用商业许可证: - -### 允许: -- ✅ 个人学习和研究 -- ✅ 购买授权后的合法商业使用 -- ✅ 在授权范围内的修改和定制 - -### 禁止: -- ❌ 未经授权的商业使用 -- ❌ 二次销售或分发授权码 -- ❌ 移除或修改授权验证系统 -- ❌ 用于任何非法用途 - -### 授权说明: -- 授权码仅限购买者本人使用 -- 不可转让、出租或共享 -- 违反许可协议将导致授权立即失效 -- 开发者保留追究法律责任的权利 - -**版权所有 © 2025 Fakabot Team. 保留所有权利。** +请遵守仓库中许可证文件与服务条款中的约定;本文档不再包含任何授权码激活要求。 详见 [服务条款](TERMS_OF_SERVICE.md) diff --git a/_auth_check.py b/_auth_check.py index b8a3afc..95ac62a 100644 --- a/_auth_check.py +++ b/_auth_check.py @@ -1,44 +1,20 @@ #!/usr/bin/env python3 -import sys -import hashlib -import os +# -*- coding: utf-8 -*- +"""Compatibility auth shim. -# 混淆的授权检查 -_x = "oipmuxel" -_y = hashlib.sha256(_x.encode()).hexdigest() +This project previously performed import-time authorization checks via +`import _auth_check`. The check is intentionally disabled now, but we keep +this module to avoid runtime/import errors for any legacy extension code that +still imports `_auth_check`. +""" -def check_license(): - """检查授权""" - try: - if not os.path.exists("license.key"): - return False - with open("license.key", "r") as f: - key = f.read().strip() - # 验证授权码格式 - if "|" not in key or len(key.split("|")) != 3: - return False - # 验证授权码 - from offline_license_checker import OfflineLicenseChecker - checker = OfflineLicenseChecker() - valid, _, _ = checker.verify_license() - return valid - except: - return False +from __future__ import annotations -def show_purchase_info(): - """显示购买信息""" - print("\n" + "="*60) - print("⚠️ 需要授权码才能运行") - print("="*60) - print("\n💰 购买授权请联系:") - print(" Telegram: https://t.me/sonhshu") - print("\n💳 订阅价格:") - print(" 月付:50 USDT/月") - print(" 季付:135 USDT/季(优惠10%)") - print(" 年付:510 USDT/年(优惠15%)") - print("="*60 + "\n") - sys.exit(1) -# 自动执行检查 -if not check_license(): - show_purchase_info() +def check_license() -> bool: + """Legacy API: always returns True.""" + return True + + +# Keep side effects empty on import. +AUTH_ENABLED = False diff --git a/admin_panel.py b/admin_panel.py index 8f7c1a8..73045db 100644 --- a/admin_panel.py +++ b/admin_panel.py @@ -1,8 +1,5 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -# 授权检查 - 请勿删除此部分,否则程序无法运行 -import _auth_check - from __future__ import annotations import asyncio import json diff --git a/bot.py b/bot.py index b9d0440..fd6eafc 100644 --- a/bot.py +++ b/bot.py @@ -1,8 +1,5 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -# 授权检查 - 请勿删除此部分,否则程序无法运行 -import _auth_check - import asyncio import json import re @@ -22,10 +19,6 @@ from admin_panel import register_admin_handlers from user_flow import register_user_handlers from utils import ensure_settings_table, get_setting, set_setting -# ⚠️ 离线授权验证(商业版) -from offline_license_checker import init_license_checker -init_license_checker() - # Redis缓存和频率限制 try: from redis_cache import cache diff --git a/docker-compose.yml b/docker-compose.yml index a2f412c..9308a6c 100755 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -33,7 +33,6 @@ services: - "127.0.0.1:58002:58002" volumes: - ./config.json:/app/config.json:ro - - ./license.key:/app/license.key:ro - ./data:/app/data networks: - fakabot_network diff --git a/offline_license_checker.py b/offline_license_checker.py index 6f931a6..ab2639e 100644 --- a/offline_license_checker.py +++ b/offline_license_checker.py @@ -1,135 +1,46 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -# 授权检查 - 请勿删除此部分,否则程序无法运行 -import _auth_check +"""No-op offline license checker (backward compatibility). -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -离线授权验证 - 无需服务器 -直接验证授权码,不需要联网 +Historically this module validated a `license.key` file and could terminate the +process when invalid. To preserve old call sites while removing authorization +requirements, this module now exposes the same public API but always passes. """ -import hashlib -import time -import os -import sys -from datetime import datetime +from __future__ import annotations +from dataclasses import dataclass +from typing import Tuple + + +@dataclass class OfflineLicenseChecker: - """离线授权验证器""" - - def __init__(self, license_file="license.key"): - self.license_file = license_file - # ⚠️ 这个密钥必须和生成器中的密钥一致 - self.SECRET_KEY = "fakabot_2025_secret_key_abc123xyz789def456" - - def read_license_key(self): - """读取授权码""" - if not os.path.exists(self.license_file): - return None - - try: - with open(self.license_file, 'r') as f: - return f.read().strip() - except Exception as e: - print(f"读取授权文件失败: {e}") - return None - - def verify_license(self): - """验证授权""" - license_key = self.read_license_key() - - if not license_key: - return False, "未找到授权文件 license.key", 0 - - try: - # 解析授权码 - parts = license_key.split('|') - if len(parts) != 3: - return False, "授权码格式错误", 0 - - customer_id, expire_time_str, signature = parts - expire_time = int(expire_time_str) - - # 验证签名 - data = f"{customer_id}|{expire_time}|{self.SECRET_KEY}" - expected_signature = hashlib.sha256(data.encode()).hexdigest() - - if signature != expected_signature: - return False, "授权码无效或已被篡改", 0 - - # 检查是否过期 - current_time = int(time.time()) - if current_time > expire_time: - expire_date = datetime.fromtimestamp(expire_time).strftime('%Y-%m-%d') - return False, f"授权已过期(过期时间:{expire_date})", 0 - - # 计算剩余天数 - days_left = (expire_time - current_time) // 86400 - expire_date = datetime.fromtimestamp(expire_time).strftime('%Y-%m-%d') - - print(f"\n{'='*60}") - print(f"✅ 授权验证通过") - print(f"📝 客户ID: {customer_id}") - print(f"📅 到期时间: {expire_date}") - print(f"⏰ 剩余天数: {days_left} 天") - - # 快过期提醒 - if days_left <= 7: - print(f"\n⚠️ 授权即将过期!请及时续费") - print(f"💰 续费联系:") - print(f" Telegram: https://t.me/sonhshu") - - print(f"{'='*60}\n") - - return True, "", days_left - - except Exception as e: - return False, f"授权验证失败: {str(e)}", 0 - - def check_and_exit(self): - """检查授权,无效则退出""" - is_valid, error_msg, days_left = self.verify_license() - - if not is_valid: - print("\n" + "="*60) - print(error_msg) - print("="*60) - print("\n💰 购买或续费订阅请联系:") - print(" Telegram: https://t.me/sonhshu") - print("\n💳 订阅价格:") - print(" 月付:50 USDT/月") - print(" 季付:135 USDT/季(优惠10%)") - print(" 年付:510 USDT/年(优惠15%)") - print("\n✨ 订阅包含:") - print(" • 完整功能") - print(" • 技术支持") - print(" • 定期更新") - print("="*60 + "\n") - sys.exit(1) + """Backward-compatible checker that always reports valid status.""" + + license_file: str = "license.key" + + def read_license_key(self) -> str: + return "" + + def verify_license(self) -> Tuple[bool, str, int]: + # (is_valid, message, days_left) + return True, "license check disabled", 36500 + + def check_and_exit(self) -> bool: + return True -# 全局实例 -_license_checker = None +_license_checker: OfflineLicenseChecker | None = None -def init_license_checker(): - """初始化授权检查器""" + +def init_license_checker() -> OfflineLicenseChecker: global _license_checker _license_checker = OfflineLicenseChecker() - _license_checker.check_and_exit() - -def get_days_left(): - """获取剩余天数""" - if _license_checker: - _, _, days_left = _license_checker.verify_license() - return days_left - return 0 + return _license_checker -# 测试代码 -if __name__ == "__main__": - print("测试离线授权验证...") - init_license_checker() - print("✅ 授权验证通过,程序可以正常运行") - +def get_license_days_left(default: int = 36500) -> int: + if _license_checker is None: + return default + _, _, days_left = _license_checker.verify_license() + return days_left diff --git a/payments.py b/payments.py index 462aa39..d8402c4 100644 --- a/payments.py +++ b/payments.py @@ -1,8 +1,5 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -# 授权检查 - 请勿删除此部分,否则程序无法运行 -import _auth_check - #!/usr/bin/env python3 """ 支付系统核心模块 - 重构版 diff --git a/payments_lemzf_official.py b/payments_lemzf_official.py index c5dff73..d688437 100644 --- a/payments_lemzf_official.py +++ b/payments_lemzf_official.py @@ -1,8 +1,5 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -# 授权检查 - 请勿删除此部分,否则程序无法运行 -import _auth_check - #!/usr/bin/env python3 """ 柠檬支付官方标准对接模块 diff --git a/rate_limiter.py b/rate_limiter.py index 2112c91..92bd16e 100644 --- a/rate_limiter.py +++ b/rate_limiter.py @@ -1,8 +1,5 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -# 授权检查 - 请勿删除此部分,否则程序无法运行 -import _auth_check - #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ diff --git a/redis_cache.py b/redis_cache.py index 6b5ffdf..cfab26e 100644 --- a/redis_cache.py +++ b/redis_cache.py @@ -1,8 +1,5 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -# 授权检查 - 请勿删除此部分,否则程序无法运行 -import _auth_check - #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ diff --git a/screenshot_utils.py b/screenshot_utils.py index 3f3f615..896d78f 100644 --- a/screenshot_utils.py +++ b/screenshot_utils.py @@ -1,8 +1,5 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -# 授权检查 - 请勿删除此部分,否则程序无法运行 -import _auth_check - #!/usr/bin/env python3 """ 支付页面截图工具 diff --git a/user_flow.py b/user_flow.py index cd63f08..4693c6f 100644 --- a/user_flow.py +++ b/user_flow.py @@ -1,8 +1,5 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -# 授权检查 - 请勿删除此部分,否则程序无法运行 -import _auth_check - import asyncio import os import secrets diff --git a/utils.py b/utils.py index 4656de1..06a24cf 100644 --- a/utils.py +++ b/utils.py @@ -1,8 +1,5 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -# 授权检查 - 请勿删除此部分,否则程序无法运行 -import _auth_check - # Consolidated utilities module: merged from utils/*.py # Sections: # - constants: STATUS_ZH, MSG