Własne wtyczki w programie Sherlock

Sherlock jest nową, wprowadzoną w Mac OS-ie 8.5 rozbudowaną wersją programu Find (Znajdź plik). Oczywiście, jego najbardziej ekscytującą i reklamowaną funkcją jest wyszukiwanie w Internecie za pośrednictwem wskazanych wyszukiwarek. Całą swoją wiedzę o formatowaniu zapytania do serwerów Sherlock czerpie z wtyczek (Internet search plug-ins).


Sherlock jest nową - wprowadzoną w Mac OS-ie 8.5 - rozbudowaną wersją programu Find (Znajdź plik). Oczywiście, jego najbardziej ekscytującą i reklamowaną funkcją jest wyszukiwanie w Internecie za pośrednictwem wskazanych wyszukiwarek. Całą swoją wiedzę o formatowaniu zapytania do serwerów Sherlock czerpie z wtyczek (Internet search plug-ins).

Dzięki prostej budowie i łatwości modyfikacji można bez trudu rozszerzać możliwości Sherlocka. Wbrew pozorom budowa internetowego modułu programu jest bardzo prymitywna. Nie jest to robot, który byłby w stanie aktywnie przeszukiwać serwery WWW. Sherlock przygotowuje zapytanie (request), przesyła je do wybranych przez użytkownika serwisów i po otrzymaniu odpowiedzi czytelnie formatuje. Dla serwera zapytanie postawione przez Sherlocka niczym się nie różni od pochodzącego z przeglądarki WWW.

Budowa wtyczki

Budowa binarna wtyczek jest bardzo prosta - ich data fork zawiera jedynie czysty tekst ASCII (bez znaków kontrolnych i sterujących), resource fork nie jest wykorzystywany w procesie wyszukiwania, może zawierać informacje pomocnicze, takie jak znaczki wtyczek pokazywane w oknie Sherlocka, łańcuchy znaków wykorzystywane przez Findera etc. Wtyczki Sherlocka mają typ kreatora ustawiony jako fndf, a typ pliku - jako issp. Są one rozpoznawane przez Sherlocka tylko wtedy, gdy plik znajduje się w teczce Internet Search Sites, który mieści się w teczce System Folder. Znajdujące się w niej wtyczki są raz sprawdzane - w trakcie uruchamiania Sherlocka.

Strukturę pliku wtyczki (pliki te mają rozszerzenie.src) w skrócie można opisać jako:

- część formatująca zapytanie

- część zawierająca reguły interpretacji odpowiedzi otrzymanej z serwera (jest to w zasadzie zestaw parametrów dla wbudowanego parsera HTML)

Wtyczki wykorzystują opracowany przez firmę Apple język ISIL (Internet Search Interface Langugage) - prostą modyfikację języka HTML. Część definiująca zapytanie zawiera skrócony opis poszczególnych elementów. Omówimy je na przykładzie wtyczki, przeszukującej strony firmy Apple Computer Inc.:

# © 1998 Apple Computer, Inc.

<search

name="Apple site search"

action="http://www.apple.com/cgi-bin/query'"

update= "http://si.info.apple.com./updates/AltaVista.src.hqx"

updateCheckDays = 3 method= get >

<input name="pg" value="q">

<input name="what" value="web">

<input name="fmt" value=".">

<input name="kl" value="en">

<input name="q" user>

<interpret

resultListStart="RealName"

resultListEnd="Pages: <b>"

resultItemStart="<dl><dl>"

resultItemEnd = "</dl>">

</search>

Cała zawartość wtyczki zawiera się w sekcji <search> </search>. Oto opis poszczególnych elementów:

name - zawiera nazwę wtyczki - widać ją w oknie Sherlocka

action - ścieżka URL do skryptu serwera przyjmującego zapytania. Jest to zazwyczaj skrypt CGI lub PHP - wystarczy skopiować ścieżkę, pojawiającą się w okienku adresu przeglądarki WWW po zadaniu zapytania

update - ścieżka URL do pliku mającego uaktualnienie. Jest to przydatne, ponieważ operatorzy wyszukiwarek dość często zmieniają składnię zapytań - element opcjonalny

updateCheckDays - odstępy czasu, w jakich należy sprawdzać obecność nowszej wersji uaktualnienia - element opcjonalny

method - tryb wysyłania zapytania do serwera HTTP - może przyjąć wartość GET lub POST - jak ją sprawdzić, napiszemy w części "Piszemy wtyczkę"...