Closed e3rd closed 8 months ago
Tak mě napadlo, nestačil by k určení jazyka třeba atribut lang elementu HTML?
WOW, to je geniální, to bude VONO! Já tam mám lang="en" :)
Předělal jsem to na ten tvůj html lang – zkusíš aktuální master? Já teď nemám žádný reklamy, abych to vyzkoušel... :D Jestli to pude, s dovolením zavřu tvůj #8 , protože celá část s shibolettem je fuč. @kaha0
Jo, funguje perfektně, všechny sponzorovaný posty jsou skrytý :)
Tak se uvidíme u další změny fb
Zas prošel jeden post. Všechny ostatní sponzorovaný posty byly skrytý. Zajímavý je že jak mají většinou vedle slova "Sponzorováno" ikonku zeměkoule s popiskem "Veřejný", tak tenhle měl Ozubený kolečko a "Sdíleno s: Vlastní", tak mě napadlo jestli to nemůže mít vliv.
EDIT: neni to tim, viděl jsem jinej post "Sdíleno s: Vlastní" a byl skrytej.
Darebáci! Musíš asi přežít aspoň do úterka, já to už nestihnu :(
V pohodě, přežiju, stačí až budeš mít čas. Píšu to sem jenom abys moh vylepšovat tenhle projekt a udržovat ho up-to-date.
Jinak z toho co jsem vypozoroval to zatim vypadá, že všechny "Sponzorováno" nejsou skrytý, všechny "Sponzorováno, platí za to" i "Návrhy pro vás" jsou skrytý.
Tys přišel na to, že se to kreje za flex box a opravils, jo? Hustý!
Jop :) Teď mi skrývá všechny sponzorovaný, tak zase naviděnou příště.
Tak už to facebook zase změnil. Podařilo se mi upravit kód tak aby blokoval i ty nový varianty, ale musel jsem k tomu použít element.computedStyleMap, což je něco co podporuje jenom Chromium :( Tak co teď?
Hahá! Já to tu nezavřu! :D Tak sem postni zase ukázku tý varianty a třeba budu mít příští tejden taky čas se na tu vopičárnu podívat :D Vo element.computedStyleMap jsem teda jaktěživ neslyšel, teď to čtu a hustý.
Ok ok, ale klidně si dej na čas. Já to mam lokálně upravený a funguje mi to, a ostatní uživatelé asi tuhle variantu nedostávají (nebo si nestěžujou).
Vypadá to následovně: v postu je SPAN kterej má style="display: flex;" (v kódu nazývám "topflexspan"). Ten má jako potomky další SPANy který obsahujou písmenka stringu "Sponzorováno" v náhodném pořadí, seřazený pomocí style="order: pořadí", a taky další písmena skrytý pomocí style="top: 3em" a style="display: none" (jako už jsme viděli v dřívější variantě, ale tady to neni přímo v node.style, je to computed, viz screenshot).
Tady je moje řešení: launcher.js.txt
Hustý! Tak jsem si to prohlíd a pokorně nebudu dělat nic, než to začne vadit někomu dalšímu (jako třeba mně), protože to vypadá přesně na tu krásnou věc, s kterou můžu strávit celý vodpoledne :D . Třeba se mezitím API standardizuje a bude to fungovat i ve FF či tak.
Plně s tebou souhlasím a podporuji tvojí pozici, computed styles klidně neřeš.
Nicméně dnes ráno vznikl novej problém: facebook se zase změnil. Zcela zmizelo "data-pagelet", takže neni na co zavolat check_garbage. Teď už lze posty na zdi identifikovat jen tím, že jejich rodič je element <div role="feed">
, viz celej muj feed zde: feed.txt
Jinými slovy teď zas vidim všechny sponzorovaný posty, ale asi by to mělo jít snadno upravit, tak se na to zkusim podívat sám a když se mi to podaří vyřešit tak zase založim pull request.
Co ty chudáku furt máš práce s tim! Seš jejich pokusnej králík! A vždycky když napíšu tady, tak ti to změněj tam! všim sis?
Hotovo, ta verze v aktuálním pull requestu mi funguje. Zkus jestli ti taky funguje ve FF.
Jo, všim jsem si... taky mě napadlo jestli fb nesleduje projekty, který se snaží blokovat reklamy, a neadaptuje se jim...
Asi by to mohl sledovat, věřím ale, že tenhle projekt nemá velkou publicitu (kromě spammerů, kteří našli mail na stránkách Add-onu Mozilly, ti mě zbožňujou). A mně se žádné psí kusy nedělají.
Oni ani nemusí sledovat přímo tenhle tvuj konkrétní projekt, určitě jich existuje vícero a tipnul bych si že fungujou na stejnym principu, takže když fb obejde jeden "adblock" tak tim rozbije i velkou část jiných. A taky vždycky když fb něco změní tak dělají postupnej rollout, asi je pro ně těžký změnit něco všem uživatelům najednou, takže i to obcházení "adblocků" uživatelé dostávají ve vlnách... možná.
Jenže ty seš pořád na mušce s těma divnejma zrůdnostma, kdežto já nepotřeboval změnu už celé měsíce – až teď jsem začal ten tvůj kód, co máš skoro měsíc. (Jako jo, třeba to tak nějak je, dávalo by to větší smysl, než že to dělají úplně náhodně.)
Další změna: doteď jsem písmena stringu "Sponzorováno" detekoval tim, že měly style="order: x". Ale teď se začínají objevovat posty, který mají i to "order: x" schovaný tim že je to computed, stejně jako mají ty falešný, obfuskující písmena schovaný pomocí "top: 3em" a "display: none". V inkriminovaných postech mají písmena formu už jen <div class="___">
. Takže by se to dalo vyřešit pomocí computedStyleMap, ale jen v chromiu, ve firefoxu by takový posty vždycky procházely. Co teď?
>:)
Hustý! Tohle se zvládnu zamyslet nejdřív příští tejden :( :D je to teda hustý!
letter.top == '0.013px' :D
Už je zase vidět všechno. Celej post na zdi je "schovanej" do malýho virtuálního SPANu, viz screenshot vlevo nahoře. Takže tomu spanu se správně nastaví style.opacity i height atd, ale na postu se to neprojeví. Řešením by bylo nenastavovat style zkoumanému nodu, ale jeho potomkovi. Ale nedokážu říct, jestli by to tahle změna nerozbila v situaci, kdy někdo stále ještě dostává tu starou variantu bez tohohle SPANu...
Dneska mi fb nedává žádné reklamy, takže vůbec nedovedu určit :D
Tak až do teď mi vše fungovalo úplně perfektně. Ale právě se objevila úplně nová věc: ad.txt
:DD Co to furt zkoušej, darebáci! Kdyby místo toho radši zlepšovali UI, nebo dělali data uživatelů použitelnější!
Mohl bys prosím updatenout ten addon na addons.mozilla.org? Současná verze mi neblokuje nic a firefox umožňuje to "Load unpacked addon" jenom dočasně, do příštího spuštění, takže bych musel při každym spuštění FF manuálě načítat addon z disku. Díky :)
Tak jsem se na to ještě díval, a to co řeší muj pull request #20 hypoteticky podporuje i chromium... Firefox má Element.openOrClosedShadowRoot
zatímco chromium má chrome.dom.openOrClosedShadowRoot(element)
. Jenže když jsem zkusil to rozšíření upravit tak, aby pracovalo i v chromiu, browser vyhodil TypeError že funkce openOrClosedShadowRoot bere jen HTMLElement, a náš element <use> je SVGElement. Takže v chromiu to nebude fungovat, leda až to eventuálně nějak opraví. Píšu to sem jenom jako dokumentační komentář :)
Na mě to v Chromu zatim nezkouší, tak netrpim :D
Tak jsem tu zas. Facebook odteď arbitrárně zanořuje a seskupuje posty do divů, viz screenshot. Zkusim se na to sám podívat.
(Já jsem to možná vyřešil před pár týdny, ale testoval a nezveřejnil, zkusím dneska)
Tenhle můj aktuální commit to náhodou řeší?
Zatím nedokážu posoudit, facebook mi tu zanořovanou variantu dává jen zřídka. Jen chci poznamenat že český text pro FeedHeader je skutečně "Příspěvku v kanálu vybraných příspěvků" a ne "Příspěvky..." :)
Tak jsem se poprvé zasoustředil na ten tvůj post o zanořování; díky za barevné značení. To je teda děsivé, u mě je <div class="x1lliihq">
prostě označení postu. Máme šanci, že ta aktuální verze bude fungovat i na zanořované, pokud se ze serveru divy načítají postupně.
Kdyžtak zas otevři :) A přidal jsem debug mód, aby bylo zřejmé, co doplňkem prochází za HTML elementy.
Máme různé varianty, jak mohou data-pagelet vypadat