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>
A bejegyzés trackback címe:
Trackbackek, pingbackek:
Trackback: Adblock Updater Operához 2010.07.25. 07:28:34
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.
Zsüi_ 2010.07.24. 19:34:19
penge™ · http://www.thevenusproject.com/ 2010.07.24. 21:36:37
Hogy ez valós időben, restart nélkül megoldható lenne-e, az már kérdéses.
Ráadásul másik fájl sem kéne, mert JavaScripttel össze tudná hasonlítani a két fájl konzisztenciáját és hozzá tudná esetleg venni még a szerveren lévő egy korábbi verzióét. Aztán
1: Ami a korábbi verzióban volt, de a jelenlegiben nincs azt kivenné a kliensoldali fájlból.
2: Ami a korábbi verzióban és a jelenlegiben sincs, azt meghagyná, mivel az értelemszerűen saját bejegyzés.
3: Az új bejegyzésekkel frissítené a meglévőt.
Majd végrehajtana egy második ellenőrzést, hogy a saját bejegyzések a szerveren lévő bejegyzésekkel nem-e fedik egymást és beállítástól (szerveroldali, vagy kliensoldali legyen priorizálva) függően járna el.
Mivel nincs semmilyen sorbarendezés az urlfilterben, így automatikusan alulra vagy felülre pakolhatná a saját bejegyzéseket, hogy jól elkülönüljenek. De lehetne választani akár ABC sorrendet is és egy harmadik ellenőrzőfájl közbeiktatásával akár egy komplexebb dátum szerinti sorbarendezést is.
Viszont a legegyszerűbb szerintem az lenne, ha végre normálisan megcsinálnák és lenne fehérlista. De jelenleg még a KIOSK módban használatos fehérlista (vagyis a "priorize excludelist") is bugos 10.5x-től.
Így viszont nem lesz Opera a webterminálokon. :D
A másik: Ha valós időben hozzá lehet adni Operán belül, akkor miért kell restartolgatni? Ugyanez vonatkozik a többi ini-re is (azok kivételével, amiből többet létre lehet hozni és ezáltal trükközni oda-vissza váltásokkal).
Ha megváltoztatom a Target Destination-t, vagy beállítok állandó Quirks/Standards módot egy adott oldalhoz az override.ini-ben, akkor miért kell újraindítanom, mikor a böngésző képes rá, hogy valós időben írja a fájlt (oldalspecifikus beállítások)? Igazán lehetne egy reload parancs hozzá, mint a skinekhez, vagy a CSS-hez. (Valamint hozzáadhatnák az összes operaprefs-es beállítást, de ez már egy másik történet).
penge™ · http://www.thevenusproject.com/ 2010.07.24. 21:38:15
Zsüi_ 2010.07.24. 22:16:39
Teddy Beer 2010.07.24. 22:51:09
Zsüi_ 2010.07.24. 22:54:00
HelloWorld 2010.07.24. 23:03:17
Mondjuk natív kódra át lehetne írni a progit, hogy ne kelljen már .net hozzá.
Baldric2 2010.07.24. 23:15:30
Nameless® · http://dirtywindows.hu/ 2010.07.25. 00:23:25
ytg 2010.07.25. 08:59:03
knorbert 2010.07.25. 11:25:54
itt kezd viccessé válni az alábbi érvelés az Opera mellett: azért nincsenek hozzá pluginok, mert szinte minden alapból be van építve, külön semmit sem kell futtatni. Értem én, hogy csak 5-600k memóriát foglal, de az elv... Főleg, hogy van beépített reklámblokkoló, akkor ez csak azért fut folyamatosan, hogy majd egyszer x naponta elindítsa a frissítést? Akkor inkább írja be magát a windows feladatütemezőjébe mint ezernyi más program, és akkor majd a windows elindítja ha kell, és akkor fog csak futni, csak akkor. A másik, ami vicces, hogy ez a folyamatosan futó program nem tudja megoldani, hogy ne lecserélje, hanem csak update-elje, összefésülje a listákat...
Ja, és a dotNet megoldás is ökörség...
penge™ · http://www.thevenusproject.com/ 2010.07.25. 12:15:31
Én már tényleg blokkolom a reklámokat, mert idegesítenek, de elismerem, hogy a tartalomszolgáltató/weboldal ebből él. Tehát nem várom el, hogy az etikátlan cselekedetem miatt valaki saját pénzből szervert üzemeltessen, ami majd frissíti nekem és rajtam kívül több százezer felhasználónak a listáját.
Ez az Opera álláspontja is. A lehetőség megvan, hogy blokkolj, de ne várd már el, hogy még saját szervert is üzemeltessenek ehhez az erősen vitatott, illegalitás határát súroló tevékenységhez. Nekik kell felelniük a bíróságon, ha valami Rupert Murdoch típusú állat bepereli őket, nem a felhasználóknak.
A Mozilla szerinted miért nem építi be gyárilag? A többi böngészőgyártó szerinted miért implementál (többek között) addon API-t? Azért, mert nekik polkorrektnek kell maradni. Egy third-party fejlesztőt nehezebb utolérni. Ezért van az, hogy az IE8-ban is üres a reklámszűrő, holott olyan fejlett XML API van hozzá, hogy RSS elven frissülhetne a listája. Operában is ezért üres gyárilag a reklámblokkoló. Mikor csináltak hozzá GUI-t, akkor még Adblock Plus sehol nem volt, a legtöbben sima Adblock-ot használtak frissítés nélkül. Utána jelent meg a Filterset G. és azt összemosták az Adblock Plus-szal. Majd végül lett Element Hider is.
Opera 7.5-től lehetett filter.ini-vel blokkolni, e köré írtak egy GUI-t a 9-esben. Azóta nem foglalkoztak vele.
Most Mark Gillespie írt egyet, de mivel a fejlettebb változatát, ami több profilt kezel pénzért adja, így értelemszerűen referenciából tette mindezt, nem pedig azért, mert annyira szívén viseli a reklámblokkolók sorsát. Ő tud programozni és ami eddig nem volt megcsinálta. Ha tudna C++-ban is programozni, akkor valószínűleg abban írta volna meg, de bonyolultabb nyelv, mint a .NET
Beírhatná magát a feladatütemezőbe is, ahogy te is megteheted ugyanezt, hogy fusson 10 percig és álljon le, majd 1 hét múlva megint.
A lecserélést már fentebb leírtuk, nem a program nem tudja megoldani, hanem az Opera nem tudja olvasni a fájlban KÜLSŐLEG végzett módosításokat a következő újraindításig.
Ahhoz meg egyéni hash-t kéne generálnia a szervernek minden kliens (ergo, mivel az IP megoldhatatlan, így regisztrációhoz lenne kötve) minden egyes saját bejegyzéséhez, hogy ez működjön, mert különben a szerveren lévő fájlok összes változásával össze kéne egyeztetni a kliensoldali fájlt, hogy
1: Ne csapjon ki olyan bejegyzést, amit te hoztál létre.
2: Ne hozzon vissza olyan bejegyzést, amit direkt töröltél, mert problémát okozott valamelyik oldalon.
3: Ne írjon felül egy saját erősebb vagy gyengébb szűrést a gyárival, ha a kettő részben fedi egymást, mert lehet, hogy nem véletlenül hoztad létre.
Nameless® · http://dirtywindows.hu/ 2010.07.25. 12:21:57
Megírná Unite alkalmazásába, az menne minden Operába, és ha Online vagy akkor bármikor frissülhetne.
penge™ · http://www.thevenusproject.com/ 2010.07.25. 12:31:20
Így ha olyanokat futtatsz, mint UJS Manager, amikkel nem akarsz megosztani semmit, csak te magad használni, akkor nem üzemel szerverként a nap 24 órájában (vagy amíg fut az Opera).
Baldric2 2010.07.25. 12:53:27
penge™ · http://www.thevenusproject.com/ 2010.07.25. 13:08:52
És persze olyanok is vannak, akik nem piszkítják be a kezüket holmi reklámblokkolással. :D
Vagy csak nem hallottak még a csillagról és tényleg heteken át tartó tortúra, míg mindent leblokkolnak.
Amúgy tényleg hülyeség.
Lehet, hogy többet nyersz az oldalbetöltődésen azért, mert nincsenek reklámok, mint amit veszítesz azzal, amennyit lassít, de lassít. Ráadásul nem tudod miket blokkol. Lehet, hogy egy oldal amiatt igénytelen, amiatt hiányoznak olyan elemek, amiknek a létezéséről nem is tudsz (például keresődoboz, vagy háttér, vagy akármi), mert beleesett a szűrésbe.
Plusz mivel elég kevés magyar van közöttük, így nem is látják át az egész webet.
Például Adblock Plus mellett még blokkolnom kell a magyar oldalak 90%-án.
penge™ · http://www.thevenusproject.com/ 2010.07.25. 13:28:15
Zsüi_ 2010.07.25. 13:35:10
Nameless® · http://dirtywindows.hu/ 2010.07.25. 15:24:00
noob.hu/2010/07/25/nah.PNG
Zsüi_ 2010.07.25. 23:18:18
Ómájgád 2010.07.25. 23:27:48
penge™ · http://www.thevenusproject.com/ 2010.07.25. 23:39:58
Tudtommal magyar fejlesztő még nem írt Hello World-öt sem Unite-ban.
@Ómájgád: Mi az akadálya, hogy bárki, aki ért a CSS-hez írjon egy olyan userCSS-t, ami ugyanazt csinálja, mint a reader?
Mondjuk az Opera nem támogat olyanokat, mint article element és hasonlók (lásd: beta.html5test.com/ ), de azon kívül például a két "High Contrast" gyári userCSS is egész jó olvashatóságot biztosít a legtöbb hírportálon.
Baldric2 2010.07.26. 00:06:09
Ómájgád 2010.07.26. 11:03:18
@penge™: van is már ilyen :), lásd fentebb, csak a Safari-ban benne van fícsörként, nem kell buherálni.
Szerintetek meg lehet oldani valahogy CSS-ben, hogy el lehessen menteni a generált, lecsupaszított oldalt mht-be?
penge™ · http://www.thevenusproject.com/ 2010.07.26. 11:53:39
CSS-vel nem lehet az oldalt lecsupaszítani. Csak te nem látod azokat a DIV-eket, amik a { display: none !important } alá esnek, de a forráskódban még benne maradnak.
A CSS csak stíluslap, tehát a forráskódot nem tudja módosítani, csak manipulálni a kinézetét, amit látsz a szerzői nézetben.