WakaTime数据同步展示工具
从16年知道 WakaTime 后就开始使用它来记录自己的编码时间,但作为免费版只能查看最近两周的数据,于是很久之前就写了一个程序同步自己的历史数据,不过一直没找到合适的图表插件像官网那样展示数据信息。前些日子咨询了一下同事,得知了用 antv 可以绘制对应的图表数据,刚好现在也处于失业阶段,就花了几天时间又重新做了一个项目用于同步和展示 WakaTime 数据。
WakaTime
WakaTime简介
WakaTime 是一款可以记录你的编码时间的工具,目前支持绝大部分主流的 IDE 以及 Chrome 浏览器。
使用步骤
- 注册 WakaTime 账号;
- 在官网找到对应的 IDE 插件,按照步骤安装 WakaTime 插件(下图中灰色表示目前官方还不支持):
- 在个人设置页面复制 Secret API Key ,填入对应的 WakaTime 插件中;
- 过一段时间后,你就可以在 WakaTime 网站上看到你的编码情况,如下图所示:
wakatime-sync项目
项目简介
WakaTime 提供了丰富多样的图表可以多维度地查看自己的编码时间情况。不过作为免费用户,最多只能查看自己最近14天的数据;如果要查看全部的数据,需要 $9/月的订阅费用。
还好 WakaTime 提供了 API 接口,通过接口可以获取到编码时间统计情况的原始数据(作为免费用户还是有只能查看最近14天数据的限制)。
本项目通过 WakaTime 提供的 API 接口,可以把自己的 WakaTime 数据保存在的数据库中,然后利用图表插件展示出来,目前已完成三种类型的图表展示:
- 每日项目持续时间图:
- 时间范围内活动情况:
- 每日编码耗时日历图:
项目地址
- GITHUB: github.com/wf2311/waka…
- 码云: gitee.com/wf2311/waka…
所用技术
后端:JDK1.8、SpringBoot、Jodd-HTTP、Thymeleaf;
数据库:MySQL 5.7;
前端:Moment.js、ElementUI、AntV-G2 、Echarts;
通知服务:Server酱、钉钉机器人
项目逻辑比较简单,就是每天会定时通过 WakaTime 的 API 抓取并保存前一天的数据,再通过图标插件展示出来。之后还会完善接口缓存、同步通知等功能;
同时使用了 AntV-G2 和 Echarts 的原因是因为持续时间图可以用 AntV-G2 实现,但日历图用 AntV-G2 实现过于复杂,就采用了用 Echarts 实现日历图;
另外本项目最初是的数据库是 MongoDB ,但是考虑到通用性和易用性后来又换成了 MySQL。MongoDB 版本的代码也实现了相关的同步展示逻辑,代码在 mongodb 分支中。
使用方法
替换或设置好src/main/resources/application.yml
配置文件中的wakatime.app.key
和spring.datasource.*
相关数据库配置,采用 maven 打包的方式安装即可,支持 Docker 方式安装。
数据库建库脚本位于sql/wakatime_sync.sql
中。
数据库使用 MongoDB 的版本位于分支 mongdb 中。
示例地址:wakatime.wangfeng.pro/。
消息通知
系统中有一个定时任务,会在每天早上09:00会根据配置信息想钉钉或微信发送上一天的编码时间信息;
需要在application.yml
配置对应的参数:
- Server酱微信通知:按照Server酱网站说明获得一个SCKEY,设置成
wakatime.ftqq-key
的值; - 钉钉机器人通知:在要获得提醒的钉钉群里面生成一个自定义机器人,将机器人的 Hook 地址中的 access_token 的值设置成
wakatime.dingding-key
的值;
如果不想使用对应的消息通知,请将application.yml
中对应的参数注释掉或将值置为空
可能会遇到的问题
- 由于本项目采用的是SpringBoot 2,对应的
mysql-connector-java
驱动使用的是MySQL服务端的时区,如果你使用的MySQL的时区和你程序中的时区以及你在 WakaTime 个人设置中的时区不一致,就会导致保存的相关数据中时间不准,解决办法就是首先调整好 WakaTime 个人设置里的时区,再调整 MySQL 数据库的时区,或者是使用5.X
版本的mysql-connector-java
驱动。 - 如果你一直在使用 WakaTime ,如果想使用本项目同步你所有的历史数据,可以在官网上试用团队版的方式获得1个月(还是半个月?)的付费版功能或者是订阅一个月的付费版,然后通过本项目来同步所有的历史数据:
POST /api/v1/sync
或参见项目中的测试方法。使用测试方法进行时不能同时使用太多的线程去同时调用 API 接口,会被限流。
TODO
- 昨日编码消息消息通知;
- 查询接口缓存;
- 可以对项目名称设置别名展示;
结语
如果本项目对你有用的话,欢迎在 GITHUB 或码云上 star,也欢迎对项目提出修改意见和建议。
转载于:https://juejin.im/post/5c4172e5518825265c2fe8ba
WakaTime数据同步展示工具相关推荐
- 开源数据同步备份工具(MySQL、Oracle、SqlServer、PostgreSQL)
真正的大师,永远都怀着一颗学徒的心! 一.项目简介 今天说的是一个开源数据同步备份工具,他支持mysql.oracle.kafka.PostgreSQL.sqlserver等 二.实现功能 数据同步与 ...
- 用 C# 写一个 Redis 数据同步小工具
用 C# 写一个 Redis 数据同步小工具 Intro 为了实现 redis 的数据迁移而写的一个小工具,将一个实例中的 redis 数据同步到另外一个实例中.(原本打算找一个已有的工具去做,找了一 ...
- 数据同步备份工具:Sync Folders Pro for Mac中文版
Sync Folders Pro for Mac是Mac平台上一款数据同步备份工具,Sync Folders Pro Mac特别版可以手动或者自动同步各种文件夹,支持备份到外部驱动器.网络文件夹等,有 ...
- 达梦数据库:mysql -dm数据同步dmhs工具搭建
达梦技术社区: https://eco.dameng.com 注意 Dmhs对mysql的 支持:表的ddl 操作,注释,索引,数据同步,支持装载和增量同步: 对于其它对象如触发器,函数,存储过程,不 ...
- Go名库欣赏-uitable:终端数据表格展示工具
一.前言 最近发现go用作一个运维工具是真的很好用,我觉得比python好用多了,python的依赖太麻烦了,而go作为运维工具可以直接打包成二进制包,可移植性极好,而且go天生对linux亲和性极强 ...
- 大数据可视化展示工具:Grafana简介
Grafana 是一款采用 go 语言编写的开源应用 主要用于大规模指标数据的可视化展现. 有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器 支持Graphite.zabbix.Infl ...
- 基于java的数据交换ETL工具及可视化平台源码
平台定位 本平台是一个基于web的异构数据交换和数据可视化展示工具,支持常见的关系型数据库(MySQL,Oralce,SqlServer,PostgreSQL),适用于中小型企事业单位的内部信息化系统 ...
- 值得信赖的数据同步备份软件 -Allway Sync 安全又可靠,简单又易用!
Allway Sync 是一款可靠的数据同步备份工具,最初的版本发布于 2004 年 4 月 19 号,距离今日大约有 19 年的更新历史了,足以说明软件绝对稳定,时间验证了软件的可靠性!而对于我们用 ...
- 数据同步利器之Tapdata Cloud
一.数据同步概述 数据同步,顾名思义就是对不同系统之间的数据进行同步处理.开发过程中遇到数据同步需求有很多,比如数据冗余备份.缓存实时更新.不同系统间基础数据实时同步等.同步方案的选择,需要根据具体的 ...
最新文章
- java-第十一章-类的无参方法-计算器运算
- 最深刻最通俗的HTTPS 原理详解,图文并茂
- Ajax+asp.net实现用户登陆 转自http://www.shangxueba.com/jingyan/2933319.html
- TF之BN:BN算法对多层中的每层神经网络加快学习QuadraticFunction_InputData+Histogram+BN的Error_curve
- 动态 SQL、EXECUTE IMMEDIATE、using、into、returning
- 重读经典:《Deep Residual Learning for Image Recognition》
- arm linux 中断 分析,armlinux中断异常的处理分析.pdf
- pythonclass实例化_Python中实例化class的执行顺序示例详解
- CSS深入浅出(三)
- KubeEdge在国家工业互联网大数据中心的架构设计与应用
- 2006年百度之星程序设计大赛试题初赛题目-题6-百度语言翻译机
- 到底是大数据还是“拍脑门”?
- 应用进展_解释的标准事件:第2部分–应用和进展
- VirtualBox
- java if函数的使用方法_IF函数的使用方法(入门+进阶+高级)
- 【Golang开发面经】深信服(两轮技术面)
- 解决安装office2016后文件图标显示空白图标
- word2016 明明设置了默认粘贴为“仅保留文本”,可是每次粘贴的时候还是带源格式怎么办?
- 上海大学计算机工程与科学学院院长,李三立
- 这两天净鼓捣新买的PALM680了!