Přejít k navigační liště

Zdroják » Webdesign » Tvoříme uživatelské skripty pro Operator: používáme POST

Tvoříme uživatelské skripty pro Operator: používáme POST

Články Webdesign

Rozšíření Operator umožňuje uživatelům prohlížeče Firefox používat mikroformáty při každodenní práci s webem. Jeho možnosti lze dále rozšířit pomocí uživatelských skriptů. V dnešní závěrečné části si popíšeme, jak ve skriptech můžete pracovat s požadavky, které jsou vykonávané metodou POST.

V minulých dílech jsme si předvedli vytvoření jednoduchého uživatelského skriptu a představili jsme si i některé pokročilé techniky. Dnes seriál ukončíme posledním dílem zaměřeným na metodu POST.

Celá série o tvorbě uživatelských skriptů pro rozšíření Operator je překladem anglického originálu, jehož autorem je vývojář Operatoru Michael Kaply.

Doposud naše uživatelské skripty spoléhaly na to, že všechny odeslané parametry jsou součástí URL. Používaly totiž metodu GET. Existují ovšem stránky, které data neposílají jako součást URL, ale v těle požadavku. Ty používají metodu POST. Ukážeme si, jak vytvářet požadavky s metodou POST pro využití v akcích Operatoru. Budu předpokládat, že jste již přečetli oba předchozí díly a nějakou tu akci pro Operator jste již vytvořili.

Co je Operator?

Operator je rozšíření prohlížeče Firefox, které uživatelům nabízí rozhraní pro práci s mikroformáty. Více se o používání Operatoru dočtete v článku Operator: snadná práce s mikroformáty ve Firefoxu.

Co jsou mikroformáty?

Mikroformáty je způsob vkládání sémantických informací do HTML dokumentů. Hodí se pro zápis kontaktů, událostí a mnohých dalších dat. Více se o nich dočtete v našem seriálu Kódujme sémanticky s mikroformáty.

Data požadavku POST jsou před uživatelem skryta, ale my si je chceme zobrazit. Použijeme k tomu rozšíření Live HTTP Headers. Toto rozšíření nám umožní zobrazit, jaká data webová stránka odesílá serveru, a zkopírovat je. V našem demu si vytvoříme akci, která najde nejbližší kurz Finanční Univerzity Dave Ramseyho. Jakmile si zobrazíte stránku, uvidíte formulář, který budeme emulovat. Spusťte Live HTTP Headers, ať vidíte, co se na stránce děje, vyplňte směrovací číslo (ZIP Code) a odešlete formulář.

Rozšíření Live HTTP Headers

Live HTTP Headers vám zobrazí několik požadavků, vás ale zajímá jen ten vrchní. Hledáte zápis podobný tomuhle:

Content-Type: application/x-www-form-urlencoded
Content-Length: 53
intZipCode=78758&intMaxRad=30&image2.x=33&image2.y=11 

Obsahuje důležitou informaci o celém požadavku. Poznáme z něj, že formulář odeslal směrovací číslo (intZipCode), vzdálenost (intMaxRad) a dvě další hodnoty. Naším cílem bude tento požadavek emulovat.

Napřed se podívejte na na hotový skript, ať si uděláte představu, co nás čeká.

Můžete si všimnout, že nejdůležitější část akce je nastavení těla požadavku (proměnná body). Použijeme data z mikroformátu adr pro vytvoření body:

var body = "intZipCode=" + semanticObject["postal-code"] + "&intMaxRad=30"; 

Všimněte si, že jsme vynechali dva poslední parametry, protože nemají na výsledek naší akce žádný efekt.

Dále musíme nastavit správné adresy. Jedná se o dvě URL, tou první je adresa požadavku POST, vidíte ji hned nahoře:

POST /fpu/classfinder/index.cfm?fuseaction=actfindclass 

V našem skriptu před ní přidáme http://www.daveramsey.com a máme kompletní adresu požadavku.

Tou druhou důležitou adresou je referer. Je důležitý, protože některé POST požadavky nefungují správně, pokud jej nemají nastaven. Adresu refereru najdete o něco níže:

Referer: http://www.daveramsey.com/fpu/home/index.cfm?fuseaction=dspSecondaryHeaderContent&intContentId=2997 

Stačí, abychom obě adresy vložili do našeho skriptu a máme hotovo.

A to je všechno. Náš výsledný skript můžete za pomoci Live HTTP Headers snadno upravit, aby fungoval s jakýmkoliv požadavkem POST, který potřebujete.

V některých speciálních případech budete potřebovat, aby Operator v požadavku odeslal soubor. V takovém případě vás odkážu na ukázkový skript, který odesílá vCard službě Dopplr. Funguje podobně, jen tvorba požadavku je poněkud komplikovanější.

Příjemnou zábavu.

Tento text je překladem návodu Creating a Microformat Action User Script that uses POST, jehož autorem je Michael Kaply.

Komentáře

Odebírat
Upozornit na
guest
4 Komentářů
Nejstarší
Nejnovější Most Voted
capslock

zalozit zdrojak.root.cz a pak stejne srat clanky ohledne web kravin i na root, dete se bodnout

petrkrcmar

Root se nikdy nevyhýbal vývoji webů, máme několik seriálů o PHP, několik o Ruby či Ruby on Rails a podobně.

Zdroják není samostatný web, ale sekce nebo chcete-li příloha Root.cz. Nemůžete po nás chtít, abychom články, které na něm vycházejí, na Rootu nepropagovali. Kromě toho vás nikdo nenutí články číst, internet je médium, které vám umožňuje selektovat témata. Pokud vás článek nezajímá, přeskočte ho. Jsou tu však jiní čtenáři, které zaujme.

Milan

Ahoj, necetl jsem to cele, ale z letmeho pohledu na clanek bych rad upozornil na plugin TAMPER DATA, ktery umoznije odchytavat a modifikovat komunikaci mezi prohlizecem a serverem. Snad to neni moc off topic.

Odysseus: PewDiePie vydal open-source AI workspace, který běží na vašem vlastním hardwaru

AI
Komentáře: 0
Felix Kjellberg, youtuber se 110 miliony odběratelů, strávil rok učením se programovat a fine-tuningem vlastních AI modelů. Výsledkem je Odysseus – bezplatný, open-source workspace pro práci s umělou inteligencí, který neposílá žádná data do cloudu. Projekt má týden, přes 61 000 hvězdiček na GitHubu a znovu otevírá otázku, komu vlastně patří váš digitální kontext.

Když Git už nestačí: jak izolovat databázový stav pro pokusy AI agentů

Gitová větev vývojářům oddělí kód, ale databáze často zůstává společná. U AI agentů je to slabé místo: rychle spouštějí migrace, mění data a zkoušejí víc cest najednou. Databázová větev jim dá vlastní pracovní prostor, jenže tím práce nekončí. Ještě je potřeba řešit citlivá data, oprávnění, životnost větve i zbytek stavu aplikace.

GitHub vyhrál pohodlím. Stejné pohodlí dnes ztěžuje odchod

GitHub kdysi působil jako přesný opak SourceForge: rychlý, přehledný a přirozený. Dnešní projekt na něm ale často nemá jen kód. Má tam issues, pull requesty, CI, balíčky, bezpečnostní pravidla i AI agenty. Lock-in nevzniká tím, že by nešel odnést Git repozitář, ale tím, že se běžný provoz týmu postupně přesune do jedné platformy.