e3rd / fb-getridad

1 stars 3 forks source link

different variants #2

Closed e3rd closed 10 months ago

e3rd commented 3 years ago

Máme různé varianty, jak mohou data-pagelet vypadat

kaha0 commented 3 years ago

Nezachycený post: html1.txt

e3rd commented 3 years ago

Zkus aktuálního mastera – funguje ti to? :)

kaha0 commented 3 years ago

Jo, teď už je skrytý všechno.

kaha0 commented 3 years ago

Teda, asi jsem to zakřiknul... Včerejší večerní verze správně skrývala všechny nevyžádaný posty. Aktuální verze (updatovaná 2.9.2021 v 0:08) skrývá úplně všechno po prvním postu. b

kaha0 commented 3 years ago

Zkusil jsem manuálně změnit launcher.js na předchozí verzi a to opět funguje správně. Takže někde v tomhle je chyba: if (n.tagName === "SPAN" && n.style.top === '3em' && (Array.from(n.parentElement.querySelectorAll('span')).filter(s => s.style.top !== '3em').map(s => s.textContent).join("").includes(lang["Sponsored"].slice(1)) || n.textContent.length === 1 && n.nextElementSibling.textContent.length === 1)) {

e3rd commented 3 years ago

jakože předposlední verze ti jela dobře, poslední špatně, současná nejhůř, takže ses vrátil na předposlední? Mně se teď reklamy dva dny nezobrazují vůbec – ani jedna (!) – tak to nemám zatím jak ozkoušet.

kaha0 commented 3 years ago

Když je první řádek funkce is_garbage tohle: if ([lang["Sponsored"].slice(1), lang["Sponsored"]].includes(n.tagName === "SPAN" && n.style.top === '3em' && Array.from(n.parentElement.querySelectorAll('span')).filter(s => s.style.top !== '3em').map(s => s.textContent).join(""))) { tak funguje perfektně, když je tam to v komentu nahoře tak funguje špatně (jako ve screenshotu).

e3rd commented 3 years ago

Fakt jo, a nevynechává ti některé posty? Já myslel, že právě tenhle řádek ti některý post propustil.

kaha0 commented 3 years ago

Ne, timhle řádkem to nebylo. Mám za to že jsi v lang indexoval špatnym klíčem "Suggested for you"? Nicméně se objevila nová věc: data-visualcompletion data-visualcompletion.html.txt

kaha0 commented 3 years ago

Před chvílí jsem se přihlásil do fb a opět byly vidět posty "sponzorováno" i "návrhy pro vás". Tak jsem se odhlásil, zavřel soukromé okno, otevřel soukromé okno, přihlásil se do fb a nevyžádané posty byly skryté. Tady je html jednoho postu který předtím pronikl: html1.txt

e3rd commented 3 years ago
kaha0 commented 3 years ago

Teď to vypadá, že vše funguje dobře. Díky

e3rd commented 3 years ago

Dej vědět, až zas nebude :D

kaha0 commented 3 years ago

Opět skrz to pronikají nějaký posty. "[fb-getridad] Startup with lang:" se objevuje, i se správnym jazykem, viz screenshot. Přikládám html proniklých elementů. p html1.txt html2.txt

e3rd commented 3 years ago

ZKusíš aktuální master, jestli to funguje? Konečně jsem se k tomu dostal :)

kaha0 commented 3 years ago

"Návrhy pro vás" jsou skrytý, ale všechny "Sponzorováno" (co jsem viděl) se zobrazují :( U tebe ve firefoxu je všechno skrytý?

Pár proniklých elementů: html1.txt html2.txt html3.txt

e3rd commented 3 years ago

Jj, u mě jo, ale tyhle exempláře tam zas nemám. Zas ti vypadaj trošku jinak než minule :D Já nevim, jestli si na tobě FB pořád zkouší novej formát

e3rd commented 3 years ago

Zkusil jsem to vzít od podlahy, tak co teď? :D

kaha0 commented 3 years ago

Teď to blokuje všechny nevyžádané, ale i některé žádoucí posty, například tenhle: html.txt Plus, od asi osmnáctého postu na zdi to blokuje úplně všechno.

e3rd commented 3 years ago

Neeeee :D Díky za post

e3rd commented 3 years ago

Von ti cpe slova "Sponzorováno" i do datumu! Tady v tom jsou znaky řetězce "20. září" i slova "Sponzorováno"!

image

Vydal jsem teď další verzi, kdy navíc kontroluje, že jsou písmena slova Sponzorováno ve správném pořadí. Ale když to nepomůže, budu muset přijít na to, jak vyhodnotit styly (každý písmeno má jinej styl a některý styly je skrejvaj).

kaha0 commented 3 years ago

Teď funguje perfektně! Snad to fb zase za pár dní nezmění :D

e3rd commented 3 years ago

Haha, to mám fakt radost! Tak se budu těšit, až to zas přestane :D

kaha0 commented 3 years ago

Už to nastalo. Tenhle sponzorovaný post to neskrylo ( ad.txt ), a všechny následující posty zase skrylo, i ty žádoucí jako např. tenhle notad.txt

e3rd commented 3 years ago

Proč to ten jeden sponzorovaný neskrylo, netuším :o Ale zkusil jsem zase pořešit, aby to přestalo skrývat ty žádoucí. Zkusil bys aktuální master? A jestli se zase stane, že to bude zabíjet poctivé posty, tak si třeba zavideovoláme a já se podívám přímo do konzole, jak to u nich máš. (Nebo udělej screenshot, třeba písmena "p" ze "sponsored", jaké má computed styly – teď filtruju, že nesmí mít display: none a position-top 3em, ale možná fb skrývá ta písmena dalším stylováním. :) ) image

kaha0 commented 3 years ago

Teď to háže tuhle chybovou hlášku: err Jinak když dostanu příznivou mutaci fb (ve většině případů) tak funguje dobře, ale když dostanu nepříznivou tak jsou všechny posty "Sponzorováno" neskrytý, posty "Sponzorováno · platí za to" skrytý (co jsem zatim viděl), a "Návrhy" většinou skrytý ale minimálně jeden to taky neskrylo (tento: suggested.txt ).

Zkusil jsem to ve firefoxu a tam mi to zatim fungovalo vždy. Tys to u sebe zkoušel v nějakym Chromiu? Určitě by se šiklo zjistit jestli původcem je chromium, nebo to že jsem zrovna já v množině lidí, který chce fb za každou cenu vnutit reklamy (nebo na nich testuje jak překonat adblock).

Při skrytých poctivých postech dám vědět.

e3rd commented 3 years ago

Chybová hláška by teď měla zmizet, zkus zkus

příznivou mutaci fb (ve většině případů)

Počkej, ono vždycky nedostaneš správnou mutaci, správný jazyk? Na tom to stojí a padá. :o

já to jedu v chromu a někdy zkouším ve firefoxu, ale DOM mi vypadá úplně totožně jako v chromu. Používám FB anglicky, napadlo mě, že odlišný DOM není ani tak prohlížečem, jako mutací.

kaha0 commented 3 years ago

Haha, tohle je vtipný. Chtěl jsem napsat "Ne ne, jazyk je vždycky stejnej, myslel jsem variantu", ale...

Zalogoval jsem se do fb, vše funguje. Šel jsem do zpráv, šel jsem zpět na wall, všechny posty po prvním skrytý. Otevřu konzoli a: lang

Z nějakýho důvodu se jazyk fb-getridad resetuje na angličtinu, a pak to z nějakýho důvodu skrývá všechny posty po prvním na zdi.

kaha0 commented 3 years ago

Stává se to jen někdy, dost zřídka, nedokážu spolehlivě vyvolat znovu...

e3rd commented 3 years ago

Tak to je dost nadějné! V kódu jsem měl, že to čekalo půl vteřiny a když to nic nenašlo, dalo to angličtinu. Teď čeká až dvacet vteřin, dokud se neobjeví správný element a až pak to vyhodnotí jazyk. Zkus mastera teď :)

kaha0 commented 3 years ago

Zatim vše vypadá ok. Dám vědět když se zase něco objeví (nebo neobjeví).

e3rd commented 3 years ago

Tak zatím vypadá dobře <3

kaha0 commented 3 years ago

Teď to propustilo tenhle post: html.txt Byl to první post na zdi, všechny následující sponzorovaný to správně skrylo. A lang bylo nastavený správně.

e3rd commented 3 years ago

Já jsem to probral teď shora zdola a přišlo mi, že projít měl :D Tak jestli to jinak celkem funguje, tak to asi nebudu řešit. Když to bude moc často, budem muset vymyslet, jak to ladit na dálku

kaha0 commented 3 years ago

Že projít měl nebo že ho to mělo zablokovat? Jo, je to jenom prkotina, stává se to jenom zřídkakdy a i tak je to jenom jeden post, tak to klidně nech. Od tý doby se to stalo ještě dvakrát, vždycky je to první post na zdi tak to zřejmě bude mít něco do činění s tim, ale nemá cenu se s tim moc babrat. Díky za add-on :)

e3rd commented 3 years ago

jj, zablokovat; jako že měl projít funkcí, která ho úspěšně zablokuje. Asi to bude teda prvním postem na zdi, budu o tom trochu vědět :)

kaha0 commented 2 years ago

Ahoj, nová varianta :) fb.txt

e3rd commented 2 years ago

šiit!

On Fri, Mar 4, 2022 at 11:33 PM kaha0 @.***> wrote:

Ahoj, nová varianta :) fb.txt https://github.com/e3rd/fb-getridad/files/8189069/fb.txt

— Reply to this email directly, view it on GitHub https://github.com/e3rd/fb-getridad/issues/2#issuecomment-1059579859, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABU64F5V3QC44XPLR2C4JHTU6KFR3ANCNFSM5C67TRDA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you modified the open/close state.Message ID: @.***>

e3rd commented 2 years ago

Fakt to trvá? Prostudoval jsem teď ten soubor a zdá se mi, že ho plně pokrývá stávající kód. Slovo "Sponsored" je po písmenkách v jednotlivých tagách a je prokládáno tagy s náhodným obsahem (písmena, čísla, pomlčka), které buď mají display:none, nebo "position: absolute; top: 3em", aby nebyly vidět. Když jsem si otevřel tvůj příklad v prohlížeči a normálně tam v DevTools použil funkci is_garbage, tak krásně vrátila True. :)

kaha0 commented 2 years ago

Možná jsem měl zmínit, že se mi úplně změnil celej facebook. Teď vypadá takhle: fb Dal bych ruku do ohně za to, že když se změnil a současně přestal skrývat sponzorovaný posty, zkontroloval jsem konzoli a [fb-getridad] Startup with lang: tam bylo. Ale teď už to tam neni, netušim proč. Zkusil jsem odinstalovat addon, restartovat prohlížeč, znova stáhnout a nainstalovat addon, pořád nic.

kaha0 commented 2 years ago

Aha! Teď tam [fb-getridad] Startup with lang: je, ale se špatnym jazykem. fb Navíc mam 100% jistotu že v situaci v předchozím komentu to v konzoli nebylo.

kaha0 commented 2 years ago

Zkusil jsem to znova a [fb-getridad] Startup with lang: opět v konzoli neni. Všimnul jsem si, že v konzoli je od samotnýho facebooku hromada chybovejch hlášek, jako ve screenshotu nahoře. Nemůže to mít vliv?

kaha0 commented 2 years ago

Teď jsem nainstaloval firefox a dělá to přesně to samý. [fb-getridad] Startup with lang: se buď neobjeví vůbec, nebo [fb-getridad] Lang is not sure.. A taky 38 Uncaught Errors od facebooku samotnýho.

kaha0 commented 2 years ago

document.querySelector("input[type=search]") vrátí null, proto se nenastaví jazyk a funkce fetch_language ani nic nezaloguje do konzole.

kaha0 commented 2 years ago

Zkusil jsem to v čistý instalaci Ubuntu + Firefox, chová se naprosto stejně.

kaha0 commented 2 years ago

Konečně dobrá zpráva! Když necham lang natvrdo nastavený na češtinu a odstranim funkci fetch_language, tak všechno funguje jak má. Takže zbývá jen vymyslet shibboleth tak, aby fungoval i v novym facebooku.

e3rd commented 2 years ago

Hej, tos to hrozně dobře vyzkoumal! Takže příspěvky zůstaly stejné, změnilo se ale políčko, z kterého dostáváme jazyk.

A když si tenhle kód

switch (shibboleth) {
        case "Hledejte na Facebooku":
            lang = LANG["cs"]
            break;

vyměníš za tenhle (o řádek víc)

switch (shibboleth) {
        case "Hledejte na Messengeru":
        case "Hledejte na Facebooku":
            lang = LANG["cs"]
            break;

tak se ten shibboleth chytne? Jo-li můžem vydat! :)

kaha0 commented 2 years ago

Někdy jo, ale většinou ne, protože document.querySelector("input[type=search]") velmi často vrací null a pak se to k šiboletu ani nedostane. Pak funkce fetch_language úplně selže, a díky tomu se nezprocesujou počáteční elementy ani se nenastaví observer, a to ani s defaultním jazykem.

e3rd commented 2 years ago

Tyjo a doved bys přijít na nějaký volání, který jednoznačně určí jazyk, když ten document.querySelector("input[type=search]") ještě není ready? Jestli ne, tak můžeš zkusit zavolat document.querySelector("input[type=search]"), až když se stránka úplně načte, za chvíli? (Že bychom posunuli spuštění doplňku o pár vteřin ještě třeba...)

kaha0 commented 2 years ago

Zavolat to později jsem zkoušel, mam pocit že když se zaloguju do facebooku a dostanu tu variantu která vrací null, tak vždycky vrací null. Napadlo mě jestli by to nešlo dělat bez šiboletu a kontrolovat každej element na přítomnost všech zakázaných stringů ("Sponsored", "Sponsorisé", "Sponzorováno", ...). To by bylo víc výpočetně náročný ale zase by se ušetřily všechny ty volání setTimeoutUntilTrue...