diff --git a/README.md b/README.md index dbcfd81..2e8a6f3 100644 --- a/README.md +++ b/README.md @@ -23,9 +23,15 @@ CatismImage 是一个基于Web的图片存储和管理系统,提供用户友 pip install -r requirements.txt ``` -4. 配置环境变量: +4. [可选] 配置NSFWPY - 在.env或系统添加以下必需环境变量: + 如果您希望启用NSFW过滤功能,您需要配置NSFWPY。 + + 请参考[HG-ha/nsfwpy](https://github.com/HG-ha/nsfwpy),通过您喜欢的方式完成配置。 + +5. 配置环境变量: + + 在.env/系统/Docker添加以下必需环境变量: ```plaintext # S3存储配置 @@ -37,15 +43,19 @@ CatismImage 是一个基于Web的图片存储和管理系统,提供用户友 # MongoDB配置 MONGO_URI=mongodb://your_mongo_uri MONGO_DB=your_database_name + + # NSFW过滤配置(目前支持NSFWPY) + ENABLE_NSFW_FILTER=true/false + NSFWPY_ENDPOINT=your_nsfwpy_endpoint ``` -5. 运行后端服务: +6. 运行后端服务: ```bsh python app.py ``` -6. 访问前端页面: +7. 访问前端页面: ```bash http://localhost:5000 @@ -56,7 +66,7 @@ CatismImage 是一个基于Web的图片存储和管理系统,提供用户友 1. 注册/登录后获取用户Key 2. 使用上传功能添加图片 3. 在仪表板查看存储使用情况和流量统计 -4. 通过充值功能获取喵币 +4. 通过爱发电回调充值功能获取喵币 5. 在设置中自定义主题颜色和模式 ## 技术栈 @@ -66,10 +76,6 @@ CatismImage 是一个基于Web的图片存储和管理系统,提供用户友 - 数据库:MongoDB - 实时通信:WebSocket -## TODO List - -完善爱发电支付部分 - ## 贡献指南 -欢迎提交Pull Request或报告Issue。请确保代码风格一致并通过所有测试 \ No newline at end of file +欢迎提交Pull Request或报告Issue。请确保代码风格一致并通过所有测试 diff --git a/config.py b/config.py index ab6138a..69c084d 100644 --- a/config.py +++ b/config.py @@ -16,6 +16,9 @@ class Config: MONGO_URI = os.getenv('MONGO_URI') MONGO_DB = os.getenv('MONGO_DB') + ENABLE_NSFW_FILTER = os.getenv('ENABLE_NSFW_FILTER') + NSFWPY_ENDPOINT = os.getenv('NSFWPY_ENDPOINT') + if(S3_ACCESS_KEY == None or S3_SECRET_KEY == None or S3_BUCKET == None or S3_ENDPOINT == None): print("错误:缺少必需的S3环境变量") sys.exit(1) diff --git a/routes/__pycache__/auth.cpython-311.pyc b/routes/__pycache__/auth.cpython-311.pyc index 3247880..0468044 100644 Binary files a/routes/__pycache__/auth.cpython-311.pyc and b/routes/__pycache__/auth.cpython-311.pyc differ diff --git a/routes/__pycache__/images.cpython-311.pyc b/routes/__pycache__/images.cpython-311.pyc index 7a5c630..b40318e 100644 Binary files a/routes/__pycache__/images.cpython-311.pyc and b/routes/__pycache__/images.cpython-311.pyc differ diff --git a/routes/images.py b/routes/images.py index bb9dc2a..f6dd398 100644 --- a/routes/images.py +++ b/routes/images.py @@ -50,6 +50,7 @@ def upload_image(): try: from PIL import Image import io + import requests # 直接使用PIL验证图片内容 try: @@ -59,6 +60,27 @@ def upload_image(): file.seek(0) except Exception: return jsonify({'error': '无效的图片文件'}), 400 + + # 如果启用了NSFW检查 + if AppConfig.ENABLE_NSFW_FILTER: + print("NSFW检查已启用") + file.seek(0) + try: + response = requests.post( + f"{AppConfig.NSFWPY_ENDPOINT}/classify", + files={'image': file}, + headers={'accept': 'application/json'} + ) + response.raise_for_status() + nsfw_data = response.json() + + # 检查NSFW评分 + if nsfw_data.get('neutral', 0) + nsfw_data.get('drawing', 0) < 0.5: + return jsonify({'error': '图片内容不符合安全标准'}), 403 + + file.seek(0) + except Exception as e: + return jsonify({'error': f'NSFW检查失败: {str(e)}'}), 500 except Exception: return jsonify({'error': '无效的图片文件'}), 400