From 65d00ae0b93e31a6bb7479ad3ddee951a7fb08e9 Mon Sep 17 00:00:00 2001 From: csasq Date: Sat, 5 Jul 2025 20:42:37 +0300 Subject: [PATCH] v1.0 --- icons/128x128.png | Bin 0 -> 5139 bytes icons/16x16.png | Bin 0 -> 998 bytes icons/48x48.png | Bin 0 -> 524 bytes manifest.json | 27 +++++++++++++++++++++++++++ service_worker.js | 42 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 69 insertions(+) create mode 100644 icons/128x128.png create mode 100644 icons/16x16.png create mode 100644 icons/48x48.png create mode 100644 manifest.json create mode 100644 service_worker.js diff --git a/icons/128x128.png b/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..5d325dfdbf9bdab75f126b134d73686bfbcf59ef GIT binary patch literal 5139 zcmchbc{r5szsH{$V~i2TQg$Xg*_SZ3vDH{&h)~H`#`49C%*fcsF4+npdnhSOw8=KM zq#{&O5=xeg$iDkc-}5`a^E>A{=il=@*Zq9%`~A5;ug`UVp8I;P=enpby zu$yB{?HHE&r@^3%XP1H7YlcC3VC>ESK$tW`j|YIAKmIuY2vz}rpEv+OzaS-vB&`>=qFCKVx(l`2R@4Dx>HR0H9P~dndBf87q_rF+j=9ljx3D zqA8OPC(1%ur{#yo)4 zL#EMPYbM-B#u{)PnN5CYE1H@ke4BLZ#^-l}=E5Qz#?>ut-+gGNAAlO)xs1PaahRxU zb9C6`cBP~a-F}D-b}Th(^{p80jZS=?9k60~8VssN%(1qAaB^#a$%f*mClYY!#r z4_pD%<8$RvU=`pqTb0cRm#jynt#=mJ&y@#*h5q-2RB`D}X)Y>){(>~MuS+rgg@NS1 zSh1cwS6UZ$Vr;1&S%(SoJo)kQ$pE=N|gOi{og-W+ zKMBWDT`yeddi4rEGgBQfOwoJs`SWLg-50ctewP}MrzCA=Ndbd4#acKJz+P84(-iTdu0s`n88g|R?YLzQ>Cxt_vL z&rXD_6zD!E)QZefDxn>*w*YPk*^TELHr~`#H(A)*j@{qg^oWWQ4d0;m-ABhqwP&QI zrQQ3eO<6|H%+88%J$dqEaA{Ljm}6Yu>%2DrfvST%p(dS9DxtiH?EXO(oR@6n@?3d_ zyPF#*!|*^mUCc0@fz)OBz5da)*HXDvV;yBnUCB&5%QLyc^rXC%{Lwlngv87TRx#6t0J)NZ;G>w@L&3g5nBubf# zDW$K?zjJbOqMfzTPjGaNJbL29iIR&vrunuvghn)^amGI&FbrWMVB&JV*E1&B%D@e} z^Oul`NbFw?uHm}I1y=?bukMeipsZ}u`gU=Ht&y)`oI~8Gwiwd40x+L;tftz)D(&6g zpG(Lef31Q>#VQ;@%d2DE_+9v?Xh|B>c=kj{ zE|()4;(Y5Tv12S(^9Iw?tOLtI)f^t`U6D!YF(ADYr=(jRBx%lU8T~dYmMKi#mK1`Z zSdvr3*cww(349;8sCUHzr@f)x3xL)f`|-m3ldD%ON`oYe*cDy}s=-=pik9!VLd zQ+m!HFM}o@L+i3+(!Tpm4khJ$ES*>)T2e37IY!!~D#i3}@5Tg`R2dxJ4FY5P&Xo%A zPd-R`a5(l#sQLNx=Zc`(OReWa^&1X|9pBReNJu$uBXbS(AVL5%s!=sE`1C7yt-b+u zB*{cUQ86I=>+mo)G|nivs4Qu4p?%r9u0J`f?%AmKQE_uonhklUp){u=bA2LCGy?0a zujJa6+SAi>FH74(PC-fO+i<02&Ic1t1N2BZCsOmWDyC4chP$sESXhU!A&n+$g!m^S z${WHn;VS<36#xEK$}D`E?P$&T#Rx9BmcL?3Vex8pGnHwsfyV9&q z=S&;wS#tMVcSVaZSHda)?unE)dxjt+{3DBfcT!j}TV6d2;$&TG;y_t@&zDv<^=5Cz zXQeMo=B$<`jk4%H+OqQ(?>66VB6k6GEhC8~Io9-5V{8}ap+MN$Y=wxe)Y=?8F}ICH zH2TpZcgZK^oTBtKw^G?_jks-4g8%oA{Ffp`3j@9k{0Py|UT~xQ4)t7USIT=_%6WTm zu9lT4(&Tmy(#_X%0akGT@LESn8_P(!sf%iOy{KE@Z)X46wqqI%Yv%JeVqMzAWeEjD z{l3|6{uoS@tt1a4&vo z62V_E5V(BFvw77!UhpfYN`IefCtn$&RJCQrke{gVjn*~M-B!+~&d%jMrja(3R#F}^ z6`J}nI$@yDSaeKa@l=*LP{N#<@%Ap#s4|p_`|)(!=b_8rgC0kfXDcSiX3&Rubnwea%<+u<{*zp#7e#5^ zdp9MoU#(Iza^eE%W#oT1&14PMDAi<%^-kn!JDwm#m556m;4k_mCrn{54Y#GLT9fY2 z=a0pIZMk~zL+tkEUB^uJo2j&;*|B_4Nrm+ey|6J!YWAnZSH01632YBBt;(8-pBDzG zAJ+7P)6~R$Lo(`gjTQD|GI)Hsz=9 z8<8sMMcrR6ojb$r9^b!3n`E3zt>!Bq`y5ujvbukfZMxib`k=1>SdvZIYcJ%hLgW+x zG}t)gLZn!WWokN8=T56K;wG#54c~e%`u2O*Z<7+Pz4|2vOpm=!9wu85$Bmb| zK3-nvYCkM+i$^SqQPRcv1mE6@h#llFmSTw5)6Zb5X8YXm8YoJzB$v&4sk`NDP2-#pJv2cXv01_`h1&-)q=V z6tu`c)T&-Q8H0&g=kNMZf+K&|(q5kAyF9n1RloW5wBflAT829!BL-Wbu-pkCgBX(y z4n|qy>=JsPh`|%;2Z|-siwRXG^b6Uw~xmbPOdwg50v+1UhKd2@;p)ZB#jz3R9kUt z^T)_W((w}3-B-yTec~|ex_DUyByjf>I>w_)XJ-RaA3GAuk6N9b_qlvkDn}x31mM~D zy6dP--Vw@+UcQDUO?`6(fv)*Uq2}<(y4D?G=AlRJ;kq}Y6bzy$l znFlCf$%H%;Dn!fq%mS~vv8BuvCO%Ik6lrGM+PCv2Vm-tIe>qo2&J}M73GdLI>4(?e zf`CNFiO$brmtNq0$WTQ=7TXo6Tn%$DfcetWkdzHoej?7own<)^gI1ydl~VlNHSZ%(?7vt<9uGRMysi zQcGH5mfc9>vk|f6K2E3H%Qc?kbn4}lbvTs!%4x5|`1yHP7yi^Zx05wN(!8{iCdCSO zEB^?^Em=Z5uf54U%w6}4=SeeODZdC;;{RaWY6D*f=ZNXV4e#dqiQ93N?rcJ=BLw2t z5AaR)A<_%pJW{tv!TuS3VBY3cUR!G@*olXC_PXi8F*P1H444Z1N=~_D*+&tE6&l_J z#iJbM>q^MW@OC+v?f~zN1tv#nJ}Y}4aCHgC&9V|_IMD18Bu~#)nf!RdImS29ZhI&K zF*|j9p~Y&Jc>dMd*8>9aLnrTKH5KMPeD~v2C8DMA&|cg}vrK`1J?f6~%k@){Tr0QF zvlV&iqc!Tg)`?T2G7XJ@mqRMvs)Dt}dp_$(N>COsa4la>MZIacY1!)1=#;&1rD@rI z2D8Ccgz>oLQJWtjb$W{z5+zT>O1Hs=tC+DA@{5)RTcE+$F&+s&}$5KrkhzpPde$*I)bBhZRLBJE7R~BXi5b%ypf&8f%6zM zmxY&ab#Gio1y4V6OL z+t!!OZr9Lfbxgc_f%}{nDS?=2Suze>iF7~P?ZvCxE7J5Fe|PCjzWt{3>|`HKgWZPz z%Jh;P^HI2#xLN(QrEq~tdx>kq#VsSladunum!<)uYkQ!3QuGDeuBhcJ1|Pw6h)5oI zC01H%hdl=O-jI0q^wv&%69AF8mCY%@B%{i)U=c4CPZ?&$=qNLtY=7dz z_YlH(Jel965U^7#m?qe;q?avFm@?c@plN~*uoj!sKE_)!%Fmy zL&pdUqV3{do`PAzrHjV6>y0ex&q>_;uC&Ai>RYDK6(Gvhy5oiKCnt%Qu#SV1^@o`g zJm0@!wtPRJcalu5qNVwjC1O@tt;o2Ho~RhMx%{AZnt>m#$W(>`40G0h%*$k{&*g+9 z1wNYH?Hpk$eik!>rh(;~#E!z>eWp%Bkd(5|)|dU5sMukD-IBP~pie@in1~|aVIP;E zxYJa#kFg~6;-GJlQ6mkF!Uvs8hvRu~#m!N)%e6jDu{A_hK6oIyzW*I_+?F^rWo&wa z-s0-7Jy+D7r(@NWA|qXHq|J|&i~wYQBFEu|@_3QOsnL5U%mrRA-II5{*_7=QHpLXo zP1}I*d4oKQX=15t5=MPP^s_0(V=5JOT941i{8r*4lpcq36dDe+RV53aZZm6zpk+Vi zLAF`lCw7<-tWu^${-=3KzmdJUiqCVCmy}NhbTsGo%Ao`rS}4vRHv|(n=>Qm$4=O%l zr<-(mDXqKRPVP#v1aE#7?V)^j+gs)MoHC!JZyp-H?U>uh5?jH=_ZgpA0juS78GJWb zvv{-GMe^s22xbd0a0E-v2nxr}JOD{qmnkY_-PY4OiPxm;ysMXhVd3%wsB!S_L6y+& z(L}A8kdEN*0-fAElQn(hyAJ~o2N&))do$55g1cF%TL@#t4(7^%%G_(#E6qc{Z)5NI zaH#wUlX4inI@$qIA>2y7;oe@4dlxsC4p!EEsbsCz24b}kes11=Rg0+?@9n|DgFNl| zE3N_Q59zcLt04K3m^EzKp0S;BbD1I=cckz=?)Zf;sAq#AkjZ6t?z=g54;^T9WV?98 zW}S`*Z=aYSb%A8cUcO`5uNSFy_TtTSS$(%$_f2j9*5C5!F88=Xe^=2LiNTX2Z}SiV z^pkV~xHQ7FVf3r1yb%?A90&Z8f%uyE{;-1t-tTB`S&x49X&M^6W V`T0wI4u8(G%+0J#YmITS{{Thg6^Z}= literal 0 HcmV?d00001 diff --git a/icons/16x16.png b/icons/16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..5f27ef28e12bc22ed2f1922aeaeb507fad4b5486 GIT binary patch literal 998 zcmZ`$T}%{L6u#>pxM($vtrSf&iK&Co-I*Ogv(s6LWw-8%iwiC(8WVSRW`GfPW;%Oe z2Vz7`ld2)_B&EECSA}2y+9?L`ugUwZy#!r(p4fAfaH9vJ$OY zlDB;HA}>$wc9@~5#S+}&qeBU?N#Xf`r8Y)&y_NEmxj8RQNKCnruk-(~L_s_s-Hfrp zGfXO#a;M7Ny4l2dyk0NEatz10NQEoep<&T-X~}Jb!AUK0_?4t&ss>hdjj}n#xZZ|+ zH0`98sErS(wd9flL<@!_7>~P*AzTzC5RZ?Ty4)ry=I#SptEwrkDqU+=Of1-??~|l4 zV|V(XGnr>GLV= zTDPVn4!8C-JNadzzmyu-)+#Q}XCdn0RB>bb*VPOy<69aewh! z;ldQp8Trr7&Q|gFo%c;kDBhm zQ3#Y>lOQ(BdHH2W0hZRcReR-by*0~GFgEbre6!{Cu9H3$^QQj^Uw{2#)>eTw#hUx= zzH7L?{Qm3GAi=}-pJmtGclolYJHvh-E-xX?~>Lh((*b^s_IyZC5RW9CAJK>qEy(VXGc-Y^5vd~M@aN>z~svF)d zdoFTcM6V>`9!Ka((@ke9)XeUbtevu@SzGgyA#!k4Hp { + const downloadUrl = new URL('https://www.tbank.ru/api/common/v1/export_operations/') + + downloadUrl.searchParams.set('format', format) + downloadUrl.searchParams.set('sessionid', sessionId) + downloadUrl.searchParams.set('start', start) + downloadUrl.searchParams.set('end', end) + + chrome.downloads.download({ + url: downloadUrl.toString(), + }) +} + +chrome.action.onClicked.addListener(async (tab) => { + chrome.cookies.get( + { + url: tab.url, + name: "psid", + }, + async (cookie) => { + const psId = cookie.value + + const now = new Date() + const year = now.getUTCFullYear() + const month = now.getUTCMonth() + + const start = Date.UTC(year, month, 1) + const end = Date.UTC(year, month + 1, 0, 23, 59, 59, 0) + + downloadStatement( + formats.csv, + psId, + start.toString(), + end.toString(), + ) + } + ) +}) \ No newline at end of file