Skip to content

Releases: FuRuiORG/ZJMF-UpstreamMonitor

V2.1.0 - 分组变更监控支持

Choose a tag to compare

@YeHuaiJing YeHuaiJing released this 22 Mar 06:53

新功能

分组变更监控

  • 新增分组变更识别:监控器现在能够识别产品在不同分组之间的移动,不再将分组移动误报为产品的新增或删除
  • 邮件通知增强:SMTP 通知中新增分组变更的独立展示区块,清晰呈现产品的分组移动情况
  • 统计面板优化:HTML 邮件中的变化统计面板新增分组变更计数,一目了然掌握所有变化类型

改进

  • 优化产品变化提取逻辑,准确识别分组移动事件
  • 避免分组移动被重复报告为新增/删除,减少误报干扰

升级说明

直接替换 upstream_monitor.py 文件即可,配置文件和数据库保持兼容。

Full Changelog: V2.0.0...V2.1.0

v2.0.0 - 性能优化与安全性重构

Choose a tag to compare

@YeHuaiJing YeHuaiJing released this 15 Mar 22:43

安全修复

  • HTML XSS 风险修复:邮件通知中的所有动态内容(产品名称、分组名称、价格等)现在都经过 HTML
    转义,防止恶意脚本注入

Bug 修复

  • 价格解析增强:支持多种价格格式
    • 货币符号:¥100、$50、100元
    • 中文标识:免费、试用
    • 异常格式:解析失败时记录警告而不中断程序
  • SQLite 并发处理:添加数据库锁重试机制
    • 最多重试 5 次
    • 递增延迟策略
    • 连接超时 30 秒

性能优化

  • 单次遍历提取:合并 _extract_products 和 _build_product_description_map,从 6 次遍历优化为 2 次
  • 预构建映射复用:_check_price_changes 和 _detect_product_reshuffling 直接使用预构建的 ID
    映射和分组映射
  • 分组 ID 匹配:first_group 和 group 改为按 ID 匹配而非索引,避免顺序变化导致的误报

新功能

  • 日志系统配置:支持通过环境变量控制
    • LOG_LEVEL:设置日志级别(默认 INFO)
    • LOG_FILE:设置日志文件路径(默认仅控制台输出)

其他改进

  • 监控日志从 print() 改为 logging 模块,便于 cron job 场景收集日志
  • 配置向导的交互式提示保留 print(),确保用户体验

Breaking Changes

无,向后兼容所有现有配置。

Full Changelog: V1.2.3...V2.0.0

V1.2.2 - 改进比对逻辑,支持分组ID匹配

Choose a tag to compare

@YeHuaiJing YeHuaiJing released this 15 Mar 22:09

Bug Fixes

  • 改进分组比对逻辑:将一级分组(first_group)和二级分组(group
    )的比对改为按ID匹配,而非按索引位置匹配
  • 避免因分组顺序变化导致的误报(之前会错误报告为"删除+新增")

Changes

  • 扩展 is_products_list 检测逻辑为 is_id_based_list
  • 现在支持按ID匹配的列表:products、first_group、group

Example

之前:分组顺序改变会被误报为删除和新增
现在:只要分组ID相同,正确识别为该分组内容的变化

Full Changelog: V1.2.2...V1.2.3

V1.2.2 - 修复新增产品不发邮件的问题

Choose a tag to compare

@YeHuaiJing YeHuaiJing released this 15 Mar 05:09

修复

新增产品不发邮件的问题

  • 修复了当上游在新分组中上架产品时,邮件通知无法发送的问题
  • 原因:列表长度变化时,新增分组内的产品未被正确提取

配置键名不匹配

  • 修复了配置向导使用 email 键,但初始化代码查找 smtp 键的问题
  • 现在同时支持两种键名,确保向后兼容

日志显示不准确

  • 修复了邮件发送日志写死显示"价格变化"的问题
  • 现在会根据实际变化类型动态显示(新增/删除/修改/价格变化)

Full Changelog: V1.2.1...V1.2.2

优化产品列表变更检测与数据库存储处理

Choose a tag to compare

@YeHuaiJing YeHuaiJing released this 09 Mar 22:12

Bug 修复

产品列表变更检测优化

  • 改进产品列表变更检测逻辑,现在按产品ID进行匹配而非依赖顺序比较,解决了因产品顺序变化导致的误报问题
    数据库存储增强

  • 新增对字典和列表类型值的JSON序列化处理,确保复杂数据结构能够正确存入数据库
    路径解析兼容性

  • 更新路径解析逻辑,支持新旧格式的产品路径匹配,提升向后兼容性

更新详情

本次更新主要解决了以下问题:

  1. 变更检测更准确 - 当上游产品列表顺序发生变化但实际内容未变时,不再误报变更
  2. 数据存储更可靠 - 复杂的数据类型(如字典、列表)现在可以正确序列化存储
  3. 兼容性更好 - 支持多种产品路径格式,适应不同的上游数据源

新增库存状态监控模式,优化性能与稳定性

Choose a tag to compare

@YeHuaiJing YeHuaiJing released this 08 Mar 09:03

新增功能

库存监控模式

  • 新增 stock_notify_mode 配置项,支持三种模式:
    • full - 完全对比:监控所有库存数值变化
    • status_only - 状态变化:仅在库存状态切换时通知(有货 ↔ 缺货)
    • disabled - 禁用:不监控库存变化
  • 配置向导新增"配置库存监控"选项(菜单项 6)

Bug 修复

  • 修复 get_recent_changes 方法查询错误的数据库表名(price_changes → change_records)

性能优化

  • 消除 _extract_products 重复计算,改为预先提取后传递
  • 新增 _build_product_description_map 方法,预构建产品描述映射
  • 数据库连接使用上下文管理器,防止连接泄漏

稳定性改进

  • 网络请求新增重试机制,支持指数退避(默认最多 3 次重试)
  • 关键错误处理添加 logging 日志记录

升级指南

建议旧版用户执行以下步骤:

  1. 备份现有配置文件 upstream_config.json
  2. 删除旧的配置文件
  3. 运行 python3 upstream_monitor.py --config 重新配置

Full Changelog: V1.1.1...V1.2.0

简化差异存储机制

Choose a tag to compare

@YeHuaiJing YeHuaiJing released this 08 Mar 00:30

变更内容

🗑️ 移除功能

  • 移除 upstream_diffs 目录 - 不再生成差异 JSON 文件
    • 变化记录已通过数据库持久化存储,差异文件冗余
    • 减少磁盘占用,简化项目结构

🔧 优化

  • 简化变化检测输出信息
  • 更新文档,移除差异文件相关说明

升级说明

从 v1.1.0 升级:

  1. 下载新版本源码覆盖旧版本
  2. 原有的 upstream_diffs 目录可以手动删除(可选)
  3. 数据库和配置文件完全兼容,无需额外操作

数据目录结构(更新后)

/opt/ZJMFUpstreamMonitor/          # Linux
├── upstream_config.json           # 配置文件
├── upstream_data/                 # 初始数据存储目录
│   └── {上游名称}_initial.json
└── upstream_monitor.db            # SQLite 数据库文件

Full Changelog: V1.1.0...V1.1.1

增强邮件通知与数据追踪功能

Choose a tag to compare

@YeHuaiJing YeHuaiJing released this 07 Mar 23:45
0738fc4

🚀 新功能

  • 增强的邮件通知模板 - 全新的 HTML 邮件格式,支持颜色区分涨价/降价/新增/删除等变化类型
  • 产品链接支持 - 邮件通知中包含可直接访问的产品链接,快速定位变化产品
  • 字段级变化追踪 - 精确追踪产品字段级别的修改,记录旧值与新值对比
  • 变化记录数据库存储 - 所有变化记录持久化到 SQLite 数据库,支持历史查询

✨ 改进

  • 优化差异比较算法 - 改进数据对比逻辑,更准确地识别产品级别变化
  • 邮件内容截断 - 过长的字段值自动截断,避免邮件过大
  • 配置向导增强 - 支持更友好的交互式配置流程
  • 跨平台路径支持 - Windows 与 Linux 自动适配数据存储路径

🐛 修复

  • 修复首次运行时数据文件路径问题
  • 修复价格变化检测的边界情况处理
  • 修复邮件发送失败时的异常处理
image

上游产品信息监控工具正式发布!这是一个用于自动化监控上游供应商产品变化的工具。

Choose a tag to compare

@YeHuaiJing YeHuaiJing released this 07 Mar 06:27

主要功能

  • 多上游监控 - 支持同时配置和监控多个上游供应商
  • 价格变化检测 - 自动检测产品价格涨跌,记录变化幅度
  • 数据变化追踪 - 检测产品新增、删除、字段修改等变化
  • 差异文件存储 - 将每次变化保存为独立的 JSON 差异文件
  • SQLite 数据库 - 持久化存储所有变化记录,便于查询分析
  • 邮件通知 - 支持 SMTP 邮件通知,实时推送变化信息
  • HTML 邮件格式 - 直观的邮件模板,清晰展示变化详情
  • 配置向导 - 交互式命令行配置工具,快速完成设置
image

Full Changelog: https://github.com/FuRuiORG/ZJMF-UpstreamMonitor/commits/V1.0.0