摘要:從年知道后就開始使用它來記錄自己的編碼時間,但作為免費版只能查看最近兩周的數據,于是很久之前就寫了一個程序同步自己的歷史數據,不過一直沒找到合適的圖表插件像官網那樣展示數據信息。版本的代碼也實現了相關的同步展示邏輯,代碼在分支中。
WakaTime WakaTime簡介</>復制代碼
從16年知道 WakaTime 后就開始使用它來記錄自己的編碼時間,但作為免費版只能查看最近兩周的數據,于是很久之前就寫了一個程序同步自己的歷史數據,不過一直沒找到合適的圖表插件像官網那樣展示數據信息。前些日子咨詢了一下同事,得知了用 antv 可以繪制對應的圖表數據,剛好現在也處于失業階段,就花了幾天時間又重新做了一個項目用于同步和展示 WakaTime 數據。
WakaTime 是一款可以記錄你的編碼時間的工具,目前支持絕大部分主流的 IDE 以及 Chrome 瀏覽器。
使用步驟注冊 WakaTime 賬號;
在官網找到對應的 IDE 插件,按照步驟安裝 WakaTime 插件(下圖中灰色表示目前官方還不支持):
在個人設置頁面復制 Secret API Key ,填入對應的 WakaTime 插件中;
過一段時間后,你就可以在 WakaTime 網站上看到你的編碼情況,如下圖所示:
wakatime-sync項目 項目簡介WakaTime 提供了豐富多樣的圖表可以多維度地查看自己的編碼時間情況。不過作為免費用戶,最多只能查看自己最近14天的數據;如果要查看全部的數據,需要 $9/月的訂閱費用。
還好 WakaTime 提供了 API 接口,通過接口可以獲取到編碼時間統計情況的原始數據(作為免費用戶還是有只能查看最近14天數據的限制)。
本項目通過 WakaTime 提供的 API 接口,可以把自己的 WakaTime 數據保存在的數據庫中,然后利用圖表插件展示出來,目前已完成三種類型的圖表展示:
每日項目持續時間圖:
時間范圍內活動情況:
每日編碼耗時日歷圖:
GITHUB: https://github.com/wf2311/wakatime-sync
碼云: https://gitee.com/wf2311/wakatime-sync
所用技術后端: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 中。
示例地址:https://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,也歡迎對項目提出修改意見和建議。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/73086.html
摘要:將這些命令綁定到鍵盤快捷鍵是有幫助的,例如向上箭頭用于平衡向外,而向下箭頭用于平衡向內。是和的快速原型開發平臺。 本系列的第一篇可以在這里看到: 提高 JavaScript 開發效率的高級 VSCode 擴展! showImg(https://segmentfault.com/img/bVbnn2j?w=1254&h=768); 想閱讀更多優質文章請猛戳GitHub博客,一年百來篇優質...
摘要:摘要你所不知道的系列。允許你寫入縮寫代碼并返回的相應標記,目前已經內置,所以不用配置了。自從年雙十一正式上線,累計處理了億錯誤事件,付費客戶有金山軟件百姓網等眾多品牌企業。摘要: 你所不知道的系列。 原文:提高 JavaScript 開發效率的高級 VSCode 擴展之二! 作者:前端小智 Fundebug經授權轉載,版權歸原作者所有。 作為一名業余愛好者、專業人員,甚至是每月只有一次編...
摘要:整個項目簡單還具有實用價值,可作為的實戰項目學習的調試工具欄。查看文檔自動在個人首頁展示編程時長的工具。通過學習這些前沿的人工智能論文,提前了解在未來更多可能性可以將圖片和視頻轉換成漫畫風格的工具。興趣是最好的老師,HelloGitHub 讓你對編程感興趣!簡介HelloGitHub 分享 GitHub 上有趣、入門級的開源項目。https://github.com/521xueweihan...
摘要:檢測在電腦上花費的時間,干了什么這個軟件支持平臺,需要在機器上裝上客戶端,然后按照說明做下去,你就會在他們的官網上看到一個,記錄你做了什么。檢測你在編輯器上做了什么,非常詳細,支持很多編輯器。 1 rescuetime 檢測在電腦上花費的時間,干了什么 https://www.rescuetime.com/da...這個軟件支持win,mac,linux平臺,需要在機器上裝上客戶端,然...
摘要:前端配置簡體中文插件,一般會自動識別你的環境,自動提示是否需要簡體中文的語言包。使用插件將目前配置保存到上,以后只需要從上獲取,就可以一次性安裝插件配置信息。 VS code-前端配置 showImg(https://segmentfault.com/img/bVbuK6l?w=1224&h=999); Chinese (Simplified) Language Pack for Vi...
閱讀 1413·2023-04-26 01:58
閱讀 2289·2021-11-04 16:04
閱讀 1781·2021-08-31 09:42
閱讀 1771·2021-07-25 21:37
閱讀 1070·2019-08-30 15:54
閱讀 2079·2019-08-30 15:53
閱讀 3055·2019-08-29 13:28
閱讀 2693·2019-08-29 10:56
极致性价比!云服务器续费无忧!
Tesla A100/A800、Tesla V100S等多种GPU云主机特惠2折起,不限台数,续费同价。
NVIDIA RTX 40系,高性价比推理显卡,满足AI应用场景需要。
乌兰察布+上海青浦,满足东推西训AI场景需要