 |
|
 |
|
| |
November 29th, 2009
Pokuď jste lenivý přepisovat URL stránky, odkazu, výběru textu nebo URL obrázku na stránce, existuje jednoduchý řešení. Ano, samozřejmě tvůj skvělej FeurFuchs na to má jistě plugin, ale pro Operu existuje taky jednoduchý řešení. Stačí upravit menu.ini (víc o úpravách menu.ini tady) a nainstalovat balicek na generování QR (qrencode):
[Link Popup Menu]
Item, "Show QR" = Execute program, "bash","showqr %l"
[Document Popup Menu]
Item, "Show QR" = Execute program, "bash","showqr %u"
[Hotclick Popup Menu]
Item, "Show QR" = Execute program, "bash","showqr '%t'"
[Image Link Popup Menu]
Item, "Show QR link" = Copy link & Execute program, "bash","showqr %c"
[Image Popup Menu]
Item, "Show QR" = Copy image address & Execute program, "bash","showqr %c"
a nechat posílat na jednoduchej bash skript:
#!/usr/bin/env bash
qrencode -o /tmp/qr.png "$1"
if [ -e /tmp/qr.png ]
then kuickshow /tmp/qr.png
rm /tmp/qr.png
else kdialog –error "Failed to generate QR"
fi

Popularity: 9% [?]
September 4th, 2008
Často člověk potřebuje spustit příkaz, kterej si najde na Internetu. Co ho čeká? Ctrl+c, otevři terminál, Shift+insert a Enter. Hm. Rozhodl jsem se, že si to trošku zkrátím. Co takhle spustit označený text přímo z Opery pomocí kontextového menu? Abraka dabra:
[Hotclick Popup Menu]
...
...
Item, Run in Konsole = Execute program,"konsole","--noframe --notoolbar --nomenubar -e bashproxy %t"
Tento řádek spustí konzoli s vybraným textem. Problém je ale v tom, že konzole se potom ihned zavře a jeden nevidí, co se opravdu stalo. Parametr –no-close se neosvedčil a Vás teď jistě napadlo “přišpendlit za příkaz && read”. Super, ale co když příkaz skončí chybou a read se nevykoná? Udělal jsem tedy krok stranou a napsal srandoskript, který vykoná sobě předané parametry a pustí read (konzole čeká na stisknutí klávesy a pak se zavře). Čili:
Skript uložíme (třeba) jako bashproxy a uděláme spustitelným (chmod +x bashproxy) a posadíme do adresáře v $PATH. Nakonec se tedy můžeme pokochat výsledkem:

Popularity: 13% [?]
June 4th, 2008
… napsal kdysi Abbie Hoffman na obal a začal ji prodávat. Já napíšu jeden řádek a ukradnu všechny soubory v autoindexovaném adresáři na web serveru (nevím přesně jak se tomu vlastně říká - příklad bude zřejmě názornější). Než mě začnete kamenovat, zamyslete se nad tím, jestli každá stařenka, která umí uštrikovat kuklu je automaticky zloděj…
wget -nd -r -l1 -R ‘index*’,‘robots.txt’ –no-parent http://server.com/adresarsautoindexem/ –directory-prefix=/kam/ulozit
Nebyl bych to samozřejmě já, kdybych si to nepřidal do kontextového menu Opery…(pokráceno)
[Document Popup Menu]
....
Submenu, "save content to...", savetoc
...
[savetoc]
Item, junk = Execute program,"konsole","--noframe --notoolbar --nomenubar --vt_sz 90x30 --noclose -e wget -nd -r -l1 -R 'index*','robots.txt' --no-parent %u --directory-prefix=/junk"
Item, down = Execute program,"konsole","--noframe --notoolbar --nomenubar --vt_sz 90x30 --noclose -e wget -nd -r -l1 -R 'index*','robots.txt' --no-parent %u --directory-prefix=/down"
Item, mp3 = Execute program,"konsole","--noframe --notoolbar --nomenubar --vt_sz 90x30 --noclose -e wget -nd -r -l1 -R 'index*','robots.txt' --no-parent %u --directory-prefix=/mp3/000_new"
A už vůbec bych to nebyl já, kdybych na to nejdřív nešel strašnou obklikou. Z nevědomosti a lenosti číst manual wgetu, jsem původně vykuchal svůj celkem povedený pavoučí Python skript a upravil na další který vypisoval všechny odkazy v adresáři, které jsem potom chtěl wgetem stáhnout. Inu kdo nemá v hlavě musí mít v prstech. K nakouknutí v muzeu. V pondělí zavřeno.
Popularity: 18% [?]
June 1st, 2008
1.díl 2.díl
Dneska si pohrajeme s formuláři, resp. s inputy a textareami a na závěr trošku začarujeme s odkazy. Hodně často musí člověk datlovat ve fórech BBCode, nebo nedej bože HTML. Není tedy od věci, aby jsme si tyhle rutinky trošku ulehčili.
Formuláře

[Edit Widget Popup Menu]
Submenu, 67653, Edit Widget Insert Menu
Submenu, 67654, Internal Note List
--------------------
Submenu, "BBcode", BBCode
Submenu, "Texy!", Texy
Submenu, "HTML", HTML
Submenu, "XSS", XSS
Submenu, "SQL injection", SQL
--------------------1
Item, 50864 = Undo
Item, 68116 = Redo
--------------------2
Item, 50865 = Cut
Item, 50866 = Copy
Item, 50867 = Paste
Item, 50868 = Delete
--------------------3
Item, 67652 = Copy to note
--------------------4
Item, 67655 = Clear
Item, 50869 = Select all
--------------------5
Item, 69620 = Spell check
--------------------6
Item, 1560773594 = Create search
[BBCode]
Item, "[code]"=Cut & Insert, "[code]" & Paste & Insert, "[/code]"
Item, "[img]"=Cut & Insert, "[img]" & Paste & Insert, "[/img]"
Item, "[quote]"=Insert, "[quote]" & Paste & Insert, "[/quote]"
Item, "[url]"=Cut & Insert, "[url=" & Paste & Insert, "][/url]"
Item, "[url simple]"=Cut & Insert, "[url]" & Paste & Insert, "[/url]"
Item, "[b]"=Cut & Insert, "[b]" & Paste & Insert, "[/b]"
[Texy]
Item, "href"=Cut & Insert, "'title':" & Paste & Insert
Item, "image"=Cut & Insert, "[* " & Paste & Insert, " *]"
Jak vytvořit submenu umíme už od minule, takže jediná novinka je použití schránky. Jak vidíte, pomocí Cut vyřízneme výběr do schránky, Insertem vložíme začátek BBCodu, posléze obsah schránky a nakonec uzavřeme tag. Zbytek už je stále to samé, takže si to komentář ani nezaslouží. Snad jen poznámka, zatím se mi nepodařilo přijít na to, jak do hodnoty vložit úvozovky (zvláště se hodí při testování SQL a XSS zranitelností). Takže jen opravdu ilustrativně, každý si určitě přidá svůj oblíbený značkovací jazyk, nebo cokoliv jiného.
[HTML]
Item, "<img>"=Cut & Insert, "<img src='" & Paste & Insert, "' />"
Item, "<a>"=Cut & Insert, "<a href='" & Paste & Insert, "'></a>"
Item, "<a blank>"=Cut & Insert, "<a href='" & Paste & Insert, "' target='_blank'></a>"
Item, "<p>"=Insert, "<p>" & Paste & Insert, "</p>"
Item, "<br/>"=Cut & Insert, "<br/>" & Paste & Insert, "<br/>"
Item, "<strong>"=Cut & Insert, "<strong>" & Paste & Insert, "</strong>"
[XSS]
Item, "test"=Insert, "';!--<you suck>=&{()}""
Item, "alert"=Insert, "<script>alert('pwned')</script>"
Item, "loop alert"=Insert, "<script>while(1) { alert('pwned'); }</script>"
[SQL]
Item, "bypass"=Insert, "admin'/*"
Item, "bypass2"=Insert, "admin'--"
Item, "condition"=Insert, "' OR 1=1 /*
Item, "condition2"=Insert, "' OR 1=1 --"
Item, "condition3"=Insert, "' OR 1=1 #"
Odkazy

Občas se hodí otevřít odkaz nejen v novém okně, ale třeba v jiném prohlížeči, uložit ho do nějaké bookmarkovací služby, nebo jen prozaicky stáhnout. Stahování wgetem jsme řešili minule, různé bookmarkovací služby si každý jednoduše nastaví sám (důležitá je jen proměnná %l, která obsahuje url odkazu. Zastavím se tedy letmo u spusštění v jiném prohlížeči (ikdyž princip spuštění externího programu se tady už také probíral).
[Link Popup Menu]
Submenu, "save to...", savetol
Item, 50216 = Copy link
Item, bmark this = Go to page,"http://bookamark.xxx/?action=add&uri=%l"
--------------------1
Item, "Open in Firefox 2" = Execute program, "firefox-2","%l"
Item, "Open in Firefox 3" = Execute program, "firefox","%l"
Item, "Open in IE6" = Execute program, "/home/starenka/bin/ie6","%l"
Item, "Open in IE7" = Execute program, "/home/starenka/bin/ie7","%l"
Item, "Open in Konqueror" = Execute program, "konqueror","%l"
--------------------2
;Item, 67389 = Open link
Item, 53018 = Open link in new page
Item, 53019 = Open link in background page
;--------------------2
;Item, 54020 = Open link in new window
;Item, 67633 = Open link in background window
--------------------3
;Item, 70463 = Add link to bookmarks
Item, 50761 = Save link
Item, 581357748 = Download url
;--------------------4
;Submenu, 22235, Document Popup Menu
[savetol]
Item, /down = Execute program, "konsole","--noframe --notoolbar --nomenubar --vt_sz 90x10 -e wget %l --directory-prefix=/down"
Item, /junk = Execute program, "konsole","--noframe --notoolbar --nomenubar --vt_sz 90x10 -e wget %l --directory-prefix=/junk"
Item, /mp3/new = Execute program, "konsole","--noframe --notoolbar --nomenubar --vt_sz 90x10 -e wget %l --directory-prefix=/mp3/000_new"
Dnešní řádění ke stažení tady.
Popularity: 17% [?]
May 26th, 2008
V minulém díle jsme se naučili pozvolna vytvářet vlastní kontextová menu a lehce jsme rozšířili Operu o možnost převádět měny na koruny. Dneska budeme manipulovat s obrázky.
Obrázky
Osobně dost často obrázky z webu buďto stahuju k archivaci, nebo je ukladám do “bordel složky”, kde s nimi různě manipuluji a nebo je potřebuju narychlo zmenšit a uložit. Všechny tyto činnosti se dají dost zpříjemnit.
Nejdříve vytvoříme příkaz, který nám otevře obrázek v (alespoň mnou) oblíbeném IrfanView. Základ je logicky pro obě platformy stejný, odlišnosti jsou pak pouze ve způsobu volání Irfanu. Jen pro pořádek - příkaz Copy image zkopíruje obrázek do schránky a Execute program spustí příkaz i s vlastními parametry (poslední úvozovky).
Windows:
Item, Open in IrfanView = Copy image & Execute program, "C:\Program Files\IrfanView\i_view32.exe", "/clippaste"
Linux:
Tady je situace, trošku komplikovanější, protože je třeba Irfan zpouštět přes wine, ale pomocí tohoto šikovného skriptíku, to nebude o moc složitější než v předchozím případě:
Item, Open in IrfanView = Copy image & Execute program, "/home/starenka/.scripts/irfanview.sh", "/clippaste"
Jak už jste jistě odhadli, parametr /clippaste říká IrfanView, že má vytvořit nový obrázek z obsahu schránky.
Ukládání obrázků
K uložení obrázku rovnou do přednastavených složek mě vedla lenost vždy dohledávat v ukládacím dialogu cestu, kam zrovna daný obrázek chci uložit. Vyřešit se to dá celkem jednoduše. Protože takových složek používám vícero a kontextové menu není uplně nafukovací, vytvořil jsem si takové nenásilné “podmenu”. Pro ilustraci raději vložím kód celého kontextového menu…
[Image Popup Menu]
Item, Open in IrfanView = Copy image & Execute program, "/home/starenka/.scripts/irfanview.sh", "/clippaste"
;zde je nadefinovano submenu
Submenu, "save to...", saveto
Item, 50419 = Copy image address
--------------------1
Item, 67651 = Open image
Item, 70486 = Load image
--------------------2
Item, 50262 = Save image
Item, 70466 = Copy image
Platform Windows-Mac-QNX, Item, 70467 = Use image as desktop background
--------------------3
Item, 56064 = Show image properties
;--------------------3
;Submenu, 22235, Document Popup Menu
;samotne polozky submenu
[saveto]
Item, Save to /pix = Copy image address & Execute program, "konsole","--noframe --notoolbar --nomenubar --vt_sz 90x10 -e wget %c --directory-prefix=/pix"
Item, Save to /junk = Copy image address & Execute program, "konsole","--noframe --notoolbar --nomenubar --vt_sz 90x10 -e wget %c --directory-prefix=/junk"
A jak tedy obrázky stáhnout? Funkce Copy image address zkopíruje adresu obrázku, kterou posléze pošleme wgetu (%c), který nám ho stáhne do zadané složky. Abychom viděli průběh stahování (tedy aby wget nebyl jen spuštěn na pozadí), používám jemný trik se spuštěním konzole.
Windows: Wget se dá pořídit i pro Windows a to zde. Volání se pak obejde bez nastavení konzole tedy asi nějak takto:
Item, Save to /junk = Copy image address & Execute program, "C:\Program Files\GnuWin32\bin\wget.exe","%c --directory-prefix=c:\junk"
Fantazii se meze nekladou, takže si můžete volání “poštělovat” pro Váš oblíbený stahovací program. Pokud všechno dopadlo dobře, menu by pak mohlo vypadat nějak takhle:

PS. Pokud touží po kousku INI souboru, který jsme dneska udělali, nechť se obslouží.
Popularity: 27% [?]
Next Page » |
| |
 | |  |
|
|
|