Magyar Opera

Címkék » userjs


Kiegészítő ajánló: célkeresztben a haladó felhasználók!

Ahogy már a címben is jeleztem, most olyan kiterjesztések kerülnek a középpontba, melyek elsősorban rutinos Operásoknak íródtak.

Az Opera 11 megjelenésével egyre inkább háttérbe szorultak a különböző felhasználói JavaScriptek - azok jórészt kiválhatóak lettek a böngésző kiegészítők révén -, azonban az UserScripts.org népszerűsége azóta is töretlen. A Violentmonkey névre keresztelt kiegészítő arra hivatott, hogy az előbbi oldalon fellelhető UserJS fájlokat a lehető legegyszerűbben kezelhessük. Az alapötletet valószínűleg az UJS Manager Opera Unite alkalmazás adta, így aki már azt ismeri, az most nagy meglepetésekre ne számítson. 

opera userjs kezelő.jpg

A fenti képen jól láthatóak a Violentmonkey főbb szolgáltatásai (frissítés, szerkesztés, importálás és exportálás), ezenfelül még érdemes kiemelni a Greasemonkey funkciók támogatását.

A másik kiegészítő is gera2ld keze munkáját dicséri, ebből kifolyólag hasonló megjelenéssel bír. A Stylish for Opera az UserStyles.org weboldalon helyet kapó stíluslapok alkalmazásában segédkezik. A funkciók tárháza nagy meghökkentést nem fog okozni, a részletes leírást a hivatalos weblapon tekinthetjük meg.

opera usercss kezelő.jpeg

A jelek szerint gera2ld komolyan veszi a két kiterjesztés fejlesztését, így előbbi már az 1.1.2-es verziónál tart, míg utóbbi az 1.2-g jelöléssel büszkélkedhet. A felhasználók véleményei összességében pozitívnak mondhatóak, ami jól látható az értékelésben is. Bár alapjában véve most tényleg speciális rétegigények kielégítéséről van szó, viszont a kellemesnek mondható használhatóság okán még haladó ismeretek nélkül is érdemes lehet egy próbát tenni, aki pedig egy kiemelkedően jó UserCSS vagy UserJS fájlra bukkant, az bátran ragadjon billentyűzetet!

Dialógusmentes UserJS HTTPS-en és kikapcsolható domain szürkítés

A címben szereplő lehetőségek állnak rendelkezésünkre a következő Dither-féle patch használatával. Ezúttal nem kapunk futtatható állományt, csak egy Perl scriptet, amit legegyszerűbben úgy tudunk futtatni, hogy a XaNoCTA patch azonos nevű (xa-nocta.pl) fájlját lecseréljük a postban szereplőre.

Mikor engedélyezzük a UserJS-ek futását HTTPS kapcsolatokon, az Opera hülyebiztos okokból minden indítást követően, mikor meglátogatjuk az első oldalt HTTPS kapcsolaton keresztül, feldob egy dialógust, amelyben megkérdezi, hogy biztosan akarjuk-e engedélyezni. Ez hosszútávon zavaró lehet. A patch erre is megoldást nyújt.

Hogy miért jó ez nekünk? Mert nem biztos, hogy a számunkra szükséges funkcionalitás elérhető kiegészítő formában, vagy nem akarunk kiegészítőt használni olyasmire, amire egy pár soros UserJS is bőven elég. A HTTPS kapcsolat viszont egyre terjed, már a legnépszerűbb oldalakon, mint Facebook, Twitter, Google is lehetőségünk van ezt a némileg lassabb, de biztonságosabb módot használni. Ennek persze leginkább nyílt hálózatokon, mint WiFi, több gépes hálózatok van lényegi értelme, ahol bárki monitorozhatja a hálózati forgalmat.

A kikapcsolható domain kiemelésnek leginkább a konzervatívabb felhasználók örülhetnek, akik egyrészt maguktól is el tudják dönteni, hogy egy URL-ben melyik rész a domain és kiszűrni az adathalász trükköket, valamint zavarja őket a még skin.ini-vel is megváltoztathatatlan, halványabb szürke szín, amely az URL többi részének a színe.

A XaNoCTA-féle Flash-patch-hez különösebb kommentárt nem fűzök, mert ugyanaz a funkciója, mint a már korábban postolt UserJS-nek, előnye azon túl, hogy tisztább megoldás (értsd: jobb kiiktatni a szükségtelen dolgot, mint automatizálni valamit, amire eleve nincs szükségünk, értve ez alatt a plusz kattintást, amit a UserJS végzett el helyettünk) és, hogy mindenhol működik. A HTTPS korlátok a mostani patch segítségével eltűnnek ugyan, de ha RSS-ben jön le egy post beágyazott videóval, akkor ott ugyanúgy el kell végeznünk a plusz klikkelést. Valamint a UserJS-es megoldás (mint minden userJS) kódot injektál a céloldal(ak)ba, ami főként globális userJS-eknél (amik minden oldalon működnek, nem egy oldalt bővítenek specifikus funkciókkal) előidézhet oldalmegjelenítési és működésbeli problémákat.

Hátránya viszont, hogy minden frissítéskor el kell végezni, mivel az opera.dll hordozza az Opera aktuális verzióját. Ez főként azon felhasználóknál jelent kellemetlenséget, akik mindig az aktuális előzetest használják, de valamit valamiért.

Mivel a most következő műveletsor valószínűleg nem lesz magától értetődő mindenki számára, ezért egy kis bevezetés következik, de ne riasszon senkit el, nem olyan bonyolult, mint amennyire hosszú ez a post. Ettől függetlenül erősen javasolt, hogy csak azok próbálják ki, akik rendelkeznek némi alapismerettel az általuk futtatott operációs rendszert illetően.

A patch úgy működik, hogy lecserél a célfájlban, esetünkben az opera.dll-ben egy sort egy másikra.

Lépések:

  1. Töltsük le ezt a fájlt
  2. Bontsuk ki egy tetszőleges, user jogosultságú helyre.
  3. Töltsük le ezt a patchet
  4. A lementett .txt fájlt nevezzük át xa-nocta.pl-re
  5. Írjuk vele felül a régi xa-nocta.pl nevű fájlt.
  6. Másoljuk át az opera.dll-t abba a mappába, ahol a xa-nocta.pl található
  7. Futtassuk a xa-nocta.bat nevű fájlt duplaklikkel.
  8. Ha kiírta mindenhol, hogy SUCCESS, akkor sikerült a művelet
  9. Az új opera.dll-lel írjuk felül a régit. Ha bármi problémát tapasztalunk az opera.dll_original nevű fájlt visszanevezve opera.dll-re és visszamásolva minden a régi.

Flash objektumokhoz kapcsolódó No-Click-To-Activate, amely megkímél minket a továbbiakban a felettébb idegesítő "Kattintson az eszköz aktiválásához" plusz kattintásoktól, amelyet az Opera Software már csak azért sem vehet ki hivatalosan, mert az Eolas nevű patenttroll egyesület megbüntetné őket komoly összegekre.

A patch 4 különböző módosítást is magába foglal:

  • No-Click-To-Activate
  • Natív mp3 lejátszás HTML5 alapokon (ehhez az itteni zipben lévő gstreamer könyvtárban lévő fájlok szükségesek, csak az exét nem kell futtatni.)
  • URL többi részének kiszürkítésének kikapcsolása
  • Ha engedélyezzük a UserJS futtatást HTTPS kapcsolatokon, akkor nem kapunk megerősítő dialógust minden alkalommal, mikor meglátogatunk egy HTTPS oldalt böngésző indítás után.

Ha valamelyik nem kell, akkor töröljük ki azt a részt a két kapcsos zárójellel ({},) együtt.

Tehát ha szeretjük például az URL többi részének kiszürkítését akkor szedjük ki ezt a részt:
                        #halfgray addresstext patch by Nibiru
                        {
                                desc =>   'Halfgray address to black Opera 11.x',
                                assert => undef,
                                test =>   qr/\xD9.{4}\x67\xD9\xBC\x24.\x00\x00\x00/,
                                match =>  qr/\xDD(.{4})\x67\xD9\xBC\x24(.)\x00\x00\x00/,
                                replace => '"\xD9$1\x67\xD9\xBC\x24$2\x00\x00\x00"'
                        },

Vagyis a PasteBin-en lévő forrásban a 26-tól 33-ik sorig mindent.

Website Monitor / Update Scanner alternatíva Operában

A most bemutatott userJS jelenleg még béta állapotban van és csak azért teszem közzé, mert a fejlesztője, Baldric, időhiányban nem tudja folytatni.

De előbb egy kis magyarázat, mire is jó ez az egész. Az RSS-t remélhetőleg mindenki ismeri. Egy nagyon jó idő, sávszélesség és idegrendszer kímélő megoldás, amivel egy központi kliensben, például az Opera beépített RSS olvasójában megkapjuk a híreket, amikre feliratkoztunk egy kattintással.

Sajnos napjainkban nem örvend túl nagy elterjedtségnek, aminek az ismertség hiánya lehet az oka, elvégre egy forradalmi megoldásról van szó.

Éppen emiatt elég kevés helyen alkalmazzák és ahol alkalmazzák ott is általában csak egyszerűen a hírekre, esetleg még a kommentekre (mint itt), de nem használják ki a specifikációban rejlő lehetőségeket.

Erre még rátett egy lapáttal az Internet Explorer, Firefox és Safari részleges implementációja, amivel a könyvjelzők szintjére degradálták le ezt az XML lehetőségeivel bíró szabványt. A Google nem is tartotta fontosnak az implementációt a böngészőjébe.

De mielőtt nagyon eltérnék a tárgytól, lényegében emiatt van szükség olyan megoldásokra, mint a címben szereplő két kiegészítő és mivel ezek egyike sem létezik Operára, ezért van szükség a cikk további részében bemutatott userJS-re, ami sok szempontból még fejlettebb is, mint a fenti két megoldás, habár felhasználóbarátnak nem igazán mondható, de mint említettem, még csak béta.

Működése:

  • Element alapon működik. Kijelöljük azokat az elemeket, amiket figyelni akarunk (ahogy a NoAds-ban), majd kattintunk, az oldal újratöltődik és eltárolódik a domainspecifikusan a Local Storage-ban.
  • Az lap frissítésekor összehasonlítja az eltárolt tartalmat az aktuális tartalommal, ha változás van, akkor bekeretezi box-shadow használatával azt a DIV-et, amely tartalma megváltozott és hangjelzést ad, valamint, hogy Visual Tabs-szal is kompatibilis legyen, megjelenik két nagy piros felkiáltójel az oldalon, egy absolute a bal felső sarokban és egy fixed pozíciós középen.
  • Ha rávisszük a felkiáltójelekre az egeret (és azok eltűnnek) azzal eltároltuk a változást és az aktuális tartalomhoz fog innentől fogva a következő frissítés alkalmával viszonyítani. Amíg ez nem történik meg, minden egyes frissítési periódusban hangjelzést ad és kiteszi a két felkiáltójelet.
  • Változáskor automatikusan a legfelső megváltozott elemhez görgeti az oldalt.

Használata:

  • Helyezzük el a UserJS-t a userjs mappánkban.
  • Csináljunk egy billentyűparancsot, mozdulatparancsot, sajátgombot vagy könyvjelzőt, amelyik nekünk a legszimpatikusabb a következő paranccsal: Go to page, "javascript:forumAlert.on_off(); void 0"
  • A fenti paranccsal fogjuk tudni majd aktiválni a kijelölő keretet, amivel utána egérrel kiválasztjuk az oldal figyelni kívánt elemeit.
  • Miután kijelöltük a figyelni kívánt területet, két lehetőségünk van. Állítsunk be igény szerinti periodikus frissítést. Ez persze oldalfüggő. Ahol csak hetente van változás, azért felesleges nyitva tartani egy fület. Ha legközelebb meglátogatjuk és van változás, akkor jelezni fog nekünk a script.
  • Kombinálhatjuk az Opera Unite Webserver nevű alkalmazásával. Ez pörgősebb oldalaknál hasznos, mert a periodikus újratöltés az oldalt teljes egészében újraellenőrzi, tehát nagyobb a CPU használat, adatforgalom és a szerverre rótt terhelés is. A Unite segítségével pedig egy általunk (némi HTML ismeret birtokában) meghatározott méretű iframe-ben elhelyezhetjük a figyelni kívánt oldalakat. Ez esetben a mellékelt HTML fájlban kell megadni a frissítési gyakoriságot milliszekundumban.
  • Ha hibáztunk és rossz elemet jelöltünk ki, vagy már nincs rá szükségünk, akkor az opera:webstorage oldalon tudjuk törölni a domainhez tartozó rekordokat. Ugyanez törlés nélkül is működik, ha a fent említett parancsot újra kiadjuk és kijelölünk valami mást, ami felülírja a korábbit.

Unite:

  • Indítsuk el az Opera Unite-ot és a Webserver nevű alkalmazást.
  • Tallózzunk be a Webserverben egy tetszőleges könyvtárat, amiben a HTML fájl (nem a userJS!) található. Ha már van betallózott könyvtárunk, akkor értelemszerűen helyezzük el benne a HTML fájlt).
  • Nyissuk meg valamilyen szövegszerkesztővel a UserJS-t.
  • A második sort módosítsuk erről: forumAlert.domain = ''; erre: forumAlert.domain = 'http://admin.home.NEVED.operaunite.com';
  • Nyissuk meg a HTML fájlt és keressük meg a 67. sorban a self.setInterval(refresh,300000);-t
  • A 300000 ms-t (ami 5 perc) módosítsuk tetszőleges értékre. Sajnos itt csak globális frissítési értéket tudunk megadni, ami minden itt behívott oldalra érvényes lesz.
  • Nyissuk meg Webserveren keresztül a frames.html-t, majd az EDIT linkre kattintva a piros keretbe adjuk meg egymás alá a figyelni kívánt címeket.
  • Fontos (1): A figyelni kívánt címeknek ugyannnak kell lennie, amelyen a scripttel kijelöltük a figyelni kívánt elemeket. Vagyis ha a www.example.com-on tároltuk el a figyelendő elemeket és a sima example.com-ot adjuk meg, akkor nem fog jelezni. Éppen emiatt lehetőleg próbáljunk óvakodni a felesleges paraméterektől az URL mezőben.
  • Fontos (2): Az URL utolsó karaktere nem lehet # (azaz kettőskereszt). Ha ilyen van, akkor töröljük a végéről. Ha a kettőskereszt után anchor van (például #comments), akkor természetesen maradhat.
  • Miután megadtuk a kívánt oldal(aka)t, kattintsunk a SAVE linkre.
  • Fontos (3): Olyan oldalakon, ahol regisztációhoz van kötve az általunk figyelni kívánt tartalom, sajnos csak abban az esetben működik, ha figyelni kívánt oldalon az "Minden sütit elfogad" opció van bejelölve.

frames.html letöltése

UserJS telepítése

YouTube WebM

Megjegyzés: Használd inkább a YouTube WebM Plus kiegészítőt!

Frissítve!: 2011-01-22 06:35-kor

 Változások listája 0.1 → 0.2
  • Autoupdate URL lecserélve. Most már automatikusan tud frissülni.
  • @include string módosítva, hogy a YouTube többi oldalán ne legyen végtelen ciklus.
  • // @noframes hozzáadva, hogy az IE kompatibilis YouTube beágyazásnál (iframe) se legyen végtelen ciklus

A Google nemrég kukázta a H.264-et, mégis az az érzése az embernek, hogy direkt nehezítik meg a dolgát.

  • A kereső hiába van WebM-re állítva a Playlist részen minden videó Flash.
  • A saját oldalas csatornák szintén csak Flash-ben érhetők el.
  • Nem tudni mi alapján kategorizálnak, mikor bejelentették azt mondták, hogy x dátumtól mindenből lesz WebM, erre 2011-es videók között még van Flash only, de találtam már nem egy 2006-2007 körüli videót kevés nézettséggel WebM változatban.
  • A beágyazott videók egytől-egyik Flash, WebM-nél nem tesznek elérhetővé beágyazó kódot.
  • Az egyetlen pozitívum a teljes képernyős mód, de például a hangerő csúszka állapotát továbbra sem jegyzi meg.

Ezek egy részén segít a következő userJS.

Az ötletet az egyik Operás fejlesztő kiegészítője adta, amely sajnos nem a legstabilabb a YouTube folyamatos módosítgatásai miatt.

Mivel van egy paraméter, amivel ezt is be lehet kapcsolni, kerestem rá userJS-t. Sajnálattal tapasztaltam, hogy a többségük már messze túlment az ingerküszöbömön, vagyis rengeteg beállítási lehetőség, de nincs rá szükségem, hogy az egész oldalt átrendezze több száz kilobájtnyi kóddal, ami már lassít is rendesen. Ha kikapcsolom, akkor meg minek?

Szóval fogtam egy régi userJS-t, ami még a Flashes időkben íródott és módosítottam. Az eredmény egy egyszerű cucc, ami hozzáteszi a videókhoz a &html5=1 paramétert, ezáltal ha létezik WebM változatban akkor azt fogja elindítani.

Előnye, hogy nem kell bekapcsolni a HTML5 béta demót, minden cookie törlés után.

A másik előnye, hogy ezzel a megoldással működik a YouTube lejátszási lista funkciója HTML5-ben.

A szűrőfeltételeket módosíthatjuk, ha az egyéni YouTube-os keresőnkben hozzáadjuk a &webm=1 paramétert. Ekkor csak a WebM videókat fogja kilistázni.

YouTube WebM UserJS letöltése

YouTube Forced WebM telepítése

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.