--- name: studytime-analysis description: 分析指定角色的完课时间分布与学习规律,包含一周内时间分布、跨周趋势、寒暑假排除。触发词:「学习时间分析」「看看学习时间」「学习时间有什么特点」「studytime」。 slug: studytime-analysis version: 1.0.0 --- # 学习时间分析技能 ## 触发规则 用户通过飞书发送以下格式的消息时触发: - 「学习时间分析 [角色ID]」 - 「[角色ID] 学习时间分析」 - 「看看 [角色ID] 的学习时间有什么特点」 - 「分析 [角色ID] 的完课时间规律」 角色ID 必须是纯数字。 ## 工作流程 1. **参数提取** — 从用户消息中提取角色ID 2. **数据采集** — 执行 Python 脚本查询该角色全部完课记录(包含寒暑假,非按月过滤) 3. **分析输出** — 脚本自动完成以下分析并输出格式化报告: - **一周分布**(仅非寒暑假数据):周一至周日各天完课数量 + 周一至周五上课时段(上午/中午/下午/晚上),排除寒暑假作息差异的干扰 - **跨周趋势**(全部数据):覆盖总周数、周均完课数、连续性、中断周、趋势变化(含寒暑假期间的学习节奏变化) - **完课记录明细**(全部数据):完整的完课时间表 ## 调用方式 ```bash cd /root/.openclaw/workspace-xiaoban && \ export PG_DB_HOST=bj-postgres-16pob4sg.sql.tencentcdb.com \ PG_DB_PORT=28591 PG_DB_USER=ai_member \ PG_DB_PASSWORD='...' PG_DB_DATABASE=vala && \ python3 skills/studytime-analysis/scripts/studytime_analysis.py ``` ## 数据库说明 - **数据源**: PostgreSQL Online (`vala` 库) - **核心表**: `user_chapter_play_record_0~7`(完课记录,8张分表) - **筛选**: `play_status = 1`(已完成),查询全量数据(不按月过滤) - **寒暑假处理**: 1-2月(寒假)和 7-8月(暑假)的记录仅在一周时间分布中排除,跨周趋势和完课明细完整保留 - **注意**: 表名无 `bi_` 前缀;课程通过 `level` + `chapter_id` 字段展示 ## 输出说明 脚本输出为 Markdown 格式的分析报告,可直接发送给用户。包含: - 基本信息(角色ID、完课总数、寒暑假/非寒暑假数量) - 📌 一周时间分布数据范围说明 - 一周时间分布表 + 规律总结(仅非寒暑假) - 跨周学习趋势表 + 趋势分析(全部数据) - 完课记录明细表(全部数据,含寒暑假标记)