From 4cbf2fd8b934eab3172b2c6b157196782b75799d Mon Sep 17 00:00:00 2001 From: "Matt K. Fu" Date: Wed, 10 Apr 2013 16:53:32 +0800 Subject: [PATCH] complete harrys code --- lib/desktop_widgets/browser.zip | Bin 0 -> 5429 bytes lib/desktop_widgets/clock.zip | Bin 0 -> 5740 bytes lib/desktop_widgets/googlescholar.zip | Bin 0 -> 19154 bytes lib/desktop_widgets/googlesearch.zip | Bin 0 -> 10470 bytes lib/desktop_widgets/quotes.zip | Bin 0 -> 7392 bytes lib/desktop_widgets/weather.zip | Bin 0 -> 14090 bytes lib/tasks/desktop.rake | 90 ++++++++++++++++++++------ 7 files changed, 71 insertions(+), 19 deletions(-) create mode 100755 lib/desktop_widgets/browser.zip create mode 100755 lib/desktop_widgets/clock.zip create mode 100755 lib/desktop_widgets/googlescholar.zip create mode 100755 lib/desktop_widgets/googlesearch.zip create mode 100755 lib/desktop_widgets/quotes.zip create mode 100755 lib/desktop_widgets/weather.zip diff --git a/lib/desktop_widgets/browser.zip b/lib/desktop_widgets/browser.zip new file mode 100755 index 0000000000000000000000000000000000000000..837d633bb54f17af4c8c873b922bb1d5f7cfc8ce GIT binary patch literal 5429 zcmd5=dpMM78z06nWEsbDNFp0sXQsjT*IvDIy{`9~xt`y9-@oT~-}moiwvcc?l0;qxCf0)y}h4~>c-g|8#HNF$=DUiKDw=JpdJiU=IEN)dsEKBK9Le5>Su zRR$J#BAy%?PJ)*&ftJfdH@ti#vnAxQsbc(Se!-1vsL*swuw{u$KH<@-IMkBw^pu7% zm)cO<8FXx4||F-4j)3hop%<6ZKY>VGSz2`gUjXM{}!Hwu?L|m#gYO zWOcZq;)hcuZM$23B+#$57Z8jum2T=JMBir8b}d~tbgwcxYT`wo?SSp{WY4E=Wv$-U z@S4&z#xwN;$2>9dho~*F!~G`Z>fyh1Ftm2aJZ0u?d;X&Jo2ehPhp6~-vlM*!34F_e zV!f`E?!r!_VNr*!>V%tdWUBoN->71bjt%9LQ$N*?Xq{Glhv**gw(z`6c$?|8B^2D0 zswbQmZ;NxoN&cP_K+n1+X1GE$O8IFHdWl}n*j*}RTVhf^%y$!aH0 z{O`wOy9~wra6y+}jgR|@o|r{zI_WdY|8y>4NA!8cc!!k59qVL zZ$A$&k1^YwPGho8iMS)8>C2F-F=`@jeKf`2rirdcx}$dWE|ZrRBT>lB2(LXGb&}Cx z%vUV;s(K2A=2%txs6My8@_2KlV}f}M5{bkH;js#N7T$fUg36n7+pe*shO$|?)mOmR6Mm>vmqN%3k4GL#FKE{=Rca`@?z1?URc=jlg^U~6wBq`T1) z4pnnp3ocd>P6h`DW*mh1x_A(r3W@*^fu09EBfP@{_LJwx_;Nz*36JKR5XRUz;XE8Z`kG>U6to0PB z0*Cjr9#b+QzM-WZJ+25tx1XvJBBsdAPDa*sM(1-|wA0=mRjGcPT*@MAT$q&GM<2Y> zU3&OT)QXYHAmf_>sTYsm?w}c8#h9bDQa$Ou`#S>ATJ-d*CKg+mRb5lnxkFXiraR#0 zENAAXo`m+E`J^JHBu!T!M(O3Q!eJi2& z$kiuz)km9MXO+(yp&ftrG^!`=%~$BT6}b%aQa)G&R%0E0pyCar#)W$z%;6W!OmI7d zH#WiT&|M5lpvi$dvzS!>@g_HYwBHmWk9Wach}-KydOm+=5XkO#I7nz8a1(a0*do(f zq-wv%#I;VWF@K+aM7c)quU^J)nu#yXERG*I8kJV*7_Gc6-`U(4d1rr$437(@M^>5ylOYaZ6qtKCbjG1H%yGRT`!}3!=`p6%5LZF`Tlv|VRQNmr9t9Kt)REZd5Gogp&-0^srwfpK z7!35`8UR>+tcjS=5EsOq&&9*17WM_HLIyP#B+t{Md1f385O(xnfGT_e+CV_O9p$EN zK;-&+K}g|>RRkbM%#_9FVgrU1bm-uq!P5#15Vm!ocU%sj<;S|rgT|+1uCrT6h9K;W z8BIb+-h$EctD7SpI9gDWx_r?NECwqePyWC;Z-569Xnyz=RgV_V?&rN@`$9B=>kC1i zVO&rMYxp7`l3aukUO!#n6>uv9U%?;xT}VAbv<9#~pG06Q0ZwlvzR*uDnWIF&SfF{v zLXZh?LV^t-Kla~Hp>ZpLZxnL632Xoa!RF6d_Zy)({~x%5T*~w1JO$$Nwg%>pJL+&Y UD5!K02u0}Q4Lw!D|M@`t4aZ*)?f?J) literal 0 HcmV?d00001 diff --git a/lib/desktop_widgets/clock.zip b/lib/desktop_widgets/clock.zip new file mode 100755 index 0000000000000000000000000000000000000000..af5c10e854a76b4d63b8a33a593913bf223f4d1d GIT binary patch literal 5740 zcmd5=c{r4d8XrOu86<{CS*nw*!%cMTsUu_m3{Al2B+FJ960q3{;{+Zi5i4zYmu%z@qtGaVyO$$qTq$K} z(kjU?rX@Z&9;mf7=#ieXutQ^~w1K6}9Twd6u#^3wZh4wKa!0KDCoXARa?kQj%G!$* zD(vm~M>$%Ym11ghge`RHeuL89vHc+VanYmAP;D?k+!Ze%4#8fcp!D) zb1{8un}O+DGF#3)v+>%w7g=pAkN#m9VC)1jPIeA)ZSU<$kjLQhi=}J&-S-Mp z+F!kj@UKQ`4$@{e1`2TJDvKlLdA+-DX^`{}+~>M0+I%IjFU+?{fc3TH<=LDW!RT(K zLx*l>Uwd;bqpmjgVv z>g7{Cnv`)>udBV>^aJt=qxvkPF5(&rOWz)Q@-(8{R_AEZJ8wl6@KM&kwcR6H8=`AIGqN8T_4RZ0no&>FnO$ zdSc;zLV_Z4p9417#2Z>ze<`MRBTxQ9n96qMGTwyWm@78>JO``a`?03zLBgAK7vn(x zkvo1fI32|O+N#X<;O%KbldXj>4<7LDzJv}RENC#RuB$8eC_D2lPAtIg0O^&D`qzVq z;QO*x=`F?0G6e+Emf8L1L@vD(t6@o0lfgYDiWE?(14DvDwzrS9Xu0OLzOi40=BV_I zU^U5)xw_2*9n{6PUNvoBtD4s-tRL6&I97sVJo;BS`*vNOfDFT!zYtnCBC`MF+bN%N zH9bGk3K>JbZfTWb6`y1omz>y&%yqZ3vvYQHagKAvo_4{~5>CXYB%tkW$msaO#4G5_ z$z*bFA_pIq(HlejyQT?1Uo?O34Mt;gUs|clJWIWSbF+7H#4l(9sLDya%bLJwYi3iS zwF1FFS(NrgkpE8%ob4R`OAM@|=3lOkK}Pt>81OH}z{TFj9*^! z4p3fvi6qruLFw4DdCl^mXwe1vSk|3%o}*{!O}qtG*HcsTOt^w%VxOv^N(rfFuBA}W znLgYPF4z`jrA&0b3mT84DEbgeq8s%pbWGW>_k4O@l#*+6(?67QisB2$6pI?2S#QHT z+=b>2l3mniX*aK(jgEHh5}3aE>}B%aa0N>9=BXol?RT_FXoRAhiw0{0&$+{Q3sm;g zI+`^%MY-G$FP?NErO~nww@zZ(-f^MAiQghcU;RtrzT1F{fvu;UdC{)3`)(j`yPXyG zfAJQ|5%i36q-1C%cF%IJ{Bf3$WZbP@<6>1)xK`AV6QeZL~-r? zKyx2h%&i(A76KUTU`uyS7X2)dZ?%z`|H7zzpdg;rxwWB&&xQ3;Nvjc*z;wQ*u z4LZ$;Fm`x}mt+vPZn4z~7ZcCZe~4Q>MLvSbCRn79QCCl}TUeW#rL>y2u`jHAHD=K- zO@NW+v|{CBW+=Y8jO5YllKr_N-pUm5b=4@?(ueWyKp-~t>_ z!2=alT%KL>;i{jW)ES6bkzKN!+2$s_i=^jxVVe%lvJo zFxu_Or*VIx#>;+pho;Gq&7iEMq2pEd0K1+&pl8dM19RBdY}<7*@N*Rr^W6@IHpO=( z1#1X;!T%f{u&@elUUVFkXyWIm;o8Qm`6Q71dyiP z0RS=r2buQ3k;T9Q$32uBxD7!UE@)zDBsj2wt;SmTWZ}+WV1joB19R=d6@~EorY!*c z6H_*riLO)(r6Hgc(y8@9p-UVy=jHVY3cs>~ls2#8ERTk;{!w(nB>}oV2tY{F zNGyP`Frv$}Com|2OARztAQ+UQI0TGB$^yWc!n$hzSQ{4{LD1m@?L!&~&$CE!#S~&d zfqMXyA_xVgxH5_(z;|e?DE<$qpdv$2;VT@!#S1}QnlVsqW(PU~1`_}teL&A%fP?S; E11P@B>Hq)$ literal 0 HcmV?d00001 diff --git a/lib/desktop_widgets/googlescholar.zip b/lib/desktop_widgets/googlescholar.zip new file mode 100755 index 0000000000000000000000000000000000000000..d1fe1869c5eb87c8d573a16cb131b180bcde303e GIT binary patch literal 19154 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

D5`SRy+K~Z-G~wO1MVE{k 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 literal 0 HcmV?d00001 diff --git a/lib/desktop_widgets/googlesearch.zip b/lib/desktop_widgets/googlesearch.zip new file mode 100755 index 0000000000000000000000000000000000000000..a7329cc79caa6db4cb7708df0946c5e5c815aeb7 GIT binary patch literal 10470 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 literal 0 HcmV?d00001 diff --git a/lib/desktop_widgets/weather.zip b/lib/desktop_widgets/weather.zip new file mode 100755 index 0000000000000000000000000000000000000000..a5f452f6f92982639309863dcefd1ecfd8c4d7f7 GIT binary patch literal 14090 zcmd6OWmufa)-4hwxH|-byE_CAmf-GgA-EIV-5Ymzw?H7cd$6Fvo!|}^X3orXax(Ls z=l+`RexaeeRr}C^Qi0$NSHtkby?g3CnBC+gaKeJ`HCg|7-Yu{E$QkKa!{ML;==VswkaQSkqe(b z%;-dx#N1>WkP5RoO3*Ek3;{DzMB*`uSDBII3@SEZY)(k+FH-~=uGONoU-LLXSY;p> z>%fO;SF8rf&!MuB2n}eBo|HcqU*~AB3S!+x`V?kCg`39X`7;60&cO+> zLWA5KZ@2o>qM&J`9Nn>BoK0)5Yp#u9X|FQ%z@0n6*o&I&#;&vdBzydY`NiD#x}n$1 zaof{w=cZgn0~fv?2z?$PuFhV@Tv(tEm41nD_e|>IZ%k}6;^h-Gdzz6>+?p*s^{u?r zLGP_{ZDO(g!0al!#Scgc8X+y{+Xg~=lr;RJvZ;cEkC!qzrKoTB-iwh$Ym4#lSyc&y z%Q176M^1X-qz?8$a!L$QND~zsgq6f_&Jv0invUz$TK4Bqn_%zA*Q@UeU| zsEi~OH066%msL;@kY`vRzbWQ-o!uI_{GhYvkBZUOek&j(EwA#M(A249WuLA;g!b!U zPeS{17_d%%9{y{c;{9qko%Y{KR$m8Q-&jXa=lk0?O5YKc0%bhGBC){9k#Iqe3+Pa!C+OcKv$=Y#=F);=4kjMs4F@u7ZR&-sndt8xSkJn$TE+_2A zwTcR~>I@8xbnVUU==5!EpVr-gr-Uqt-|x%TFk%3~n*m8=`aAkt6@8F6kvp&pGP<{Z z-l*^LDSa}!J?a4gvU5WQE{B|^U(Q^q;aq(O@rnCU?C?=>hLwW0*>!a)K*7GGs1`nJ zQ?zI|#rk2YOaxTMu z2`5m1@pF}}dKpib$tW?;!A(UoY+;RD2f6u{d7^sFt><1!EA-GKboWEvjWqqv0l&Wa z3e8DW%=P#B`&Jhd*3k$uTo(GLuxR$T+;=~QMEy}-e;*ctUnlt=BJ^)b^RG)XB2b!5 z-|HG1+Wxj+M1e}{U%~jfGGqPs;2+ek5F-9(ecw;0Gy@Yr@_*ng=ct$+w~?eKvaAS% zl-q=87eQ|KGSzd78(B}@rad9Yks>NYyW_)ZSuxr;Pg+O?*O@5qLPY{mu+k5yRtP14 zcu$}i0S_=?XoGq+a%onl!gDT?hyY2%1`A7I3fQQUH-b5;{3O?^o;ck9SqIs z%&d%`s!*A$#Gm4d3+F}f=0|$nsvB?U2jKuN42I?_siKyEw5||K(2=d8qJA?m;}UFN z$?%$LX>ht(+^Ab?58P$Tkv9-pUAe;1oRDMl6=n-PMmuS=V6T{;E}FkYF}oURp%iMI zp>vwyTg~aWH@a$q0!W=ybhUKF?P!WO^ykpTm0*lJ%h-DUd(Q{972DYfVk~5~Uch7J zpCon}49zcQU^NO2>V$2MhHc(u+VbX|UxPhW8Xp}-nW9H=Q2kJ8eqLOp|CrW)2*$rV zvDm+w7M=F*s(;EWaOwHCOy$?L6AehCX1Wf#w)!@vR(8J^(AHlT&;-LD8ioqauf<$kwgf1~^9;ruwbOskk( zBDt(1y=<3C@4&J?Va2Gm^=f4Zm#p;e;6wFX>XOD{EoM_OJL2`w&|P|6Jf>yK&F;DO z{q=Niyc?!THXIhY7x={W6c^o?ZNy{s={3 zScuz^o`GG*rifNP!&fP(mh~Q7t(ODaFU*`lsI{q)VeCJD9=N*>7W?Gx*caWFGAKBS zLc1Gs(&V;5-s*!T(fR$j*Vl5|@nY^SwIU6pK92NCBQ>SS<1Qk-(A9Y*&7&_Q<33$g zw0%15;p%pxxE-Br3-)#bu2m;|$=$K~UNBX!H+kX+1M$-D>(XL*&x=NRRWO&W)qGuE zoAeh|d$$?xESk;I5he3tFNF_|ukXS?(tLl=vvqg-v{*L*;l|B#x2l{!V_~;>YVT_8 zs62%K&@sn1e{fK~bZ6t(6ETjaw7giHG0ArlqHdM$>~8A`@=fk6uP`hDy*L`t$CQ4XB|pPTRPE-lBO5U<9ybb{7|ap^2_qh-8vx0Gd;`b?PfB2 zd#mNNGJ8ID>G5Ehh066}DPOap!$SSdLb;{IRK4-0qi4kQ39Aa8{@3EW??(}rXAvM< z;}^b5*2h=35UK_4EX#7bMzoTHeT6iivTvp@=Jqc)nj+$FLWY{l#cmhW?6vXk^Dy0+ zCzgCYZWi{>u9_Cw@MWxz?RV5t_4MW5mEK5Pl zbsUDxGbfMMRE6<$Ce4edlFq3$)7H4g|LDIouyzfZbDqfYQBJ$hBx0z9FJ_jVttRO@q3kW$`UN|xSs<4v_}NFI zs^(hUT~p6XRS^PfGeV^4M8`J<%j|PT%amm;(a7&$7$MSz%@V@7s)L{z!zABJFKA3V zbQ>}yJ(ndMN1m`l-L`Jp-fnDB!^5ehv|CQ1Y)p>wPaiVs8llRhRhU0Xblt!eeZZnG zH`}@J4&{&7B~y7x9U_g>NiMBj#@1;x2W4-UDoPek{XQ7Uecfg7A=C*x&zJw*WNiG+ z)M;g*_|^T|{s(D1^Ju<>vXO`5bF2JWzlBW<_iF3yo|;qrRu%(|uVZrqh{<>BXX|GH z#K}oybExXs7Cyv5J8GM9;N6aOo2_044(igk*2Oap-`eXnM_So~oOYEm?fcf>y;s|> z$%+%2uF2|o6QQmDVolmqv&1C+nPfR3C?Vxe#W)K_89eX6O?d=0%C}*m0v_J&ufFj) zY|DuCgr=IfT;O`H=B1EwFC={KbvjU;Nz7Z`Ci#+#UY_>Au;otK>q@SfEV0`SG%^P& zW#vYcK8IhN@axvk?;N+;GGUax7Es?2d5Lk_?-c0K;h|@tc`E#ZL;;l{sz9*WCBxSq zLBRx7EU-yO*^~86x|7)SR7Ha;^)$(LLO};V?_qr>M-1*Qc`E71oNo?*Y`l|SdaL>4 zkU^%^6$5 zw~|z0&Mn+EO)i`rtRhE+&0JOnom#BEAT+&hM*-nh6UqiJ&Dwc~mn4qq2I!ZO zG>qk=td9-M<)i|nbupdN#1{ev2yM1)sY7y8gAGf%qH_Wah=ijdz6ypNs1TTP3-rF( zd+`!pm_D>d1F)6p5hy{%Doj5O*}f8jmDkfL^LCx#6;S|=jmeD=XEO!rz)NyeYWS;c zVFXj!j7`(hYqrKf_&5|Ik58T?0f2Mtz6j|r;@Z#~5l#ojF6wBhoTGEK{bMS!JGm#d z6z|7-@j)TR3|@xqI9oZtW6spgp*E*L`5gg@%1YBj`lWlRQS3)ByTkKV%HZk zt1kxfP?(R?o_}J#MI7~x#<5BezqX22?TW@yZ`_xtYDi~G)m>4(_2Om(20Kb2KWs#! zjJ%h@4^DB5Fvyx1|G3QP*ho)o`O^(kTP2kDNmzauXeUWxyyVwysr0^DXh}~&I}sJK zL;P*0#EO~53TS+|Spn!E1bQUFDqjOZn5=1f_vgp{q}40P9E&O17V+OMB_`)oi=iN5 z_f7byAlLn6XQ^JVKvtN`n=;VhPO|FJQ3!01sl!nD9M24s`RG|WfDH$a%`$R9k#5aH z^H8^K<|V*jXBIou;VFcTX(R(f{K)qM+si&!zKSHw;7|*R|R^UNVjH+ zxCoueWqkl2Fasa4*QVubBcp=}rBs7b!HjdTMy|QDDafNr{*(N5SXi}^`U!gmWoHVm z5JG(@>orJIQL;i-YZ_Vs1bHZoXRh|SN_$x-XWvCfZ=I?^W|rs93E?( zEU>myxWnstR7|+|Tku2OmiAPrIH(Lo^>RE*l5&RECTsZA+rg5fGnK~ycmM%W<$>b1 zWEpI{FP_W7S5A&8*ypB+*xCc{$&5(9^g@5o-vX8E?9LFt;LN3#I@@8FST;6L+0l@fW&d(+M@p32*%* ziEM+ATB9jy2;wRE7$mM=Nf!y%hRUsLzf^Q1RlLhoXpB<7>!tNjDEg?DF`uGN?|DTU zFGtUr?ow&YRfL3w=FPQq5JBlDOu*WvGM>{4hsK)PGRXUMQNp3qbZSFhT$!WDBk34{cJgs3cpsE&d90v$?$;w@MBRQK0 zsPX|wpwh+xYGSb`W7U=9tn8^t*Ud=R(+YD|m}6s$<6=wW6dvG6(alKFG2#?bs0vvq z3d@hs=GP6D>o?$WBRLCSaDm^a8+W0 zN{78U^n{e*WIWhG#SC1%oi^)rS+qYhItSYqrz|d)E-CS}GhYb$F-6I!;rj;BI=<;%ufdp`w+|eVdvK2=Wb!=Yw=PaP%OarH3eJ|Ya(EEET8RlFwHb& z>$Gk~=iuz=rxS}hgL&Q zWl0CS4N_hq^R&$Od_n!09lsNPjAWd_%OqR1Cv5{(f2?zxi@AH8rxvuk|2!!fju?lB zp-0dwo}+q_N<|D+WfYx;2fD%^XCvGhR8w}6o^a>0H;+V|b8OM7KYJCys@yb-%1yogGVZbvixK+r7xKb2t$;fO=4*V5FG3cxn;<7t>8lAny5Y`v z)eST95?dnHmE^qPXw(5dw$@$W`1NPML0>Zl=;wK)*>I$|*WGhkad5E6aN-;7*j@H- z>zwJ6V=NzyP6(wg@B#LR$>8pmR?J-f|CpolwY4VLfVIRWt!QO6AQ1e0b9 zJc5uefSt*6JgqQM<(;Iq?j#d<{1-zf#+!MR8!a#uNsg?$@d(KyCrkhmRM6PP+(~Q6 zVK|W#;p{0v96DogKdHc|L8(naNtgXJYF*?$)^h^5(r69!DzL-|E)j>Rm+d<;bE|G| zhc`H~Oi(PBx$=bPYW8^u$&r~&6J{EwP(s_b#h__d!Rwhysh@{>bJC@c939ROZwPqy_EmGoqM(}0fCu{$ z->NxGeP8ri4%U*U2%CkRxAk@D{2rO#80~CiA!b}d)71V&)jGh4RD(KH3tcMvT~Cev z-Emfl0feOFRA841Dzb`j$g9sEizM?tg{JA3sfcAFXl(J2TaFfNWwnVOqxUE!#nBk? zij%#nejQ5qc~1g>Lfxl8imK2hr%Wrf7&Ji0=y;^*2YuyS@={J%MYx3M85>#l>o#lf zsNyJzk|haW)v1VSQANFec3f4SkDJaFo&HuBmqZ%vai}!%(0x|TnAc+!u*30q?__(? z$K9-$Gu+!K8v{(8Nj^%nze&Rr&q)pDlj55)0;I#UPk}sn%$S4t0zU3jihLL}jA}$=|{sz;= ziS3JWI!+-fHG*&p{^)tcDRY$V5c9JTS>?JpZ1oe zf6IwtGcu7~icPR*8V4-l5?MPjQh}wn76M?-2eX8Z+#O5gq%$EgoE`kv%F)b+v+Tn~ z^ZX{_v^fIC!(KKuAC{{1o6P!z0x;LPuE%o;YB;u|V_Z|3zk2Z2G#GiEh(5O~%G1#U zAGWnHSAh}cY`0p(h68b7RF2vGME0$Tqm%-gd4v-0C?zW?*6sa{Rl9fng!F}BYpj;D zfp(JUIq3(iMSzv|n~vvbT7@~u%@$FS%qVpk=e~7``tQ7&r^OgjuGrRJ=BqhX%GUUp zFJ)7on?#@T=cQ4Lrr>>GLVp0`HNgnkz%1Ti-&}eDFN9hGCFk}^XCzoc_!9fbrf#{H z$VhQUwfh4ubzwjOdU2f(PUhsK24Is@-$1U5)E%+hPe7d6-d44{4^o%9vRaHjhoxCC zyT6u2V;5;iT;mW{C?Ku~-onW*lzL!)o2k8H3s1h6w8A{T>h0Q$!We-wWC8V&0VBES zdHOmz3Jq8ltPVEhqIsFIVLI%xbFwhgQm4M*;K(@~fn#*mmd@mP&`JGT*=Ns?77*Mq zV-5%~MJf82#iZ=h*S1Nm#^Crk@A76+H0SwArn@V!SFSXC2<-5+R7*SJ1Zz6j4U0pf zBoUp=r_z)cuo?gbJN?hpL&i-O*>HAZBFR0mTu3i{rn8HbwG2s0ea^%XzFEfha8AKB z^8_|U!i^T=AyC6LE|8oIl|nOzq-7EXdtl87u~gXkthQ4n6jV%}^jFArBc{JJ@MbXrT(TknvYZ`Irg9Db6&)7*M?)QaXA)<_~7YKxOwF zq<00PCP>yg=N%L2R%EzCdcHInxB}P>gW!SRXC31~+5IT$- zu2jQcjUBO(5KQqcbhYe;>SBW<@lSHqS#pJYN56&L7rL3>*iF;S(Z~mH+dxNvo;|Cn z$;rUK9&H(3Cy>b`=$eq86=QyN4MF@YC;81s<8k{%0^;p(@rXBN>WupQ@Oh#qv3B-df|?OKLktoRb8#Ae-Zk0XmSYS~5;RFCfXA^gDsWphiT3Y{+1M*x4;PE6YeB zvS#?@91a$dS;?!X&EmL7^bu6oy!zbHa5S(N*e+L-r?z3yI3d zG2wkHiD4rZ(qiIT9#ygQj~bI)1UqQ2ifR>0QKLIQ!aLe`+7;TJ{m}J5_sxnUxC4dQ z9|N@&V;(lwx`7FnW1hZjQ2!-k0{VTR7}`O9imJk_9-T7YAes{4Nq3vjt4sh$ZC-?s z)#fJR`H9 z5y`gI_{(HdF{5~C@4exsVoVU8Y2xb66^Wta(1R6pF%w@hbxj_ag+(}OlrCv5Y8UQT zu6|H%EE^@)4xYQtY@n6!baY1}k(i&e0tCT%>?x-1v&v1-6)jQBRjzzQiX!Zjjf|(E z81*bs&Gouba!@6f^P_IO$bd`SlIoZ0mG*S}*40hM=FlvQ>umZeRe^kuxiPwY1l}5< z^437!)Zhhecm@@&6`C3}y^)tffKnW4kAbP)W!%f~XC7ao+Frx7I7zw%41e5}jDo$} z9bmONX3HnW%O`$AtS%os0K+2A94r?gYs{UTZIe)>v^46+o}ZC~wQ)Oj zE+q(J4T(`^_{V10Q!XSw9Azz3By{tp$#T{aYxHcoic!a{ICC1nRr4kL>QRQjzsH4? zXL>6X>=6Ohf{7;c2IjKrj#Ss3J?tbPQ(SNbYaW?I%q4-!69bowU1|MPBn~Q?25CR1 zh{C8B^sR)koFYdIpx+2Xf?aZQkXe#Fy&ws@L{?orTQ?dYBe%Kq5&Q2CKBRzpL*05Fr)@4l``4(oFNmp>D?FkyDyyY z-nUlV%jplZ7Is()bn=A`iEO8H%juf5BgK~#wK)r-48IbM0&}LE({%xjDwyFKC+00A zqW2ckT=sV~H4l#R`%W4*zHSg33#Kv`p_GubPm2c5izNY$1@lfS8W6Y9n>eJR7HHoe z<(bA#h@#{@&J*nym4VzcQ4-#Z^%^wb=t@nls|%9wA(nK$s>o*uY@+X*rW=g@XsM7A z_m+lCpI{l8>y?a?5b~mo?**YFZm}l!#NG%W9M_%}W%Ja;zH1&&@V>cz*NI?a^@emm zzcYw|y(yNOwwjDZ)GA#0WS{Atf?A3c`o-sQ?~Vsjl;(Jl>YUoE_mkS(d%u zhRtmXpQcb8p`kMzys{Cb4)hCJhQ7d4e~!x=zYjmNqy z1fSAf3kkb*wLtG()isjABNyfD=z-Sf(kn?nhRI8|dVelf9Lh{zLJP`{&<$@4H=&n` z({rrL6BRkGwLTA1LJ^ycMV>n_76++HzlS6ip?I%|v(@VqC?%#PX>1{pDe3O}ZdL$S@{qRIGVk)vWUES z+XH>-kRWpYUSyE(D4)NYsd`J7=1)2aYEF5$gRGmp|e$8p# zBK$CuYX;JkaK&vQTs?woaFb3scjCM@Uzhs9O{9XM{)2K^j;-@+_fC_m;KsIf>k9r3 zWLSlFb^O)O&1Rm3ZRedEgH}wE5b|-abQ{N94&t=< z_-qcNH6yB-emxCr{I<&h3GEf!IDc&O45K>mM0IT<$|Q=i2O=nNH>&P6#hCSrfQfKk zBl2E!-10_+FGPYO4m{K&Iz4O2L2 zLLut1;fcK{C+I=J$aTOEh*ommalZx|pwz|)(N|O@LFd0jCajy~DtwQ{?isA|x>2^S z;dGRfcQbs35kj7XiZnftswXFpl8h33U<|gR9?h=IhB6!al&a}kG5?;FG|Fg9nZP`| z1p4#rJ)u$3C5IKh)gJkcuC@Bfexj_-mp8NYxDcjBXgLzniq6scFF8}tieIfFV}{g+ zORj0it}nYL%uR`i`>Ba5vK=v!uIEb>m5U6Ih?I$KYrMS@q9ye{xVDxT=9@#;81cI- zr0rEAm7o9Co$SJ_Xk%vJdd3>I?mPFLH~ee1>IM(gM(;{JJe2Thrap2w2L?K~hEYKB zHM*gQFCX2c8V@Ze-+iDiE5+*F3ZnJ1zSOo6wirZC zBoZ>fI2I!EKrF;F+D_-F(t~hBT4RWTi^Bgbu63*uP7#KkWtZ^6#$^yOk&0WG-|U8n zo21mkz+ubs?(^YzTibg1y#(A|q2&Wz`b^ZN#Qi;eyrj*%&cKupDy}CiDwmS)8VyO% z)sds8B(Vpy)2tCR^Ag)&%U-=qK&t{4%R|MId|^Tcnc?MC_UEE|ii)HUXjo#ZZWvfl z7Db5Qi0K!rh~UyKhmI;=&IVWRbKlI9(CH#FTZ<>D*E*Jzw1Tnh?py4eRyXC#+faxKd{aaBLN^mwMDH6j|>7 z!eaX7X71ft*#{ZzgInTzdE}S}mw@I^w@{$&ryUQ!`AUSI_uk#$gMe%q{*(U=|5s=1 zz~{?P=j^{Wm;8J}P5FO8(P{tvVfDY|`2N=xlfSWY0mbPlOuz^E|E~G8h5YE)LkBVw z*c#f|nOYdzJ~{|2EuNwv(92*oLjV)%6*I%x&pLr7gN>X&%|48}Y6?xg8{HDNONk>xyV?#SS6TA23 zzs3F0xAA0ie)4YE%e}SCW(moF5K#qmr$;<#(IiF-jYMC=a~}< zzmov!{)Kb{cZt!6F0o_uW5oqS!mL=>!I$U<{b$Urk9Qa2cu_iClBdhMCbPE@Z0l-5j!GQ zV*-y@fHPpz6a}OMB6+=4E)rpUjVyb*9O3w7ztO2K<;w>&2P7t~4fHOQ8kYLGProU4 zL}W86;?agx2?ng#pY!`SmEs>#{qN8#C>T2UudPeaAaIXs^tT)TzQEJ>KWs>fD$sxW z@?|8S5dNy3!0u~gU<5BVAOs)_DD(4<2&N?X&W{wx_^S=)Po%a6+JoXRpPyfO5=PLY5RDaks zf0n_o^@Iilxi2vC_@+OQfSRmFzd7`uT^8{CpITAieivBv`(DVfzefAdC;Voega-M; zI{8o1!UtmcSbivfG4Y@2{z_j@bb-@F2?U$tRsDa#{@6$V%=|Bv0e=K=L~^{sseZwn zP8*2(-$nYVLj&&J(1ED$dudVs73rUvH0VG3O5nsj!2#1G1cJ-)f~5H+&HoAcX=4W7 zvVW|qGmprB2<(Tw`H|*-+Av_6Phh|_e~e}W-7jhWEiMG)(=LkncsGA6C4ux$Km9+8 C>Tb{g literal 0 HcmV?d00001 diff --git a/lib/tasks/desktop.rake b/lib/tasks/desktop.rake index 0ad9468c..ffe7a574 100644 --- a/lib/tasks/desktop.rake +++ b/lib/tasks/desktop.rake @@ -1,24 +1,76 @@ # encoding: utf-8 -namespace :tiles do - task :destroy_build_tiles => :environment do - Tile.destroy_all - secs = Section.all - dws = DesktopWidget.all - secs.each do |sec,x| - grp = sec.groups.first - t = Tile.new(data_category: "app", data_content: "wikibooks", position: 1, shape: "w1 h1", title: "WikiBooks") - grp.tiles+=[t] - t = Tile.new(data_category: "app", data_content: "envocab", position: 2, shape: "w1 h1", title: "English Vocabulary") - grp.tiles+=[t] - @i = 3 - dws.each do |dw| - t = Tile.new(data_category: "widget", position: @i,desktop_widget_id: dw.id) - @i = @i + 1 - grp.tiles+=[t] - end - grp.save! +require 'zip/zip' +namespace :desktop do + task :upload_all_packages => :environment do + DesktopWidget.destroy_all + # 1. DesktopWidget.destroy_all + # 2. Upload alll the widgets + # 3. Tun rake task tiles:destroy_build_tiles + package_location = "lib/desktop_widgets/" + widget_packages = %w[browser.zip googlescholar.zip quotes.zip clock.zip googlesearch.zip weather.zip] + + widget_packages.each do |package_file_name| + temp_file = Tempfile.new("temp_file") + original_file = File.open(package_location+package_file_name) + #if original_file.content_type == 'application/zip' + temp_file.write(original_file.read.force_encoding('UTF-8')) + temp_file.rewind + filename = File.basename(package_file_name,".zip") + unzip_widget(temp_file, filename) + #else + # flash[:error] = "Upload file should be in zip format" + #end + temp_file.close + end + Rake::Task["tiles:destroy_build_tiles"].execute + end + + def unzip_widget(file, zip_name) + Zip::ZipFile.open(file) { |zip_file| + dw = DesktopWidget.new.from_json(zip_file.read("#{zip_name}/settings.json")) + Dir.mktmpdir('f_path') { |dir| + javascripts_entries = [] + images_entries = [] + + zip_file.entries.each do |entry| + case (path = entry.to_s) + when /\A(#{zip_name})\/(default\.css)\z/ + #for default css + dw.build_css_default(:file => get_temp_file(zip_file, dir, entry)) + when /\A(#{zip_name})\/(widget\.html)\z/ #for layout html + dw.build_widget_layout(:file => get_temp_file(zip_file, dir, entry)) + when /\A(#{zip_name})\/(javascripts)\/.*(\.js)\z/ #for js + javascripts_entries << entry + when /\A(#{zip_name})\/(images)\/.*((\.jpg)|(\.png)|(\.gif))\z/ #for img + images_entries << entry + end + end + + ['javascripts', 'images'].each do |type| + eval("#{type}_entries").each do |entry| + eval("dw.#{type}").build(:file => get_temp_file(zip_file, dir, entry)) + end + end + } + dw.save + } + end + def get_temp_file(zip_file, dir, entry) + filename = File.basename(entry.to_s) + temp_file = File.new(dir + '/' + filename, 'w+') + temp_file.write (zip_file.read entry ).force_encoding('UTF-8') + temp_file + end + + task :destroy_build_desktop => :environment do + Desktop.all.destroy_all + u = User.all + u.each do |us| + Thread.new { + us.initialize_desktop.save! + puts "Desktop created for " + us.email.to_s + }.join end - puts "Section " + x + " done!" end end \ No newline at end of file