myclub Skill
Fetch sports schedules from myclub.fi, including practice times, game dates, locations, and registration status.
External Endpoints
This skill connects to the following external services:
- -
id.myclub.fi — Authentication (login via form POST with CSRF token) - INLINECODE1 — Fetching club pages and event schedules (each club has its own subdomain)
No other external services are contacted.
Security & Privacy
- - Credentials: Your myclub.fi email and password are stored locally in
~/.myclub-config.json with owner-only permissions (0600). They are never sent anywhere other than id.myclub.fi for authentication. - Data flow: Login credentials are sent to
id.myclub.fi over HTTPS. Schedule data is fetched from *.myclub.fi over HTTPS. No data is sent to any third party. - No telemetry: This skill does not collect analytics, telemetry, or usage data.
- Local only: All parsed schedule data is returned to the calling agent and is not stored or transmitted elsewhere.
Trust Statement
Data that leaves your machine: your myclub.fi email and password are sent to id.myclub.fi for authentication. Schedule data is fetched from *.myclub.fi. No data is sent to any other service. Only install this skill if you trust myclub.fi with your credentials.
Setup (one-time)
CODEBLOCK0
Credentials are stored in ~/.myclub-config.json with owner-only permissions (600).
Commands
discover
List all available accounts and their clubs.
CODEBLOCK1
--json: Output JSON instead of formatted text
fetch
CODEBLOCK2
--period values: this week (default), next week, this month, next month
--start / --end: Custom date range in YYYY-MM-DD format (overrides --period)
--json: Output JSON instead of formatted text
Event Fields
| Field | Description |
|---|
| INLINECODE22 | Unique event identifier |
| INLINECODE23 |
Event description |
|
group | Team or group (e.g., "P2015 Black") |
|
venue | Location |
|
month | First day of event's month (YYYY-MM-DD) |
|
day | Day in Finnish format (e.g., "15.3."), or
null if unavailable |
|
time | Time range (e.g., "17:00 - 18:00"), or
null if unavailable |
|
event_category |
Harjoitus (training),
Ottelu (game),
Turnaus (tournament),
Muu (other) |
|
type | Inferred:
training,
game,
tournament,
meeting,
other |
|
registration_status | Registration status text from myclub.fi, or
"unknown" |
Troubleshooting
- - "No .myclub-config.json found" — Run
setup first - "Unknown account 'Name'" — Run
discover to check exact spelling (case-sensitive) - Timeout / auth errors — Verify credentials with
discover; check internet connection - JSON parsing fails — myclub.fi page structure may have changed; check for
data-events attribute on the calendar page
Requirements
Python 3.10+ (no external dependencies — uses only standard library).
myclub 技能
从 myclub.fi 获取体育赛事日程,包括训练时间、比赛日期、地点和报名状态。
外部端点
此技能连接以下外部服务:
- - id.myclub.fi — 身份验证(通过包含 CSRF 令牌的 POST 表单登录)
- *.myclub.fi — 获取俱乐部页面和赛事日程(每个俱乐部拥有独立的子域名)
不涉及其他外部服务。
安全与隐私
- - 凭证信息:您的 myclub.fi 邮箱和密码存储在本地 ~/.myclub-config.json 文件中,权限设置为仅所有者可读写(0600)。除用于向 id.myclub.fi 进行身份验证外,这些信息不会被发送到任何其他位置。
- 数据流向:登录凭证通过 HTTPS 发送至 id.myclub.fi。日程数据通过 HTTPS 从 *.myclub.fi 获取。不会向任何第三方发送数据。
- 无遥测:此技能不收集分析数据、遥测数据或使用数据。
- 仅本地处理:所有解析后的日程数据将返回给调用代理,不会存储或传输至其他位置。
信任声明
离开您设备的数据:您的 myclub.fi 邮箱和密码将发送至 id.myclub.fi 进行身份验证。日程数据从 *.myclub.fi 获取。不会向任何其他服务发送数据。仅当您信任 myclub.fi 处理您的凭证时,才安装此技能。
设置(一次性操作)
bash
python3 scripts/fetchmyclub.py setup --username youremail@example.com --password your_password
凭证存储在 ~/.myclub-config.json 文件中,权限设置为仅所有者可读写(600)。
命令
discover
列出所有可用账户及其关联俱乐部。
bash
python3 scripts/fetch_myclub.py discover [--json]
--json:以 JSON 格式输出,而非格式化文本
fetch
bash
python3 scripts/fetch_myclub.py fetch --account 账户名称 [--period 时间段 | --start 日期 [--end 日期]] [--json]
--period 可选值:this week(本周,默认)、next week(下周)、this month(本月)、next month(下月)
--start / --end:自定义日期范围,格式为 YYYY-MM-DD(覆盖 --period 参数)
--json:以 JSON 格式输出,而非格式化文本
事件字段
事件描述 |
| group | 队伍或分组(例如P2015 Black) |
| venue | 地点 |
| month | 事件所在月份的第一天(YYYY-MM-DD) |
| day | 芬兰格式的日期(例如15.3.),若不可用则为 null |
| time | 时间范围(例如17:00 - 18:00),若不可用则为 null |
| event_category | Harjoitus(训练)、Ottelu(比赛)、Turnaus(锦标赛)、Muu(其他) |
| type | 推断类型:training(训练)、game(比赛)、tournament(锦标赛)、meeting(会议)、other(其他) |
| registration_status | 来自 myclub.fi 的报名状态文本,或 unknown(未知) |
故障排除
- - 未找到 .myclub-config.json — 请先运行 setup 命令
- 未知账户 名称 — 运行 discover 检查确切的拼写(区分大小写)
- 超时/身份验证错误 — 使用 discover 验证凭证;检查网络连接
- JSON 解析失败 — myclub.fi 页面结构可能已更改;检查日历页面上的 data-events 属性
系统要求
Python 3.10 或更高版本(无外部依赖——仅使用标准库)。