Magyar Opera

Címkék » reklámtiltás


Adblock Plus Operában - harmadik felvonás

Ez az írás nem lesz olyan hosszú, mint a korábbiak és részben a 11.10 által bevezetett display:none módosítás kapcsán jött létre.

Akik követték az eseményeket, tudják miről van szó, akik nem, azoknak pár mondatban: Az Opera a kompatibilitás növelése érdekében a 11.10-ben megváltoztatta a működését a CSS display tulajdonság esetében.

Az ajánlás nem tér ki minden részletre, mint például arra, hogy be kell-e tölteni az elrejtett tartalmakat addig, amíg azok meg nem jelennek az oldalon. A többi böngésző fejlesztői úgy gondolták, hogy igen. Ez azt okozta az évek során, hogy sokan kényelemből, sokan JS tudás hiányában olyan esetekben alkalmazták a display:none szabályt, amikor nem kellett volna.

A probléma inkább esztétikai jelentőségű volt, vagyis ilyenkor az Operában, az egyetlen olyan böngészőben, ami nem töltötte be a display:none tulajdonsággal ellátott tartalmakat, elkezdtek villogni, mivel akkor töltötte be, amikor az adott eseményre (például mouseover) megváltozott az elem display tulajdonsága.

A két legszembetűnőbb példája, hogy mikor egy menü fölé vittük az egeret az vagy 1-2 másodperc késéssel jelenítette meg az animációt az első alkalommal, illetve áttűnős diavetítést tartalmazó oldalakon az első alkalommal a képrenderelést (felülről lefelé) láttuk a képváltáshoz társított effektus helyett.

Az előnye viszont a csökkent adatforgalom és ennél fogva csökkent betöltési időn túl az volt, hogy CSS szabályokkal el lehetett rejteni a reklámokat, így bizonyos esetekben sokkal egyszerűbb volt a dolgunk, habár a megbízható tartalomblokkolás továbbra is az urlfilter.ini maradt.

Ezt a lehetőséget kezdetben (8.x verziók körül) még csak UserCSS-vel lehetett kihasználni, utána Lex1 készített egy hibrid megoldást, végül pedig a Local Storage bevezetésével megszületett a NoAds, először userJS, később kiegészítő formájában.

Azóta megjelent a sokkal hatékonyabb URL Filter API is és az arra épülő megoldások, mint az Opera Adblock De sajnos az URL Filter korlátai megmaradtak, vagyis a RegExp hiánya és a element alapú blokkolás hiánya.

Viszont itt jön képbe Dither, aki elkészítette a NoAds Advanced 1.2.1b-t, ami nem pótolja az elveszett display:none-t, de az URL Filter API-nak köszönhetően legalább egy részét visszakapjuk a korábbi lehetőségeinknek.

Változások, a NoAds óta:

  • URL Filter API támogatás a hatékonyabb Adblock Filterlista integrációért.
  • widgets storage-nak köszönhetően exportálási lehetőség
  • Átdolgozott beállítások
  • MagicFunction/MagicVariable alapú blokkolás

MagicFunction/MagicVariable példák:

##var GTracking
##var NO_msnads
##function poker_pp
##function print_download_ads
##function trackEvent 
##function trackPageView
##function trackPageViewCustom
##function wmx_counter
##function wmx_track
##function wtslog

Adblock Plus Operában - második felvonás

Frissítés: ap készített egy magyarítást, innen letölteted magyar nyelven a scriptet.

Korábban már írtam a Lex1-féle Adblock+ megoldásról, amely hibrid UserCSS és UserJS alapon működött, de sajnos egyik betegsége a külső .exe volt, amely bár csak a MIME társításban (text/adblock) játszott szerepet, de így a Linux és a Mac kiesett és mégiscsak egy futtatható állományról van szó.

Ennek most vége. Már a 10.6x és annál újabb Operák részére, amelyekben már van Persistent Script Storage.

Lex1 3 funkciót ötvözve létrehozta a NoAds nevű userJS-t.

Block-external, Adblock+ egyben, amely képes importálni az Adblock Plus filterlistákat és megbirkózik a RegExppel, ezáltal teljes funkcionalitású fehér listát kapunk.

Globális blokkolási szabályrendszer:

Oldalspecifikus blokkolási szabályrendszer:

Nem utolsó sorban a működése is egyszerűbb lett. A userJS telepítés mellé mindössze két beállítást kell elvégeznünk opera:config-ban, az egyik, hogy 500-ra állítjuk a Script Storage-t itt: opera:config#PersistentStorage|UserJSStorageQuota, valamint engedélyezzük a scriptek futását HTTPS kapcsolatokon. Ez utóbbi csak az Adblock Plus listák frissítéséhez kell (meg ha HTTPS-ről jönnek a hirdetések).

Gombok (ha jobban szereted, mint a billentyűparancsokat. Csinálhatsz belőlük saját menüt is):

NoAds preferences Block Ads Unblock

Billentyűparancsok:

Tulajdonságok - Alt+Shift+P

  • Reklámok blokkolása - Alt+Shift+A
  • Elemek blokkolása - Alt+Shift+B
  • Visszavonás - Alt+Shift+U
  • Utolsó blokkolás visszavonása - Alt+Shift+L

Azonos class-szal rendelkező elemek blokkolása/unblokkolása - Shift+Klikk

Megjegyzés: Ennek használata mellett nyugodtan kikapcsolhatod a meglévő block-external scriptedet és az Adblock+.css-t és Adblock+.js-t is, mert a NoAds mindkettőt magába foglalja.

Adblock Updater Operához

Mark Gillespie írt egy kis programot, ami automatikusan frissíti Operában az urlfilter.ini-t azok kedvéért, akik megszokták ezt a funkciót Firefoxban.

A szoftver futtatásához szükséges minimum a .NET Framework 2.0 megléte a Windows-on.

Fontos tudnivalók:

A program 7 naponta frissíti az urlfilter.ini-t és értelemszerűen felülírja az egész fájlt. Tehát ha blokkolsz manuálisan, akkor azt is. De erre is gondolt a fejlesztő. Hozz létre a gyári urlfilter.ini mellett egy urlfilter.localuser nevű fájlt és ebbe írd bele a blokkolt címeket. Ezeket a címeket frissítésnél automatikusan hozzácsatolja az urlfilter.ini-hez, így a manuálisan blokkolt listád is megmarad.

Az Adblock Plus-hoz hasonlóan az automatikus frissítéseket csak újraindítás után tudja alkalmazni, de a függőben levő frissítésekkel az Opera következő újraindításakor automatikusan frissíti az urlfilter.ini-t.

Habár a kis programnak folyamatosan futni kell, de a memóriaigénye 5-600 kilobájt körül van.

A szerveroldali script forrása:

<?php $myFile = "urlfilter.ini"; if(strlen($_POST['addition']) > 1) { $fh = fopen($myFile, 'a') or die("can't open file"); fwrite($fh, "http://"); fwrite($fh, $_POST['addition']); fwrite($fh, "\r\n"); fclose($fh); } else { echo "<script>alert('Twat Alert!');</script>"; } ?> URLFilter Submission Form <form action="<?php echo $PHP_SELF;?>"" method="post"> <LABEL for="firstname">http://</LABEL> <input type="text" name="addition" /> <input type="submit" /> </form>

Adblock Updater letöltése

Adblock Plus az Operában

Sokan hozzák fel ellenérvként, hogy az Opera beépített tartalomszűrője nem elég hatékony, amiben sajnos van némi igazság, ha a Firefoxos megoldásokhoz viszonyítjuk. A CSS alapú blokkolás viszont elég körülményes és újra kell indítani az Operát a fájlban végzett módosítások után.

A két megoldást ötvözve kínál megoldást a Lex1 által készített (sajnos csak Windows alatt elérhető) tartalomblokkoló.

Aki már ismeri az Element Hiding Helpert, az továbbugorhat, a többieknek egy rövid leírás a következő bekezdésben:

A hagyományos tartalomszűrő megoldások csak webcímek/elérési útvonalak alapján tudnak blokkolni, ezáltal csak képeket flash objektumokat és külső JavaScript, illetve iframe elemek tartalmát képesek tiltani. A CSS alapú reklámblokkolással viszont az oldalak forráskódjában található div elemek alapján is lehet szűrni, mindezt oldalspecifikusan.

Telepítés:

  1. Töltsd le az adblock_setup.zip fájlt egy tetszőleges helyre és tömörítsd ki.
    • Ha még nincs saját menüd, akkor Ctrl+F12 > Haladó > Eszköztárak > Menük alatt csinálj egy másolatot az "Opera Standard" menüből, majd válaszd ki a "Copy of Opera Standard"-ot és kattints az OK gombra. Ezután zárd be az Operát.
  2. Miután bezártad az Operát, futtasd az Adblock_setup.exe nevű fájlt. Tallózd ki az Operás profilodat és kattints az Ok gombra.
  3. Indítsd el az Operát, kapcsold be a nézet sávot Shift+F12 > Eszköztárak > Nézet sáv. Itt kapcsold be Szerzői nézet legördülőmenüben az AdBlock+ nevű stíluslapot. Utána kikapcsolhatod a Nézet sávot, ha nincs szükséged rá.
  4. A kitömörített adblock_setup.zip könyvtárban találsz egy adblock.js fájlt. Ezt az alapértelmezett felhasználói JavaScript könyvtáradba kell másolni.

Ha még nincs ilyened, akkor a Ctrl+F12 > Haladó > Tartalom > JavaScript beállítások > Felhasználói JavaScript fájlok helyen könnyedén létrehozhatod a könyvtárat.

Ezzel véget is ért a beállítás, mostantól bármely oldal bármely elemét blokkolhatod a jobb klikkes menüből az Adblock+ > Block Element paranccsal.

Az Unblock Latest Element paranccsal visszavonhatod az utoljára blokkolt elemet, az Accept changes and reload stylesheets paranccsal pedig a kívánt elemek blokkolása után (miután láttad, hogy néz ki az oldal nélkülük) véglegesítheted a blokkolást.

Ha a menütől jobban kedveled a gombokat, akkor csak húzd valamelyik eszköztárra az Adblock+ gombot.

Tipp: Az Accept changes and reload stylesheets az összes stíluslapot újratölti, így böngésző újraindítás nélkül jóváhagyhatsz stíluslapokban végzett manuális módosításokat. Sajnos stíluslap hozzáadásakor és meglévő stíluslap törlésekor még mindig újra kell indítani.

Tartalomszűrő fájl Operához v1.0

Itt a Magyar Opera blogon is több cikk született már a tartalomszűrésről, hétköznapibb nevén reklámblokkolásról. Az Opera ugyanis több ilyen képességgel is rendelkezik ezek közül a legismertebb az URL alapú tiltólista, azaz az urlfilter.ini fájl. Bár a jobb kattintás, Tartalom letiltása... funkció egyszerűen és jól működik, azért vannak árnyoldalai, főleg kényelmi szempontból. Ha nem mentjük el a fájlt, akkor minden egyes telepítést követően kénytelenek vagyunk újra és újra létrehozni a tiltólistát. A rivális böngészők kínálnak már olyan megoldást, amikor a számos elemet tartalmazó, előre elkészített fájlt csak le kell töltenünk, és már nincs is gondunk a reklámokra. Az Operához is találhatunk hasonlót, de azok nagy része nem magyar, ami esetleg mégis, azok is lehetnek ritkán frissítve, vagy éppen felesleges sorokkal telítettek.

Itt van tehát az idő, hogy - mint az Opera "hivatalos magyar képviselete" - kezünkbe vegyük az ügyet, és egy saját listát állítsunk össze, amit aztán rendszeresen frissítünk a magunk és az olvasók ötletei alapján. Így egy helyről lehet elérni a közös listát, ami megkönnyíti a reklámszűrés beállítását a friss telepítések esetén, vagy a kevésbé hozzáértők számára.

Természetesen te is ajánlhatsz új elemeket, a feltételek:

  1. Elsősorban magyar oldalakat várunk, de természetesen mehetnek a külföldiek is
  2. Ajánlhatsz konkrét szűrő-karakterláncot vagy reklámmentesíteni kívánt oldalt
  3. A listának minél rövidebbnek kell lennie, hogy ne lassítsa a böngészőt, tehát a szűrő legyen minél általánosabb
  4. Lehetőleg a link ne csak betűket tartalmazzon, hanem elválasztókat is (*ad* nem jó, helyette */ad/*)
  5. A statisztikát készítő linkeket se tiltsuk le
  6. Természetesen egyetlen hasznos tartalmat se blokkoljunk

A fentiek alapján az alábbiakat várjuk:

  1. URL-sztring adott reklám(ok) tiltásához
  2. Honlapnév, ahonnan a zavaró elemeket tiltani akarjuk
  3. Honlapnév, ahol a hivatalos lista hasznos és szükséges elemeket is tilt

Kérem, hogy a hozzászólásban a sorszámmal emeljétek ki, hogy melyik esetről nyilatkoztok is éppen. A 3. esetben jelezzétek, hogy mi hiányzik pontosan (ha nem volna nyilvánvaló).

A reklámszűrő aktiválása:

  1. Töltsd le a lenti linkről a szűrőfájlt (jobbkattintás, Mentés másként...)
  2. A címsorból nyisd meg az opera:about oldalt
  3. Az Elérési utaknál jegyezd fel az Opera mappája könyvtár helyét
  4. Zárd be az Operát!
  5. Másold be a letöltött urlfilter.ini fájlt a fenti mappába
  6. Indítsd el újra az Operát!
Ha a fentiekkel megvagy, akkor elvileg már megy a szűrés. Egyes, a gyorsítótárból betöltött honlapok esetén szükség lehet az oldal újratöltésére is, hogy a változások érvényre jussanak!

Az aktuális URL filter fájl letöltése: (jobb kattintás, Mentés másként...)