From 61ff99dfbb3736ee2c27ad84de78f670eafe70c1 Mon Sep 17 00:00:00 2001 From: Eric Romano Date: Mon, 29 Apr 2013 16:06:38 -0400 Subject: [PATCH] refactoring --- gitfiti.py | 132 ++++++++++++++++++++++++++++------------------------ gitfiti.pyc | Bin 3236 -> 4847 bytes test | 0 text.html | 5 -- 4 files changed, 70 insertions(+), 67 deletions(-) delete mode 100644 test delete mode 100644 text.html diff --git a/gitfiti.py b/gitfiti.py index 268cbc436..1ab7c2342 100644 --- a/gitfiti.py +++ b/gitfiti.py @@ -1,29 +1,13 @@ -#gitfiti -#generate a value insertion plan for a 7xN matrix -#github new repo in account -#git init new repo -# git add gitfiti_output -# start of file: -# git commit -date $(date in the past) gitfiti_output -# for day in matrix: -# for value in day: -# add a character to gitfiti file -# git commit -m -date $date_value gitfiti_output "g" -#git add remote (get github url) -#git push -f master - -import os, sys, datetime, math +import os, sys, datetime, math, itertools try: import requests except: print 'the requests module is required' exit(1) -BASEURL='https://github.com/' -color_commit_values=[0,1,2,3,4] - def get_calendar(username): """retrieves the github commit calendar data for a username""" + BASEURL='https://github.com/' url = BASEURL + 'users/' + username + '/contributions_calendar_data' req = requests.get(url) return req.json() @@ -47,6 +31,66 @@ def trim_calendar(input): if weekday == 6: return i +def multiplier(max_commits): + """calculates a multiplier to scale github colors to commit history""" + m = max_commits/4.0 + m = math.ceil(m) + m = int(m) + return m + +def get_start_date(): + '''returns a datetime object for the first sunday after one year ago today at 12:00 noon''' + d = datetime.datetime.today() + date = datetime.datetime(d.year-1, d.month, d.day, 12) + weekday = datetime.datetime.weekday(date) + while weekday < 6: + print repr(date) + date = date + datetime.timedelta(1) + weekday = datetime.datetime.weekday(date) + return date + +def date_gen(start_date): + '''generator to return the next day, requires a datetime object as input''' + for i in itertools.count(): + yield start_date + datetime.timedelta(i) + +def values_in_date_order(image, multiplier=1): + height = 7 + width = len(image[0]) + for h in range(height): + for w in range(width): + yield image[h][w]*multiplier + +def fake_it(image, start_date, username, repo, multiplier=1): + template=('git init gitfiti\n' + 'cd gitfiti\n' + 'touch gitfiti\n' + 'git add gitfiti\n' + '%s\n' + 'git remote add origin git@github.com:%s/%s.git\n' + 'git push -u origin master\n') + strings = [] + for value, date in zip(values_in_date_order(image, multiplier), date_gen(start_date)): + for i in range(value): + strings.append(commit(i, date)) + return template % ("".join(strings), username, repo) + +def commit(content, commitdate): + template='''echo %s >> gitfiti\nGIT_AUTHOR_DATE=%s GIT_COMMITTER_DATE= %s git commit -a -m "gitfiti"\n''' + return template % (content, commitdate.isoformat(), commitdate.isoformat()) + +def main(): + username='gelstudios' + cal = get_calendar(username) + x = trim_calendar(cal) + m = max_commits(cal) + m = multiplier(m) + cal = cal[x:] + fake_it(kitty, get_start_date(), m) + +if __name__=='__main__': + main() + kitty=[ [0,0,0,4,0,0,0,0,4,0,0,0], [3,3,4,2,4,4,4,4,2,4,3,3], @@ -65,47 +109,11 @@ oneup=[ [0,0,4,1,1,1,1,1,4,0,0], [0,0,0,4,4,4,4,4,0,0,0]] -#each column starts on SUNDAY -def multiplier(max_commits): - """calculates a multiplier to scale github colors to commit history""" - m = max_commits/4.0 - m = math.ceil(m) - m = int(m) - return m - -def fakeit(image, reference, multiplier=1): - height = range(7) - width = len(image[0]) - cal_index = 0 - for w in range(width): - for h in height: - count = image[h][w]*multiplier - if count == 0: - cal_index += 1 - continue - for c in range(count): - date = reference[cal_index][0] - date = datetime.datetime.strptime(date, '%Y/%m/%d').isoformat() - shelloutput(c, date) - cal_index += 1 - -def shelloutput(content, commitdate): - print '''echo ''' + str(content) + ''' >> gitfiti''' - print '''GIT_AUTHOR_DATE=''' + commitdate + ''' GIT_COMMITTER_DATE=''' + commitdate + ''' git commit -a -m "''' + "gitfiti" +'''"''' - - -#git init gitfitii -#cd gitfiti -#touch gitfiti -#git add gitfiti -###SHELLOUTPUT -#git remote add origin git@github.com:gelstudios/kitty.git -#git push -u origin master - -username='gelstudios' -cal = get_calendar(username) -x = trim_calendar(cal) -m = max_commits(cal) -m = multiplier(m) -cal = cal[x:] -fakeit(kitty, cal, m) \ No newline at end of file +hello=[ +[0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], +[0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], +[0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], +[0,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0], +[0,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0], +[0,2,2,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0], +[0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0]] \ No newline at end of file diff --git a/gitfiti.pyc b/gitfiti.pyc index cd9b8f083d6eff98cf883c2ba2b4d087488f27cd..f22779d516b6ecb416d8bff3e40a07ef9f790db4 100644 GIT binary patch literal 4847 zcmbVP?Q$Ep6$SVqiPVP`f61D9nvD}Rs$E%5r_(kb*Og;=Y|kXhWNlZmrXJ3k3z3k? zU1|ZwR7dKMD%0tozC<6XfBP7HfcBgVa%C%4lSbr%7uXA2+=FxPg{uFaZ$|(8^H*&( z{#(ZH1|Ij1no=pgTJ@CLDP^s8^klrEb}AFOs&=Xqxu$k%>R@rwt*f27+RiR3t#w*a z4$Il6g@tLA)68c!l}?M$ROyTevnp+fFvkVbrur7!nHPCh zR7=n+<`{;VxOf9;f-zwW-u9F44#)3LimQR zyro*X6vj_|Ckwt~wV+upe%5MX52do$I=$L=jh20a;ilaI}iH_YUO5v zAPR5kl&j%Y_+mu9SceE)kZzbhc@-4Cx9xDr+50KO-x&NQy8a`TX$C>uDA0H7G4g$%`?}UEZO3ct5qoY88j2OJx4mmd+u+~<(X_$ zR3?V~G+upn@5zH_@#msGEPC>bHCFLTN#mN3u&rI|?aje~pJUhf(mstkHmWkE&+Bu# z1eTWX^KBaq06bR2cC@ZMkVIFj%@-f2KUNg*C8nB~;ssD%#yKoQLGNEy+t?G{5qLS7 zy&6~2RIg7YoYwLa0m0pbv0a;`;TXEM(*+BnY}kKkiYVV5pNNZW7Uh}2fgA`OET*Yd zLM{+EAlE?0V4^7!Z)7w{Q^B)mT>#eQg%=nL9DLzS0J)BdHX97R=X&|jQzYH2w0mcR zI}4?LGHM0dxO3>b1vIMC(98JD=_WpcFpZQ5@1iqm5#$N5UkR|lEIp`PLoYAD)O?aCx?omb9CWY-{uVbv zVDp^&iSG*e+Qx=3wV4--@p-%!X7$eofKhz1k!$FUgSLr~h36Phgp$X5ACLPx8u}}V z?--#w=>iV02Z&su1j?WVSwN*4BXm5cK7pp9MjH%ivI(U5n?g_o)E+*lyk8_5*_yoOE&kPL3u%`sA0l zZ{3QrJkLTFAR~mFt4wJzQ?n-|GC|8*%-|2H zgFF5nu9D!)u+GC0)4L%H9VxFW=k$tX*;#!-Up^r$vEdoIH8i82jhTvL+kA0F@+LM| zk<$uD|3OPYm!y4wX&sX>)uA|nj{#$e;mnLY^W-luxIaVzC8 z`j%y4lFSxd;UJ2<_*x`c$An@+^4NaTG4WMMQV_ZZMahfeYnvjf$&S#zKHK|?Q2Hk6 z;ZD=CnXsaj7pW;e#kkaHrKj{FSOGj}l+Y5B`+WZwG{mE>kXeqV)aW@G0>i;k6oE3A zLEe1vsZ@_?bu^@^G++VR7TqwX7G~=5^vz?Zr&xh@9*`p@vZrNXPO%4^NpL-*3^1^mdZZNum z2e&R>pKhKjK;eC#DSbmU;rlaAf=4_$qwRM=)^pQ_&SG)U@{os z@+M-a%M$8)xy@Dya(si$$85-fNgl|4V?lEr;%Z`NbEHpFVvs9_1t+NdPBWOQN-YbPXfC zGG1%0lHMU9xExns6tYm&=oIg?2pUNQVZJ2D-{94mXv7TuEj%Fsfc9;4#P!nsZ4A(T zSe63L;775M3nb+?2+uoFdGUcDlzpGt!f~AYF_u7fs46YtFObQOI|j*ZnA+S4iDG&b zFR@`s76Qb#AxW&ivfdxWAE6uWJypJ7gA0MAfKmJtzQhxn(>HHA*H3H~<2T$2;riV8 z)6{ZpYPG1*YDr?UoMCCga?h($rYPl347&pt67m&{#Vc&^1O}Ut^}!!;MVw*=69+~Igt1>P9@!2E&f~6YQ?|j2y+o??{FYe*YtY%iHjng_LFPe3IDa-C3oEC9MDx{ tx2mq|g-T<((QGu(&Nk|E({l@rTBCuRarI+;@>#2Xq)$HAt9SIt=fC*%i7Eg9 literal 3236 zcmaJ@?@k*>5T8BUfDPtfLa3EUxkimj6D4k?O0B9iN(u-fB}6%hXi+2N_!fJ?zJuGn z1XTQqyg@(qYoDO6)5quow7;3PkA#%??)GMPXLfdf^P4%B{;AiJ`QKi&Y51GR`w<>n zE)m7J74?XA3R%&P8jT0E6O7~%?Ud+bcGNA?PMNloYowHl16o_x6^cuArbs1-#f?!&BCwOLDzdM zaVYpM&QhTcbfAC@{I3qi5uidxy63=p!$POnHe6up{T5yCs{r5cq-aIq1D#?uO!>P& zU{Vl3D5r!Wb@5fFcOdCB#nUo4LmE~yOue01(lyevBF~Yoj^ugLb<*=P4jF25bQ9Vj z|K`#xvcdd|--f*j(RFp0>7!g*XTyFP=RF-7D?=vJu~D2nSI~5wJG4JEn;ql2`Rn`b zwBIxsCKGUj>>^V}(`Ezi@$fPpdl!w9%v(GqT15IR4iq^>`vILQ-sAv6K>H;+BW#e3 z?e}Oh?J}d^XdCh-z26Xi`^JUsR!=8!D+}Y6YlVAh7Pi9N>MUvXwH<>ocWl$%fY@xO z308WYJCi1McVxQDrc1nMH;(3~$D6A!qo-~H@(2*ed+BKBSZm*=iEK_(M$SYf&wBEP z-4ZlO8e3yy)4N|k6_i!E?w!(hibLOyT zz(1FUmecmU2=vknOif4SpbKWD*+~a$;5Ylo=PAdz-*R0cUt1fWq$Y9VG2;IQ!mR$~ z0B{bUZ)6oc2?zx>q%2O(Ff#i%Fv~pqHyU5<_^`qo1_FuZ2?A+Qq2s@VbVy0g=09mL zM#q0Ji&kF!PJ?kt=W%MBj^PRD>R^ISQS}2M)*+qZi&3KQu+Gr~N?!_rz$s*@20T@v(<&RXP-9_nZT)CK+aEaDK5Bx;T%DQ68;02> z^z`3{_c`i|0jp)L1oe&)LamPY8xmbbBL%|P6h#}sk=SJVFk506u?Z~PZ^4fFo#{QD z>7=cr8$8J%cQs0r6TP=4Mr>IR+}M?Tl5oD2wktaAG*5gHX^SULmdm5f4)$6H+PJ5X zoo{QKJ7X1dtvC@C8M_c5Ca176P&e=ojT(fjow1 zoWT}Y8Nm(9r`PQ+*v?>t4<9n&`TJoxao3(~?LL0Fwf;QXU3t8<`lDquLmpjz{_NS4 zt*zD31Y^ynqx87f3h(v9TT*g|D+)%pmbkq7%Iz}A3en*YrUq`zeqU2RjT`UQc6G1k zi}ow-a`F*ilSMkZXI&nf)GqPfz(*8#>m8q1&yCM87Ri3tR394`;Z2SW+9?u#Sl)Nv zw0iiv5-|rQhoePSW9$x$b0;F<8lvvbn%nTQF-A1 y6g`}QEJf;TRRSYQs-mWYF|`m>$Evkz?Mroj-79^e&aXSA>iE=LwLAqT@%0}V$WtQ# diff --git a/test b/test deleted file mode 100644 index e69de29bb..000000000 diff --git a/text.html b/text.html deleted file mode 100644 index 1f2ac9852..000000000 --- a/text.html +++ /dev/null @@ -1,5 +0,0 @@ - - - - -