Jowe
|
f767a8a1b4
|
feat: 控制台增加添加Skill快捷入口
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-25 22:55:14 +08:00 |
|
Jowe
|
e7d2c3d4d7
|
fix: 将 Skills 移到顶部导航菜单
- 顶部导航栏添加 Skills 链接(与 Home/Categories/Admin 平级)
- 移除首页 Tab 中的 Skills 入口
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-25 22:45:57 +08:00 |
|
Jowe
|
731f0d3822
|
feat: v4.0 - 添加 Skills 管理功能
- 新增 Skill 模型,支持手动添加和 GitHub 抓取
- 后台添加 Skills 管理界面
- 前台添加 /skills 列表页和 /skills/<slug> 详情页
- 首页增加 Skills Tab 入口
- 添加数据库迁移脚本
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-25 22:39:50 +08:00 |
|
Jowe
|
76ae3cbb5a
|
feat: 添加 API 密钥菜单和文档链接
- 侧边栏添加 API 密钥菜单项
- API 密钥列表页添加 API 文档链接
- 添加 /docs/ 路由服务文档文件
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-23 23:19:48 +08:00 |
|
Jowe
|
946e7197ae
|
docs: 添加 API 文档和 OpenClaw Skill
- 新增 docs/API_DOC.md API 接口文档
- 新增 .claude/skills/zjpb-api.md OpenClaw 集成说明
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-23 23:16:57 +08:00 |
|
Jowe
|
5cef0b94fd
|
feat: 添加 API Key 发布功能
- 新增 ApiKey 模型,支持 API 密钥认证
- 添加 require_api_key 装饰器实现 API 认证
- 实现 5 个站点管理 API 接口 (GET/POST/PUT/DELETE)
- 添加后台 API Key 管理界面
- 添加数据库迁移脚本
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-23 22:50:03 +08:00 |
|
Jowe
|
bcc6a7d874
|
docs: 更新工作进度记录 v3.0.1
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-13 23:09:49 +08:00 |
|
Jowe
|
ea181cfcbc
|
fix: 修复编辑页面获取新闻按钮逻辑
- 添加网站信息API通过ID获取code
- 修改前端逻辑先获取网站信息再获取新闻
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-13 22:24:07 +08:00 |
|
Jowe
|
de55283b70
|
fix: 为edit页面添加获取新闻按钮
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-13 22:19:42 +08:00 |
|
Jowe
|
edbc4288f9
|
feat: v3.0.1 - 后台获取新闻功能优化
1. 新增后台管理获取新闻API (/api/admin/fetch-news/<code>)
- 不需要验证码,仅管理员可用
- 用于后台手动触发新闻获取
2. 后台网站管理添加"手动获取新闻"按钮
- 在新闻关键词字段旁边显示
- 编辑模式可用
3. 取消前台detail页面手动获取新闻入口
- 用户不再需要手动刷新新闻
- 新闻由管理员在后台控制获取
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-13 22:16:12 +08:00 |
|
Jowe
|
8b71da2956
|
docs: 添加博查API配置到环境变量模板
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-13 21:48:33 +08:00 |
|
Jowe
|
e3d1551058
|
fix: 修复索引添加脚本的MySQL语法兼容性
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-13 21:18:45 +08:00 |
|
Jowe
|
ecfb0db1fa
|
perf: 首页分页改为每页20条,提升加载性能
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-13 21:12:47 +08:00 |
|
Jowe
|
9470acc369
|
perf: 优化 detail 页面加载性能
- 使用 JOIN 查询替代子查询获取推荐网站
- 异步更新浏览量,避免阻塞页面加载
- 添加数据库索引脚本 (site_tags, sites 表)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-13 21:07:33 +08:00 |
|
Jowe
|
3c114cdf0b
|
docs: 保存2026-02-23开发进度记录
|
2026-02-23 23:34:42 +08:00 |
|
Jowe
|
b22627a066
|
chore: 调整发布策略,移除SSH直连权限
改为本地开发 → push到Gitea → 手动SSH拉取的安全部署流程
禁止Claude直接操作生产服务器
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-02-23 23:26:28 +08:00 |
|
Jowe
|
a9a4f5f8e8
|
feat: 添加日常更新部署脚本 update.sh
git pull 拉取代码后自动 systemctl restart zjpb,并验证服务状态
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-02-23 23:16:28 +08:00 |
|
Jowe
|
1ddd8664ae
|
fix: 后台网站管理列表改为按创建时间倒序排列
最新添加的网站排在最前面,与新闻管理保持一致
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-02-23 22:03:51 +08:00 |
|
Jowe
|
2e31d2bfd6
|
fix: 修复前台获取新闻时验证码验证失败的问题
问题原因:fetch请求缺少credentials选项,导致浏览器不发送session cookie
解决方案:添加credentials: 'same-origin'确保发送session cookie
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-02-23 21:19:34 +08:00 |
|
Jowe
|
1118db4837
|
fix: 修复NewsAdmin的joinedload导致计数查询报错
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-02-23 21:11:05 +08:00 |
|
Jowe
|
3fdbc2ac8e
|
perf: 优化管理后台性能 - 修复N+1查询、添加索引、优化统计
- 修复NewsAdmin的N+1查询问题,使用joinedload预加载
- 添加数据库索引迁移脚本(Site、News、Tag表)
- 优化管理后台统计查询,减少数据传输
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-02-23 21:00:35 +08:00 |
|
Jowe
|
03bf1c3de7
|
docs: 添加v3.2开发进度文档
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-08 23:32:38 +08:00 |
|
Jowe
|
2eefaa8cc9
|
feat: v3.2 - 用户管理功能和后台菜单统一
新增功能:
- 用户管理列表页面(搜索、分页)
- 用户详情页面(基本信息、收藏统计)
- 管理员重置用户密码功能
- 管理员修改用户昵称功能
- 管理后台首页添加用户统计卡片
优化改进:
- 统一后台菜单结构,创建可复用的 sidebar 组件
- 所有后台页面使用统一菜单,避免硬编码
- 优化权限配置文件,清理冗余规则
技术文档:
- 添加任务分解规则文档
- 添加后台菜单统一规则文档
- 添加数据库字段修复脚本
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-08 23:20:35 +08:00 |
|
Jowe
|
c61969dfc9
|
feat: v3.1 - 用户密码管理和邮箱验证功能
新增功能:
1. 修改密码功能
- 用户可以修改自己的密码
- 需要验证旧密码
- 新密码至少6位且不能与旧密码相同
2. 邮箱绑定功能
- 用户可以绑定/修改邮箱
- 邮箱格式验证和唯一性检查
- 修改邮箱后需要重新验证
3. 邮箱验证功能
- 发送验证邮件(24小时有效)
- 点击邮件链接完成验证
- 验证状态显示
技术实现:
- 新增4个数据库字段(email_verified等)
- 封装邮件发送工具(utils/email_sender.py)
- 新增5个API接口
- 新增修改密码页面
- 集成邮箱管理到个人中心
文件变更:
- 修改:app.py, models.py, base_new.html, profile.html
- 新增:change_password.html, email_sender.py, migrate_email_verification.py
- 文档:server-update.md, SERVER_RESTART_GUIDE.md
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-07 23:26:02 +08:00 |
|
Jowe
|
1be1f35568
|
docs: 更新部署指南到v3.0.1
更新内容:
- 添加 v3.0.1 修复说明
- 更新服务端路径为 /opt/1panel/apps/zjpb
- 添加数据库约束修复步骤
- 更新最新提交号 7a6fd0c
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-06 19:27:52 +08:00 |
|
Jowe
|
7a6fd0c388
|
fix: v3.0.1 - 修复5个代码问题
修复内容:
1. Collection 模型唯一约束逻辑错误
- 修改约束从 (user_id, site_id, folder_id) 到 (user_id, site_id)
- 防止用户多次收藏同一网站
2. 用户注册重复提交数据库
- 优化为只提交一次数据库操作
- 提升注册性能
3. JavaScript 未使用的变量
- 删除 updateCollectButton() 中未使用的 icon 变量
4. 文件夹计数逻辑缺失
- 为每个文件夹添加收藏数量计算
- 修复收藏列表页面显示
5. JavaScript 错误处理不完善
- 所有 fetch 调用添加 HTTP 状态码检查
- 改进网络错误提示
新增文件:
- fix_collection_constraint.py - 数据库约束修复脚本
- BUGFIX_v3.0.1.md - 详细修复记录
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-06 19:27:12 +08:00 |
|
Jowe
|
423039ce68
|
docs: 添加v3.0服务端部署指南
包含内容:
- 完整的部署步骤(9个步骤)
- 功能测试清单(6项测试)
- 故障排查指南(5个常见问题)
- 性能优化建议
- 安全检查清单
- 后续维护建议
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-06 19:20:50 +08:00 |
|
Jowe
|
2067fb1712
|
feat: v3.0 - 用户系统和收藏功能
核心功能:
- 用户注册/登录系统(用户名+密码)
- 工具收藏功能(一键收藏/取消收藏)
- 收藏分组管理(文件夹)
- 用户中心(个人资料、收藏列表)
数据库变更:
- 新增 users 表(用户信息)
- 新增 folders 表(收藏分组)
- 新增 collections 表(收藏记录)
安全增强:
- Admin 和 User 完全隔离
- 修复14个管理员路由的权限漏洞
- 所有管理功能添加用户类型检查
新增文件:
- templates/auth/register.html - 注册页面
- templates/auth/login.html - 登录页面
- templates/user/profile.html - 用户中心
- templates/user/collections.html - 收藏列表
- create_user_tables.py - 数据库迁移脚本
- USER_SYSTEM_README.md - 用户系统文档
- CHANGELOG_v3.0.md - 版本更新日志
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-06 19:19:05 +08:00 |
|
Jowe
|
34cd05b01c
|
feat: v2.6.1 - 简化验证码方案,所有手动请求都需验证
核心改进:
- 移除复杂的IP限流逻辑,改为每次请求都需验证码
- 添加简单图片验证码生成(4位字母+数字)
- 添加验证码弹窗UI,用户体验友好
- 支持回车键提交验证码,点击刷新验证码
- 验证码5分钟有效期
技术实现:
- 使用Pillow生成验证码图片,带干扰线和噪点
- Session存储验证码,一次性验证后自动清除
- 前端模态框设计,支持点击外部关闭
- 代码更简洁,维护成本更低
安全性:
- 每次请求都需要人工验证
- 有效防止API滥用和批量调用
- 不依赖第三方服务,稳定可靠
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-06 17:19:29 +08:00 |
|
Jowe
|
6b71fa4351
|
docs: 添加v2.6.0故障排查指南
包含部署过程中常见问题的诊断和解决方案。
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-06 16:44:42 +08:00 |
|
Jowe
|
659e996627
|
docs: 添加v2.6.0快速部署指南
|
2026-02-06 15:54:51 +08:00 |
|
Jowe
|
939717fa57
|
feat: v2.6.0 - API安全优化和文档整合
## 核心优化
- 移除详情页自动调用博查API的逻辑,改为按需加载
- 添加基于IP的频率限制(每小时3次)
- 实现验证码防护机制(超过阈值后要求验证)
- 新增频率限制工具类 utils/rate_limiter.py
## 成本控制
- API调用减少约90%+(只在用户点击时调用)
- 防止恶意滥用和攻击
- 可配置的频率限制和验证码策略
## 文档整合
- 创建 docs/ 目录结构
- 归档历史版本文档到 docs/archive/
- 移动部署文档到 docs/deployment/
- 添加文档索引 docs/README.md
## 技术变更
- 新增依赖: Flask-Limiter==3.5.0
- 修改: app.py (移除自动调用,新增API端点)
- 修改: templates/detail_new.html (按需加载UI)
- 新增: utils/rate_limiter.py (频率限制和验证码)
- 新增: docs/archive/DEVELOP_v2.6.0_API_SECURITY.md
## 部署说明
1. pip install Flask-Limiter==3.5.0
2. 重启应用
3. 无需数据库迁移
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-06 15:54:13 +08:00 |
|
Jowe
|
c1a06ad684
|
docs: 添加服务器部署文档和v2.5部署记录
|
2026-01-10 21:29:30 +08:00 |
|
Jowe
|
22efd8b31c
|
fix: 修复标签页description为空时的TypeError
问题:
- 当selected_tag.description为None时,尝试与字符串相加导致TypeError
- 造成标签页访问时出现502错误
修复:
- 在index_new.html第8行添加or默认值处理
- 确保description为None时使用默认文案
测试:
- 本地验证标签页正常显示
- 修复v2.5部署502问题
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-01-10 18:39:19 +08:00 |
|
Jowe
|
e71230ca96
|
feat: v2.5 社媒分享功能 + 面包屑优化
新增功能:
- 社媒分享:一键生成多平台分享文案
- 支持8个平台:通用、小红书、抖音、B站、微信公众号、朋友圈、X (Twitter)、LinkedIn
- 智能生成适配各平台特点的文案(字数限制、风格、内容丰富度)
- 集成DeepSeek AI自动生成 + 规则模板回退
- "分享"按钮支持直接跳转到平台发布后台
- X (Twitter)支持预填充文案
- 自动复制文案到剪贴板
优化改进:
- 面包屑导航:修复折行问题,确保始终单行显示
- 添加 white-space: nowrap 和 flex-shrink: 0
- 长标题自动省略显示
- 社媒分享按钮文案:从"一键生成社媒分享"改为"分享"
- 更新Twitter为X,使用x.com域名
技术实现:
- 前端:detail_new.html 新增分享弹窗和交互逻辑
- 后端:app.py 新增 /api/generate-social-share 接口
- 支持按平台定制文案内容和格式
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-01-10 18:04:42 +08:00 |
|
Jowe
|
8011e5bd4a
|
feat: 实现最新/热门/推荐标签功能
- 移除顶部热门工具排行榜模块
- 在标签下方添加三个tab(最新/热门/推荐)
- 添加is_recommended字段到Site模型
- 创建数据库迁移脚本add_is_recommended.py
- 更新后台管理界面支持推荐标记
- 更新分页链接保持tab状态
- 所有功能已本地测试验证通过
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-01-04 00:59:37 +08:00 |
|
Jowe
|
da30394ed7
|
feat: 添加热门工具排行榜功能
v2.5.0 - 新增首页热门工具展示
新增功能:
- 在首页顶部展示按浏览量排序的前10个热门工具
- 响应式网格布局(桌面5列、平板3列、手机2列)
- 视觉突出的排行榜徽章和排名标识(前三名金银铜色)
- 仅在首页显示,筛选和搜索时隐藏
技术实现:
- app.py: 添加popular_sites查询逻辑
- templates/index_new.html: 新增热门工具展示区域和样式
用户体验提升:
- 帮助用户快速发现最受欢迎的AI工具
- 视觉层级清晰,排名一目了然
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-01-04 00:19:28 +08:00 |
|
Jowe
|
ad93e7e8ad
|
fix: 在所有独立管理页面添加SEO工具菜单项
- 修改 change_password.html 添加SEO工具菜单
- 修改 batch_import.html 添加SEO工具菜单和修改密码菜单
- 确保所有管理页面的侧边栏菜单保持一致
|
2026-01-03 23:38:36 +08:00 |
|
Jowe
|
c68d846daa
|
fix: 修复SEO工具页面模板继承错误,改为独立完整HTML页面
- 将seo_tools.html从继承admin/master.html改为独立完整HTML
- 从master.html中移除SEO工具菜单项,避免url_for错误
- 修复本地UndefinedError: 'admin_view' is undefined错误
|
2026-01-03 23:26:25 +08:00 |
|
Jowe
|
c74b115ac0
|
feat: 添加SEO工具管理页面 - v2.4.1
新增功能:
1. 后台SEO工具管理页面 (/admin/seo-tools)
- 显示sitemap状态(是否存在、最后更新时间、文件大小)
- 显示动态sitemap URL并支持一键复制
2. 生成静态sitemap.xml文件 (/api/generate-static-sitemap)
- 将动态sitemap生成为static/sitemap.xml静态文件
- 支持手动触发更新
- 返回URL数量统计信息
3. 通知搜索引擎功能 (/api/notify-search-engines)
- 支持向Google、Baidu、Bing提交sitemap更新通知
- 使用各搜索引擎的ping接口
- 返回每个搜索引擎的提交状态
4. 一键操作
- 提供"一键生成并通知"功能
- 自动执行生成sitemap + 通知搜索引擎两个步骤
- 适合日常SEO维护使用
技术实现:
- 使用Flask路由和@login_required装饰器保护后台接口
- AJAX + fetch API实现前端交互
- Bootstrap 4卡片式UI设计
- 实时显示操作结果,颜色区分成功/失败状态
用户价值:
- 无需手动登录各搜索引擎后台提交sitemap
- 支持批量更新和通知,提升SEO工作效率
- 可视化状态展示,便于监控sitemap更新情况
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-01-03 17:29:14 +08:00 |
|
Jowe
|
7da0bb6e54
|
feat: v2.4.0 - SEO全面优化
新增功能:
1. 自动化SEO基础设施
- Sitemap.xml 动态生成 (/sitemap.xml)
- Robots.txt 动态配置 (/robots.txt)
2. Schema.org 结构化数据
- 工具详情页添加 SoftwareApplication 结构化数据
- 面包屑导航添加 BreadcrumbList 结构化数据
- Open Graph 标签支持社交媒体分享
3. 智能内链系统
- 自动识别工具名称并添加内部链接
- auto_link 过滤器支持内容互联
4. 标签专题页SEO优化
- Tag模型新增字段: seo_title, seo_description, seo_keywords
- 支持自定义标签页SEO信息
- 提供迁移脚本: migrate_tag_seo_fields.py
5. 面包屑导航
- 可视化导航: 首页 > 标签 > 工具名
- 支持Schema.org和视觉显示
6. 页面级SEO改进
- 工具详情页: canonical链接, 动态meta标签
- 标签页: 专属SEO信息支持
- 首页: 完整meta标签配置
技术改进:
- 迁移脚本支持幂等性检查
- Windows控制台编码兼容性优化
- 数据库字段注释标注版本
部署文档: DEPLOY_v2.4.0.md
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-01-03 16:32:13 +08:00 |
|
Jowe
|
495c3b8025
|
fix: 启用gunicorn守护进程模式,避免前台运行
- 修改gunicorn_config.py中daemon=True
- 解决./manage.sh restart后程序在前台运行的问题
- 应用将在后台运行,不会被Ctrl+C中断
|
2025-12-31 11:16:40 +08:00 |
|
Jowe
|
289a09b376
|
docs: 添加v2.3.0部署清单
|
2025-12-31 11:03:04 +08:00 |
|
Jowe
|
fdde6990fb
|
feat: v2.3.0 - 新闻获取准确性优化
核心改进:
1. 新增专用新闻关键词字段(sites.news_keywords)
2. 严格匹配搜索策略(双引号包裹关键词)
3. 前台手动刷新新闻功能
数据库变更:
- Sites表添加news_keywords字段(VARCHAR(200))
- 提供迁移脚本migrate_news_keywords.py
代码变更:
- models.py: Site模型添加news_keywords字段
- app.py: 后台表单配置、API路由、search_site_news调用优化
- utils/news_searcher.py: 支持news_keywords参数优先匹配
- templates/detail_new.html: 添加刷新按钮和JavaScript
新增功能:
- 后台可为每个网站设置专属新闻关键词
- 详情页"获取最新资讯"按钮(前台可用,无需登录)
- 新API端点:POST /api/refresh-site-news/<site_code>
文档:
- DEPLOY_v2.3.0.md: 完整部署指南
- DEPLOY_v2.3_QUICK.md: 快速部署指南
向后兼容:
- 现有网站自动使用网站名称作为默认关键词
- 未设置关键词时降级使用网站名称搜索
🤖 Generated with Claude Code (https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2025-12-31 11:01:51 +08:00 |
|
Jowe
|
bdf31090ed
|
merge: 合并服务器代码,统一品牌和配置
|
2025-12-31 01:37:16 +08:00 |
|
ZJPB Admin
|
f43b608d88
|
fix: 删除无效的nul文件
|
2025-12-31 01:37:27 +08:00 |
|
Jowe
|
4d3163575c
|
feat: 添加v2.2.0部署脚本和工具文件
|
2025-12-31 01:33:47 +08:00 |
|
ZJPB Admin
|
4b6a77f71b
|
fix: 修复detail.html的品牌名称
|
2025-12-31 00:26:23 +08:00 |
|
ZJPB Admin
|
98151594f2
|
fix: 完善品牌名称修改,更新页脚和默认title
|
2025-12-31 00:24:38 +08:00 |
|
ZJPB Admin
|
912e9f0ce7
|
fix: 修复首页title,统一使用新品牌名称
|
2025-12-31 00:19:06 +08:00 |
|