用 Python 玩轉 GitHub 的貢獻板

發表於2019-01-18

細心的人都會發現GitHub個人主頁有一個記錄每天貢獻次數的皮膚,我暫且稱之為貢獻皮膚。就像下圖那個樣子。只要當天在GitHub有提交記錄,對應的小格子就會變成綠色,當天提交次數越多,顏色也會越深。因此我就有了一個大膽的想法。細心的你應該也發現了,我就是要講如何搞出這個小❤️❤️來。專案地址:https://github.com/YES-Lee/git_painter

原理
基本原理前面已經講過,我們只需要控制專案提交的日期和次數,就能在貢獻皮膚中填充出花樣來。可能有朋友會問,前面的部分怎麼辦?拿到我得等一年?No☝️,經過研究發現,GitHub的貢獻皮膚是活得,什麼意思呢?GitHub是根據專案的提交記錄時時生成的貢獻皮膚,所以只要在本地把時間改成過去,進行提交操作,再push到GitHub,就實現了穿越。瞭解了這些之後,就可以動手了。最後如果效果不盡人意或者像換個圖樣換個心情,只需要刪了對應的倉庫就行了。

坑1:碼雲不像GitHub,碼雲的貢獻皮膚是一次性的,推上去之後就不會變,所以謹慎操作

程式設計
目標
1、設計一個模板,可以通過修改模板來改變圖樣
2、將過去時間的記錄自動全部填充
3、每天進行自動COMMIT/PUSH操作
實現
1、模板設計成一個json二維陣列,由0和1組成,分別到表有/無提交記錄。行數最好固定是7(週一到週日),列數可以自已隨意設定。下面是基於python的實現。
model.json

下面的程式碼是根據當前日期和模板對應的值來進行提交,用於定時任務每天執行。可以直接部署到伺服器,通過後面的命令設定定時任務。
main.py

開啟定時任務

2、定時任務只能幫我完成今天及以後的事情,之前的也需要寫個指令碼跑一下。
loop.py

到這裡基本就結束了,第三個目標實際上在第一步就已經完成了,下面上一下測試結果。

效果展示
1、小心心

image

2、X

image

相關文章