使用WakaTime统计你的Coding数据
WakaTime 是一个可以统计你在不同系统、语言、项目上写代码时长的工具。它支持多种 IDE、编辑器。
它只在你敲键盘时统计,因此得到的是写代码的时间。另外它会根据你打开的文件夹来判断你在哪个项目上。
目前也提供有Chrome 浏览器插件,可以统计网上冲浪时长,以及每个页面的在线时长 👀
# 效果
- 整体预览:编辑器、语言、系统、在线时长
- 单个项目占用时间详细预览
是不是很清晰,下次有人再说我划水,我直接甩他一脸,笑~
时间管理大师指日可待🤓
# 安装
- 先去官网注册一个账号
- 进入账户设置,获取 WakaTime API Key (https://wakatime.com/settings/api-key),这个接下来有用
目前已知的可支持的 IED:https://wakatime.com/help/editors
# VsCode 插件 WakaTime
# Chrome 插件
注意:如果你正在使用 vpn,代理可能会影响到插件的心跳(接口连接中断等),可以在vpn白名单中添加如下规则过滤
/^https:\/\/wakatime\.com.*/
1
# 接入 Github主页
这里有两种方式:
- 使用开源的 waka-box,使用方式见文档
- 使用 wakatime API自己获取数据进行处理
waka-box效果图:
使用 waka-box可以快速的集成到Github主页美化(通过Github Action + Gist)
- Github Action:用于脚本每天自动更新
- Gist:用于储存生成的数据
如:
- 我的 Github 主页: https://github.com/JS-banana
- 我的 Gist: https://gist.github.com/JS-banana/b4b79e0deb0164edaae772ecbc5bd8bc
不过,这里只能按照插件提供的效果展示,如果你想个性化定制,可以使用 WakaTime API自己处理
# 使用 WakaTime API自定义
之前一直在忙没注意,最近发现Github首页的 WakaTime数据一直没有更新了,最后发现 waka-box脚本没有生效,找了一遍似乎是内部使用的 wakatime-clint
包有问题,也顺手看了下 WakaTime API 开发者文档,发现使用起来还是很容易的,可以自己玩玩🧐
这里我们采取最简单的使用方式:Using API Key
- 安装请求库:
yarn add node-fetch
- 配置请求头: Key 需要经过 base64 编码,前面拼接
Basic
const response = await fetch(URL, {
method: "get",
headers: {
Authorization: `Basic ${Buffer.from(wakatimeApiKey).toString("base64")}`
},
})
1
2
3
4
5
6
2
3
4
5
6
然后我们测试下接口:https://wakatime.com/api/v1/users/current/stats/last_7_days
发现是可以正常请求数据的:
{
"data": {
"best_day": {
"created_at": "2021-11-16T20:18:03Z",
"date": "2021-11-15",
"id": "780cacda-60aa-4d1a-8278-0000000",
"modified_at": "2021-11-19T19:10:16Z",
"text": "8 hrs 7 mins",
"total_seconds": 29249.019002
},
}
// ...
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
拿到数据后,就可以根据自己需求随便处理了
自动更新 README.md
可以参考我的这篇文章 https://ssscode.com/pages/7722fd
起飞😎~
上次更新: 2024/04/15, 14:35:14