================================================================================
ZJPB v2.2.0 手动上传文件清单
================================================================================

本地路径: D:\315mac\Code\zjpb\
目标路径: /opt/1panel/apps/zjpb/

方案一：Git Patch方式（推荐）
--------------------------------
只需上传2个文件：

1. v2.2.0.patch (56KB)
   目标: /opt/1panel/apps/zjpb/v2.2.0.patch

2. git_patch_deploy_v2.2.sh (2.6KB)
   目标: /opt/1panel/apps/zjpb/git_patch_deploy_v2.2.sh

上传后执行：
cd /opt/1panel/apps/zjpb
chmod +x git_patch_deploy_v2.2.sh
./git_patch_deploy_v2.2.sh

================================================================================

方案二：手动上传所有文件（如果不想用patch）
----------------------------------------
需要上传9个文件：

新增文件（4个）：
--------------
1. utils/news_searcher.py
   本地: D:\315mac\Code\zjpb\utils\news_searcher.py
   目标: /opt/1panel/apps/zjpb/utils/news_searcher.py
   说明: NewsSearcher工具类，封装博查API调用

2. migrate_news_fields.py
   本地: D:\315mac\Code\zjpb\migrate_news_fields.py
   目标: /opt/1panel/apps/zjpb/migrate_news_fields.py
   说明: 数据库迁移脚本，添加source_name和source_icon字段

3. test_news_feature.py
   本地: D:\315mac\Code\zjpb\test_news_feature.py
   目标: /opt/1panel/apps/zjpb/test_news_feature.py
   说明: 新闻功能测试脚本

4. fetch_news_cron.py
   本地: D:\315mac\Code\zjpb\fetch_news_cron.py
   目标: /opt/1panel/apps/zjpb/fetch_news_cron.py
   说明: 定期任务脚本，批量更新新闻

修改文件（4个）：
--------------
5. config.py
   本地: D:\315mac\Code\zjpb\config.py
   目标: /opt/1panel/apps/zjpb/config.py
   说明: 添加博查API配置

6. models.py
   本地: D:\315mac\Code\zjpb\models.py
   目标: /opt/1panel/apps/zjpb/models.py
   说明: News模型添加source_name和source_icon字段

7. app.py
   本地: D:\315mac\Code\zjpb\app.py
   目标: /opt/1panel/apps/zjpb/app.py
   说明: 添加新闻路由、智能更新逻辑、NewsAdmin优化

8. templates/detail_new.html
   本地: D:\315mac\Code\zjpb\templates\detail_new.html
   目标: /opt/1panel/apps/zjpb/templates/detail_new.html
   说明: 新闻展示UI，布局优化

文档文件（1个，可选）：
--------------------
9. NEWS_FEATURE_v2.2.md
   本地: D:\315mac\Code\zjpb\NEWS_FEATURE_v2.2.md
   目标: /opt/1panel/apps/zjpb/NEWS_FEATURE_v2.2.md
   说明: 新闻功能完整文档

================================================================================

手动上传后需要执行的操作：
------------------------

1. 运行数据库迁移：
   cd /opt/1panel/apps/zjpb
   source venv/bin/activate
   python migrate_news_fields.py

2. 配置.env文件，添加：
   BOCHA_API_KEY=sk-76d0236a50d445ae92e75b634ed5313c
   BOCHA_BASE_URL=https://api.bocha.cn

3. 重启应用：
   ./manage.sh restart

4. 测试功能：
   python test_news_feature.py

================================================================================

文件详细信息：
------------

utils/news_searcher.py (271行)
- NewsSearcher类
- 博查API封装
- 新闻搜索和解析
- 错误处理

migrate_news_fields.py (99行)
- 添加source_name字段
- 添加source_icon字段
- 检查字段是否已存在
- 显示表结构

test_news_feature.py (142行)
- API配置检查
- 数据库连接测试
- 新闻搜索测试
- 保存数据测试

fetch_news_cron.py (167行)
- 批量新闻更新
- 命令行参数支持
- 进度显示
- 错误处理

config.py (修改部分)
- BOCHA_API_KEY配置
- BOCHA_BASE_URL配置
- BOCHA_SEARCH_ENDPOINT配置
- NEWS_SEARCH_*配置

models.py (修改部分)
- News.source_name字段
- News.source_icon字段

app.py (修改部分)
- site_detail路由：智能新闻更新逻辑（64行新增）
- /api/fetch-site-news路由（91行）
- /api/fetch-all-news路由（105行）
- NewsAdmin: 新增source_name和source_icon字段

templates/detail_new.html (修改部分)
- 新闻模块HTML（47行）
- 新闻来源展示
- 布局调整（新闻左侧，推荐右侧）

================================================================================

推荐使用方案一（Git Patch）的原因：
---------------------------------
✅ 只需上传2个文件（58.6KB总共）
✅ 自动处理文件合并，避免手动覆盖错误
✅ Git历史完整，可追溯
✅ 自动备份现有修改
✅ 一键回滚
✅ 自动运行数据库迁移
✅ 自动重启应用

手动上传的缺点：
--------------
❌ 需要上传9个文件
❌ 需要确保文件路径正确
❌ 需要手动运行迁移脚本
❌ 需要手动重启应用
❌ 无法自动回滚
❌ 可能覆盖生产环境的修改

================================================================================

1Panel文件管理器上传步骤：
-------------------------

1. 登录1Panel管理面板
2. 进入"文件"菜单
3. 导航到 /opt/1panel/apps/zjpb/
4. 点击"上传"按钮
5. 选择需要上传的文件
6. 等待上传完成

如果上传utils/news_searcher.py：
- 先导航到 /opt/1panel/apps/zjpb/utils/
- 然后上传 news_searcher.py

如果上传templates/detail_new.html：
- 先导航到 /opt/1panel/apps/zjpb/templates/
- 然后上传 detail_new.html

================================================================================

SCP命令上传（如果使用SSH）：
--------------------------

# 方案一：上传patch文件
scp v2.2.0.patch root@your-server:/opt/1panel/apps/zjpb/
scp git_patch_deploy_v2.2.sh root@your-server:/opt/1panel/apps/zjpb/

# 方案二：上传所有文件
scp utils/news_searcher.py root@your-server:/opt/1panel/apps/zjpb/utils/
scp migrate_news_fields.py root@your-server:/opt/1panel/apps/zjpb/
scp test_news_feature.py root@your-server:/opt/1panel/apps/zjpb/
scp fetch_news_cron.py root@your-server:/opt/1panel/apps/zjpb/
scp config.py root@your-server:/opt/1panel/apps/zjpb/
scp models.py root@your-server:/opt/1panel/apps/zjpb/
scp app.py root@your-server:/opt/1panel/apps/zjpb/
scp templates/detail_new.html root@your-server:/opt/1panel/apps/zjpb/templates/
scp NEWS_FEATURE_v2.2.md root@your-server:/opt/1panel/apps/zjpb/

================================================================================

建议：
-----
强烈推荐使用方案一（Git Patch）！
- 更安全
- 更快速
- 更可靠
- 更易回滚

================================================================================
