小帅の技术博客 小帅の技术博客
首页
  • 前端
  • 服务
  • Node
  • 技术
  • 服务器
  • 程序猿
关于
友链
  • 网站
  • 资源
  • Vue资源
  • 优秀技术文章
  • 分类
  • 标签
  • 归档
GitHub

前端小帅

学而不思则罔,思而不学则殆
首页
  • 前端
  • 服务
  • Node
  • 技术
  • 服务器
  • 程序猿
关于
友链
  • 网站
  • 资源
  • Vue资源
  • 优秀技术文章
  • 分类
  • 标签
  • 归档
GitHub
  • 前端

  • NodeJs

  • 服务

    • webhook实现服务器自动部署
    • GitHub+Coding快速部署博客
    • 自动获取博客文章同步到GitHub
    • WakaTime统计写代码时长
      • 效果
      • 安装
        • VsCode 插件 WakaTime
        • Chrome 插件
      • 接入 Github主页
      • 使用 WakaTime API自定义
  • 其他

  • 2021年终总结
  • 文章
  • 服务
sunss
2021-11-20

使用WakaTime统计你的Coding数据

WakaTime 是一个可以统计你在不同系统、语言、项目上写代码时长的工具。它支持多种 IDE、编辑器。

它只在你敲键盘时统计,因此得到的是写代码的时间。另外它会根据你打开的文件夹来判断你在哪个项目上。

目前也提供有Chrome 浏览器插件,可以统计网上冲浪时长,以及每个页面的在线时长 👀

hello

# 效果

  • 整体预览:编辑器、语言、系统、在线时长

2


  • 单个项目占用时间详细预览

1

是不是很清晰,下次有人再说我划水,我直接甩他一脸,笑~

时间管理大师指日可待🤓

# 安装

  1. 先去官网 注册一个账号
  2. 进入账户设置,获取 WakaTime API Key (https://wakatime.com/settings/api-key ),这个接下来有用

目前已知的可支持的 IED:https://wakatime.com/help/editors

# VsCode 插件 WakaTime

vscode WakaTime

# Chrome 插件

chrome WakaTime

注意:如果你正在使用 vpn,代理可能会影响到插件的心跳(接口连接中断等),可以在vpn白名单中添加如下规则过滤

/^https:\/\/wakatime\.com.*/
1

# 接入 Github主页

这里有两种方式:

  • 使用开源的 waka-box ,使用方式见文档
  • 使用 wakatime API 自己获取数据进行处理

waka-box效果图:

2

使用 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

  1. 安装请求库:yarn add node-fetch
  2. 配置请求头: Key 需要经过 base64 编码,前面拼接 Basic
const response = await fetch(URL, {
  method: "get",
  headers: {
    Authorization: `Basic ${Buffer.from(wakatimeApiKey).toString("base64")}`
  },
})
1
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

拿到数据后,就可以根据自己需求随便处理了

自动更新 README.md 可以参考我的这篇文章 https://ssscode.com/pages/7722fd

起飞😎~

hello

编辑
#统计
上次更新: 2022/12/07, 14:14:50
自动获取博客文章同步到GitHub
不同类型的配置文件分析

← 自动获取博客文章同步到GitHub 不同类型的配置文件分析→

最近更新
01
vue编译为js的研究
12-07
02
【配置文件分析】——json、yaml、toml
09-06
03
【前端组件化】系列第二篇——monorepo方案实战
09-05
更多文章>
sunss | © 2020.08-2022.12 浙ICP备2022002957号-1
载入天数... 载入时分秒...  |  总访问量 次
提供CDN加速/云存储服务
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式