From a1434db8f84d5c6046016a79f0b4a80891e6dae7 Mon Sep 17 00:00:00 2001 From: danial23 Date: Sun, 14 Jan 2024 20:39:42 -0500 Subject: [PATCH] Initial commit --- extension/icon128.png | Bin 0 -> 4648 bytes extension/icon16.png | Bin 0 -> 693 bytes extension/icon32.png | Bin 0 -> 1256 bytes extension/icon48.png | Bin 0 -> 1804 bytes extension/manifest.json | 22 ++++++++++++++ extension/popup.html | 34 +++++++++++++++++++++ extension/popup.js | 58 ++++++++++++++++++++++++++++++++++++ extension/service-worker.js | 11 +++++++ 8 files changed, 125 insertions(+) create mode 100644 extension/icon128.png create mode 100644 extension/icon16.png create mode 100644 extension/icon32.png create mode 100644 extension/icon48.png create mode 100644 extension/manifest.json create mode 100644 extension/popup.html create mode 100644 extension/popup.js create mode 100644 extension/service-worker.js diff --git a/extension/icon128.png b/extension/icon128.png new file mode 100644 index 0000000000000000000000000000000000000000..a0e4f93d010895809fad188181f1794413905f1e GIT binary patch literal 4648 zcmV+@64&jCP)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00006VoOIv0RI600RN!9r;`8x z00(qQO+^Rj0S^HoAm#H_wEzGSo=HSORCwC$oqM$2)0xLV&u{;dkPszWmrxnE7R9t? zltx)~nd+!j?SurWxQ)dyXi}G=l~Q!d&}o+5*@4xqVa=vS2t(i;*T^ zwjHoNFbUWiX|uq%19HGxr1ya3nEeHK9qCQreIReSTwMpCo(K~jA#DcijM?r;y8)9h z+X5Jm7XXKp1KNQ#n6)6i0W1by!t75-D>3T=sHITUL;w`WAc5H!q#ZH)B5(k(2QU%X z7>G)ER1R1Z1mGFq_rQE$8Ia3@FceogOhDQfI25zVNZVt!aRrZD7x-TUJP16Bw3Hex zj;aJe&Vd=g1mGaxNTmIObk{<-a$zMrh}o}@76PpR%_aga?lJO{;$e`jzAsvj_Ilz9vs5#D~D$NLK?d07^p} z2*9uUahOd(nu*!&)PLf8<87oHfa`&GpgiqZGO-Cs-zrS}iNGceW;Q{PmH<}+H)Hl8 zQp2`|gw6A5r0-((4|roPE#!eGkS@aP3CcJev%uWL?0yayV@xDZAE$}1YDq!7EV=<@z1coDEDrVOJTcpk3AdD{uW&!i4ga06G zfg1xCBAtcV25GZA$XIlQ`MLyHH`sPCpa3NHxg(LT#q8s0^Hl=ltAKNXTdASnAZWqy zzz=}afH-YdOF#$G6~N_~bqpi~{R%+he19Nt3$Sh4+>{LIePAYLw;@%n3Bu%$11<&5 z#P9!E!8)W_nBBkthG8E82x=c-XW$OZKAScd72sW@Q!)EBRPH(rV=)T&4rUk8*yC=k zumYG4Jk;M<^mWggf!RjD?2Jx6z~;bJNc%w#p)MH-EqE+&4%wW1fGvSbk+wnV^T!?n zkQk_A!`U{wFq?!If=N|AXP2-bvI~DF@y~$ky%?f?KD-msx2UgMw=ppLd{EtE%hdu2 z+u@hMTWPaWIRl{sN(sUAjjBX7eO$3feo5ngae*k9Z0b|P9 z3c|4|2mG9H+m>mV9RloB(DG4HC7SJz+0JRxS7)4z*;JsctsvL}e?Yn?Z3b$9ZGeNp zYyK#>dmZp)vf<*a24jJXfxQX?P!e)EFe_+*mb96u0S-YL0}usOum$k>w5e(kw#WPQ zH!s!LEq==E8Q?c*Gf*|m_QY%(%!)R^&cG+rrmKMi@MWZ#NO4(5L#YetW~6u1W}zxb zTO#d(6t)0qcf5LBUtqxLz!9bT2NFK?{{{XlZ3e32-bMqT>DB;dyQEE13WG2nxFp2s zmu3&-^I+DA+0DRvX|qrzK80ja2yECcZE8}17yR!7o0MV?Sho*hA#h*XTmvFk9xuE2>f;sm3%amI*@J(u?Jbj1Ylf*G#06njFsU6huKWvP#AhENZ0~T0r#g( ze8n)^2(t|%d^mIS#5HtCge3|NG}?aEjAu;GHKz{y0Bm1qyN19Oqqq)m7Q=t9ax zNbN}NX;ae_FdL28`Q-BlAPst7kO&x=kJ)e2CcOf*0c{aJ{rID_sc9l?iP>e85(({( zj%~nPe9mH)um)HcVYUvlRcTYxWcUJb0n!G8oeGL40_kz2|4EzZGSPxrYlN5JY{$IS z17keRdMgN8{@g4V_*Vg>_{1 zG`?s>b3=L$>Cey|0kkCi`&invr3$G9v&)g@P(o^T(Kg8C#^4RdQ!(2kZ8nC4ug10v zx&`1pyyP}N@%4iAJaAsH=7(JM#k@hYy+a=2;iOqHr93=~v<5Tc5EGa~nvdD^v?)sg zIee9o3xL;#sxlHn=wqbM0jD5+9kb>u6frozPXOQ?vE_0FX?_ZL7oS+Uen46s3Mu>; zSPcUgSSpr=k@f)o5tx#RnhAZe3~3Q&SbKZe0=!4-HGHX+gVUz4L3jg1!y8sAZar1n#oJX!}v4saKkcSHqz}td%qKJW=PxOGm4J~cEqx)>-)g$exhh;GTtFh{L$Cl zGy6|``PbnSB_u7t>|CS;^r|eXIQE%8uocoY%uYtyWmrwTAA|RRdE|0E_%8~8b#)aC zo=1=tVzz(UG}izfNWZ}BVqhtBtNdaWG--39=o^@winJ%)*;2y|zr$Bx?}46MfHwv| z!0a|)GTEw#)f+ANy?zeT+8z_{F&?wSk^TwT8;FPL#Dnw^X15@<_vW#0l`ua*p8)P9 ztNDV`^O&8F^dJeZUa`({!vK*}Rs7p{HFEE<#<2$&Pv$_#kNF>tZy z?!r;K1NYzyD`W%GAAy;`LzwkjBR3oaKMvf8+1Ju0xel0*?_IQFuu{1LZUG62`6JRb z_%Nbuz_)I>4LA{LbiYBJ-W%2ed>iTMv`MZpKEQ8rD~76yHfTy%P?zA<>b+@mRTj*) z!rL$x1DnXX9*G|2bNvDS44fVOvc-MJZL%hfE4BN{|nkx)gt-mL)jMreXFAyvMJHaac_B z^p3CDgua9s#d3Trn;}(y0VQPxCo*8}2o9pO8Lb49f&W1I2ED3gn=b>G$80V>I;gq2 zQkI4`d|CMUMV?AP$!X!?fgQjP3HwXtV73Ehb1^#`v#~vF0x#t4fxp|+Cbew%oP=8w zyp%R1Wxb<&)$ECHU7FS6QtiOac$L4h;58J0w+XgJ`Z;EQmo}j#;(nwPfR*L8$SJ>b zXtxj?hHu*ViL|+|5CR?uJ#}6w3PItT*!Kgxz3IEANY7z*EbwwAeG|*B43c=k{lNEt zETls9%L?!n;0~mN0F!gw>eK9H;H)Okn|u>En+hi%Di8oD3W0!|k**|5PNF`{*dF*! znxI^yek@18S(RdiP=%qiH|kk3bVgXdt@qxFAp;rn1m0VS{<52 zD70rE2kb)?i>5|sMYRIs<7q)YRVrvzw4kX2OKR@0R1O?&ljyi=X@-;hj`9 zn|!F@ewHvqmIJ4UK*X$LQ_S{YRfrz*THqzT5G-jB4Q=>Ue+AH5>#pcEHE4oQ-LDk0 z(~*9KvUzb3;M3;)kuZ5N_6Tqx^*$N+ax=5>E5GKG4|T9;6BkEsBto?yd*E4O{5mPG}N!1km|>PV}SprSraqNo&a*a^65SYe6?opkk%so z5Z~5)8B)VmegO@?*sxr#(0=U|{1xmRnk_}kSJGSviMk195oX8Lurk;RyhG^{q}7R& zQ$vx;&6ef!1xbGgn1zpIZKe)feN&rrKNj_2|F{Y^ke8WUeYs#lwd6T;O< zCn3F-COzGR*;9n;;9&e2(y_qADxaK3x)*60(nItrSCa$dbjSshV=EtJ)WN;QWpT|VfFq2m>wdG+EOBCIiY@FA^>(8@K;ql zb185J(nUzC(%SF)LsJL+na#g$*WQey?ImQ!x8<1@^#_gyo}>x(`~J{$0szH31mP1Mr{ZrE z8*x;v0BJ$+_WrwtkTQg0#4p`zU=4 zUm&9#EWq0g*8#1~VCW5orWJq!!YN@b(ocb->s-uX5&jChP(5Tu8DrE6T#qyr>2W~K zKKYcvT&f6~AdlI@z)?syQu|Yag8SDmf3v^GY_Af(y978B_!ef%ESGDFBVH-UgaAM| zCHO&If=}5x6KQD;U(tf}ObBWF7`|BaPz{9h_!6vBf>*CCD-&NpW(1&s#3^AeaAeIK zN7Bo{|Aqe_0_;1)=Rd^P8$1SS5mF{pes5$>03eZ@X!bN_#~@urwY_`Io&-KZ+6aG1 zHE{K0_!>mYmy8&drr`ZG%ky2XgLj6~}ukj^9oEeu?7v6vgp|Bdb26 z2tu%-oI6c%ylemgSS05*mvh&JpYw|2hZV>BD2{Dp)n^>RKr}fwSr2c9`@dg7LSnoU`?9)eqA)Spy@{Ao4)qAYdNQg4wc4ORZ%Y>zx2VkM^)*@Vy1q es9d~e!~X+~q7{8%!+#wB0000I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4FdxsUw}`D>wgxO|I8o*Kn!HW%#6Z?NFfUX*~nbD zUaW#}Ss;U;0yH&v)WfBK3{?`U?6R_;_ii75%Ja= zPc~RvT=~67kbT}Cn~i^)*rsiH`XSKZ`Lo+g1=il0`+a51{CBe~H``o)WXfFlv!nUj zj~phh?q97O+>Kw(mVc~fjeoG}Xe7&yO@{WvpnolQZ(xofj^FTV5s|1U9yjn88L;o7$ct{e)roOj1w<3D?Onx@9X T<5JIou4nLc^>bP0l+XkK20jR+ literal 0 HcmV?d00001 diff --git a/extension/icon32.png b/extension/icon32.png new file mode 100644 index 0000000000000000000000000000000000000000..d54d634068ab6bd50a95f1708cb9adc5f806c4f4 GIT binary patch literal 1256 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Ey!3-oHx~}5|2_$<2`7$t6sWC7#v@kII0tz*} zU|=XUU|@Kaz`$TNgMmT3V9u^U8wLi(uK_+Gu0RF84wd7B51O36X4>=iqQ-~=0c1`CXr1*QwdQ9R{)X4V-Z{>oPlN$L@!(xlZ)m6 zhyu7Fa0j4?AnSr_K^8<)k7h3(l@KYong9P=p43+WM*Px}AirQB&8S_na^J>A3lZB>tm)rT&Q0B{X3yqvF_pfwZvT-ZbESK) z-F_L_tJB$w{~Vb0uAIs9{j_LboxUgE!!B;nQSW?oM&e7eVBGxz=_qG${|}Yik#F2; ze$A0CEaI86r}uZ~Ouc3NeLt^Pf8{L8Vhg>UkbTM1aQo@i8lr8lEBS*i&pxiU^y8w5 z@_B*r>@G7w4o&iQcUiW5gY;A&hrPtp*OmPRBR`{}VZU>!J5YL~r;B5V#`)xggp{PT z#MI>H51u?qOG;s2a#NFwv#VotR7@0fQxk{}@rg;&6!7@u*%)GA4*2%FOobw6MuO3_DK5r zs0!2=7qfAv{9HOM>`c!!GY_V1JY^bO)1+=08*WyTe0X3%+p2_>o0Jz%Hg3{BaG-x# z!pd&#&9klNJU{rLQ|4j2}dTd&pc>beC^WG&Ch+#m?tJB y9bl7~`Rv^6{Rt11+}>PD5dGRc{mFtXc80JO)`_p>K5hZVCxfS}pUXO@geCw|f95*? literal 0 HcmV?d00001 diff --git a/extension/icon48.png b/extension/icon48.png new file mode 100644 index 0000000000000000000000000000000000000000..ef332fd84ea30736b8f79adb2b8bcded2ba9bfad GIT binary patch literal 1804 zcmeAS@N?(olHy`uVBq!ia0vp^20*ON!3-qp_^qb_DTQQ@AYTTCDm4a%h86~fUqGRT z7Yq!gK!vXo7#OT(FffQ0%-I!a!@$6_JHRKz6{z4p3(J3I=Ko@1|CyLTY-9u!hsXjM z5CoS+=0cRgr63Hr0!&$m6q-1uAVdV>062+k3$g-;X~-m|Ggw(czJM47(F@_i&4hCy zvX~~o^`c2Z#36!cYT$y%3}o|>#o=sZm%s%f47e1K3o!>y!WE#2u(2Vc6(R-E3pW9c z3seIafvbUQ1d1RdxMBzcSqh>TE&^8o*8-7(izBN93c?ZG9Eb>z`~Sb@o|r4ZElAYSNLhJGS;;iiU z`w?DBM=Z6D*Ul5_eIDSTzWkTXg|CyP*B7zdAMV*KJ)zRv^eERQphp>#yxm=1s9h;% z0&>_(Jbhi+Uoi4BDry%g_Sgb*_E}FC#}JFt$q5WhZfa^_W@UVSdU{vk$# zcZIU-;a@y$J~C1%n|vfCCvUpgYAjh)kWn#j_Vn`yIvyToYIBN_n#V0_Xdt?nJ%qD4 zL!s=c)zZ{iK0Sd?S1ej3$}=@I;%fNyABKikuc^LRz;)f+;D&ip@ck=y4oO_P)uwpw z-k}3G8daZJ?VfRDx8da*#i4Zx5#PTo;{N{Ce}+ZoCcb6Ao(Fe1o~+iIwS8&!GQ*|5 z2VWVc2e>6ZaqWNe(wIjgeO2N`gKRU4(}rgq`B&`xtY&mBzF}cpuA<6zW4*4|&Xc)f z_OxuY6!#5S)x;TPW8fDY-=(%vdCQp`%d8Ja*Ko9ntNVCr8y-rz`l{2>!}VCP;RwZ>-Qi&vXp;nt?2a0=VPS6(rP`H=~WBdCC-ZZ`Qd2v0O0lkf&)sJygToG;bF|3z{k2)_%{fMfqUMjj|KgT8 Q1JgQ#r>mdKI;Vst0RE}NtpET3 literal 0 HcmV?d00001 diff --git a/extension/manifest.json b/extension/manifest.json new file mode 100644 index 0000000..357a3f4 --- /dev/null +++ b/extension/manifest.json @@ -0,0 +1,22 @@ +{ + "manifest_version": 3, + "name": "Effie's TikTok Extension", + "description": "Search words on Wiktionary.org", + "version": "0.1.0", + "minimum_chrome_version": "100", + "icons": { + "16": "icon16.png", + "32": "icon32.png", + "48": "icon48.png", + "128": "icon128.png" + }, + "background": { + "service_worker": "service-worker.js", + "type": "module" + }, + "action": { + "default_popup": "popup.html" + }, + "permissions": ["cookies"], + "host_permissions": ["*://*.tiktok.com/*"] +} diff --git a/extension/popup.html b/extension/popup.html new file mode 100644 index 0000000..43aee5d --- /dev/null +++ b/extension/popup.html @@ -0,0 +1,34 @@ + + + + + + + +

People who don't follow you back:

+ + + + + + +
+ + + diff --git a/extension/popup.js b/extension/popup.js new file mode 100644 index 0000000..84a1464 --- /dev/null +++ b/extension/popup.js @@ -0,0 +1,58 @@ +const table = document.getElementById("table"); +const rowBlueprint = table.getElementsByTagName("tr")[0]; +rowBlueprint.remove(); +let token = ""; +let maxCursor = new Date().getTime(); + +async function getToken() { + let msToken = ""; + + chrome.runtime.sendMessage(null, (response) => { + msToken = response; + }); + + while (!msToken) await new Promise((r) => setTimeout(r, 200)); + + token = msToken; + return msToken; +} + +await getToken(); + +while (true) { + let responseText = await ( + await fetch( + "https://www.tiktok.com/api/user/list/?" + + new URLSearchParams({ + count: 199, + maxCursor: maxCursor, + minCursor: maxCursor - 2000000, + scene: 21, + msToken: token, + }), + ) + ).text(); + + let data = JSON.parse(responseText); + if ("userList" in data) { + for (const userData of data.userList) { + if (userData.user.relation == 2) continue; + addRow(userData.user); + } + + maxCursor = data.minCursor; + } else break; + + if (!data.hasMore) break; +} + +function addRow(user) { + let row = rowBlueprint.cloneNode(true); + let cells = row.getElementsByTagName("td"); + cells[0].getElementsByTagName("img")[0].src = user.avatarThumb; + cells[1].textContent = user.nickname; + let id = cells[2].getElementsByTagName("a")[0]; + id.textContent = user.uniqueId; + id.href = "https://tiktok.com/@" + user.uniqueId; + table.appendChild(row); +} diff --git a/extension/service-worker.js b/extension/service-worker.js new file mode 100644 index 0000000..ed2884c --- /dev/null +++ b/extension/service-worker.js @@ -0,0 +1,11 @@ +chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { + chrome.cookies + .get({ + url: "https://tiktok.com", + name: "msToken", + }) + .then((cookie) => { + sendResponse(cookie.value); + }); + return true; +});