# niuma **Repository Path**: beautiful_corridors/niuma ## Basic Information - **Project Name**: niuma - **Description**: 桌面监控,鼠标监测,键盘监测,后台程序监测,牛马工作量监控大屏 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://gitee.com/beautiful_corridors/niuma - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 0 - **Created**: 2025-05-25 - **Last Updated**: 2025-12-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: 牛马, 监控, 大屏, Python, 工作分析 ## README # Python 工作量监控大屏 基于 Python + PySide6 开发的实时工作量监控桌面应用,提供美观的大屏显示界面。 ![image-20250530153311962](./assets/image-20250530153311962.png) ![image-20250530153333420](./assets/image-20250530153333420.png) ![image-20250530153349412](./assets/image-20250530153349412.png) ![image-20250530153358931](./assets/image-20250530153358931.png) ![image-20250530153407876](./assets/image-20250530153407876.png) ![image-20250531163532373](./assets/image-20250531163532373.png) ## 功能特性 ### 📊 实时监控 - **键盘输入统计**: 实时统计按键次数,显示平均和峰值每分钟按键数 - **鼠标移动追踪**: 监控鼠标移动距离,自动转换为厘米单位 - **应用使用时间**: 追踪每个应用程序的使用时长和切换频率 - **工作时长统计**: 显示总工作时间和生产力指数 ### 🎨 界面设计 - **现代化UI**: 采用 PySide6 实现的毛玻璃效果和渐变背景 - **响应式布局**: 自适应不同屏幕尺寸 - **实时动画**: 数据更新时的平滑过渡效果 - **深色主题**: 护眼的深色配色方案 ### ⚡ 性能优化 - **低资源占用**: 高效的多线程数据采集 - **实时更新**: 1秒间隔的数据刷新 - **跨平台支持**: Windows、macOS、Linux ## 安装和运行 ### 环境要求 - Python 3.8+ - pip ### 安装依赖 ```bash pip install -r requirements.txt ``` ### 必需的Python包 ```bash pip install PySide6 psutil requests geoip2 pandas beautifulsoup4 ``` ### GeoIP2数据库设置[源码已包含] 1. 访问 [MaxMind GeoLite2](https://dev.maxmind.com/geoip/geolite2-free-geolocation-data) 2. 注册免费账号 3. 下载 `GeoLite2-City.mmdb` 数据库文件 4. 将文件放置在项目根目录 ### 运行程序 ```bash python main.py ``` ```shell # 创建可执行文件 pip install nuitka zstandard python -m nuitka --onefile --windows-disable-console --enable-plugin=pyside6 main.py # 上面如何卡着不动了,用这条 nuitka --onefile --windows-console-mode=disable --enable-plugin=pyside6 --nofollow-import-to=transformers --include-data-dir=assets=assets --mingw64 --remove-output --output-dir=out --windows-icon-from-ico=assets/tray_icon.png main.py ``` 第一次执行,会提示下载一个压缩包,如果没报错就不用管,报错了手动下载,放在指定目录 ![image-20250531165307090](./assets/image-20250531165307090.png) # 🖥️ Work Monitor - 多模态工作监控系统 一个功能强大的工作效率监控和分析系统,实时追踪工作状态、网络连接,并提供详细的数据分析和可视化功能。 ## ✨ 主要特性 ### 📊 工作效率监控 - **实时按键统计** - 监控键盘输入频率和模式 - **鼠标活动追踪** - 记录鼠标移动距离和点击行为 - **应用使用分析** - 统计各应用程序的使用时长和频率 - **生产力指数计算** - 基于多维度数据的智能评分系统 ### 🌐 网络连接监控 - **实时连接追踪** - 监控所有网络连接状态 - **IP地理位置定位** - 使用GeoIP2数据库精确定位连接来源 - **进程网络分析** - 识别每个网络连接对应的进程 - **国家/城市统计** - 按地理位置统计网络活动 ### 📈 数据分析与可视化 - **多维度统计面板** - 直观显示各项工作指标 - **效率趋势分析** - 专注度、按键效率、工作节奏等指标 - **应用使用排行** - 最常用应用程序统计 - **网络活动分析** - 连接频率和地理分布 ### 💾 数据导出功能 - **CSV格式导出** - 支持工作数据、网络数据和汇总报告 - **中文友好** - 完整的中文列名和UTF-8编码支持 - **自定义时间范围** - 可选择导出指定天数的数据 - **详细统计报告** - 包含热门进程、国家、城市等统计信息 ## 🚀 快速开始 ### 环境要求 - Python 3.8 或更高版本 - Windows / Linux / macOS 操作系统 ## 📁 项目结构 ``` work-monitor/ ├── main.py # 主程序入口 ├── work_monitor.py # 工作监控核心模块 ├── network_monitor.py # 网络监控模块 ├── analysis_dialog.py # 数据分析界面 ├── data_analysis.py # 数据分析和导出 ├── ui_components.py # UI组件库 ├── requirements.txt # 依赖包列表 ├── GeoLite2-City.mmdb # GeoIP2数据库(需下载) └── README.md # 项目说明文档 ``` ## 🎯 功能详解 ### 工作监控模块 - **键盘监控**: 实时统计按键次数和输入模式 - **鼠标监控**: 追踪鼠标移动轨迹和点击行为 - **窗口监控**: 识别当前活跃应用程序和使用时长 - **时间统计**: 精确计算工作时间和休息时间 ### 网络监控模块 - **连接检测**: 使用psutil库监控所有网络连接 - **地理定位**: 通过GeoIP2数据库查询IP地理位置 - **进程关联**: 识别每个网络连接对应的进程 - **状态追踪**: 监控连接建立、维持和断开状态 ### 数据分析功能 #### 概览分析 - 总按键数、鼠标移动距离 - 工作时长统计 - 活跃应用数量 - 网络连接统计 - 生产力指数评估 #### 效率分析 - **专注度**: 基于按键频率计算 - **按键效率**: 每小时按键数评估 - **应用切换**: 应用程序切换频率 - **工作节奏**: 基于鼠标活动评估 #### 网络分析 - 活跃连接数统计 - 唯一IP地址数量 - 涉及国家/地区统计 - 网络流量估算 ### 数据导出格式 #### 工作数据CSV - 时间戳、按键次数、鼠标移动距离 - 工作时长、当前应用、生产力指数 #### 网络数据CSV - 时间戳、远程IP、端口、连接状态 - 进程名称、国家、城市、经纬度、ISP #### 汇总报告CSV - 工作效率统计汇总 - 网络连接统计汇总 - 热门进程/国家/城市排行 ## ⚙️ 配置选项 ### 监控频率设置 ```python # 在相应模块中修改更新间隔 WORK_MONITOR_INTERVAL = 1 # 工作监控间隔(秒) NETWORK_MONITOR_INTERVAL = 5 # 网络监控间隔(秒) ``` ### GeoIP2数据库路径 ```python # 自定义数据库路径 monitor = NetworkMonitor(geoip_db_path="/path/to/GeoLite2-City.mmdb") ``` ### 数据导出设置 ```python # 导出指定天数的数据 analyzer.export_data('csv', days=30, save_dir="/path/to/export") ``` ## 🔧 技术栈 - **GUI框架**: PySide6 (Qt for Python) - **系统监控**: psutil - **网络请求**: requests - **地理定位**: geoip2 - **数据处理**: pandas - **网页解析**: beautifulsoup4 - **数据库**: SQLite3 ## 📊 数据隐私 - **本地存储**: 所有数据存储在本地SQLite数据库 - **无云同步**: 不会上传任何个人数据到云端 - **可控导出**: 用户完全控制数据导出和分享 - **透明处理**: 开源代码,数据处理过程完全透明 ## 📝 更新日志 ### v1.2.0 (2025-05-30) - ✨ 初始版本发布 - 🖥️ 完整的工作监控功能 - 🌐 网络连接监控和地理定位 - 📊 数据分析和可视化界面 - 💾 CSV数据导出功能 ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情 ## 🙏 致谢 - [MaxMind](https://www.maxmind.com/) - 提供GeoLite2地理位置数据库 - [Qt Project](https://www.qt.io/) - 提供优秀的GUI框架 - [psutil](https://github.com/giampaolo/psutil) - 提供系统监控功能 --- ⭐ 如果这个项目对你有帮助,请给它一个星标! ``` 这个README.md文档包含了项目的完整介绍,涵盖了: ## 📋 文档特点 1. **完整的功能介绍** - 详细描述了所有主要功能 2. **清晰的安装指南** - 包含环境要求和依赖安装 3. **项目结构说明** - 帮助开发者理解代码组织 4. **技术栈展示** - 列出所有使用的技术和库 5. **配置选项说明** - 提供自定义配置的方法 6. **数据隐私保护** - 强调本地存储和隐私安全 7. **贡献指南** - 鼓励社区参与和贡献 8. **专业的格式** - 使用标准的GitHub README格式 这个文档可以直接用于GitHub项目,帮助用户快速了解和使用这个工作监控系统。