Створюємо пошуковий плагін для Firefox

Створюємо пошуковий плагін для Firefox

Firefox досить простими методами дозволяє додати собі нові пошукові движки. Хоча вже є велика їхня добірка на сайті Mozilla, але все таки там є не все. У цьому випадку можна додати плагін самому.


Отже спочатку для цього нам знадобиться шаблон. Для GET запитів підійде такий:

<SearchPlugin xmlns=«www.mozilla.org/2006/browser/search» xmlns:os=«a9.com/-/spec/opensearch/1.1»>

<os:ShortName></os:ShortName>

<os:Description></os:Description>

<os:InputEncoding>UTF-8</os:InputEncoding>

<os:Image width=«16» height=«16»>data:image/x-icon;base64,</os:Image>

<os:Url type=«text/html» method=«GET» template=""">

</os:Url>

</SearchPlugin>

Тепер заповнюємо його. Для прикладу я зроблю плагін для запитів на Whois сервіс nic.ru:

  1. У тег ShortName пишемо коротке ім'я, воно буде вказано в рядку пошуку і в списку плагінів
  2. У теґі Description вказуємо опис плагіну
  3. У теґ Image ми повинні записати іконку закодовану за допомогою base64 (оскільки ми не можемо записувати в xml файли бінарні дані) для цього:
    1. Спочатку отримуємо іконку (це можна зробити кількома способами, наприклад, завантажити favicon c сайту або зробити самому і зберегти у форматі bmp розміром 16х16)
    2. Тепер за допомогою чудового набору утиліт openssl кодуємо дані у форматі base64: команда виглядатиме так «openssl enc -base64 -in favicon.ico»
    3. Весь вивід команди openssl копіюємо в тег Image після рядка "data:image/x-icon;base64,»
  4. В Url, в атрибуті template вказуємо рядок-шаблон для пошуку:
    1. Для цього йдемо на сайт
    2. Пишемо будь-який запит, наприклад на пошук «12345678»
    3. У рядку пошуку видно, що шаблон пошуку виглядає так: «www.nic.ru/whois/?query =» і в кінці додається наша терміну
    4. У template вказуємо url запиту, а замість рядка запиту пишемо {searchTerms}

У підсумку отримуємо:

<SearchPlugin xmlns=«www.mozilla.org/2006/browser/search» xmlns:os=«a9.com/-/spec/opensearch/1.1»>

<os:ShortName>NIC WhoIS</os:ShortName>

<os:Description > WhoIS сервіс </os:Description>

<os:InputEncoding>UTF-8</os:InputEncoding>

<os:Image width=«16» height=«16»>data:image/x-icon;base64,

AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAD////////////////////////379/v3r/v3r/79+//////

///////////////////////////////////gvX/JjB/BfADBfADBfADBfADMlC/o

zp/////////////////////////379/MlC/BfADBfADBfADBfADBfADBfADBfADB

fADQnD/79+/////////////9+/fkxY7gvX/YrWDUpFHgvX/gvX/kxY/hwofFhBfB

fADBfADMlC/79+/////////k8v2Xy/ev2Pn05s/05s+v2PmXy/fK5fv////////w

3r/FhBfBfADgvX/////58ubX6/w0mfA/n/H///////8/n/E0mfDK5fvy48j47t//

///05s/BfADFhA/79+/iwYr///80mfA0mfDk8v3X6/w0mfA0mfD////JjCXBfAD7

9/D////YrWDBfADozp/UpU/47t9ksfQ0mfC93vqKxfc0mfBwuPX9+vXBfADBfADj

xY/////nzp/BfADgvX/QnD/r1q6Kxfc0mfA0mfA0mfA0mfCj0vj////UpFHBfADY

rWD////05s/BfADgvX/YrV/gvX+j0vg0mfBhsPS12vphsPQ0mfCXy/f47t/BfADM

lDP////////BfADgvX/kxY/UpFHK5fs0mfBstvT////x9vk0mfA/n/H////JjCXB

fAD////////QnULs1q/379/JjCX///80mfA0mfCKxfdisfQ0mfBLpPL9+/fBfADB

fADw3r/////euXf////////ctW/79/BYrPM0mfA0mfBLpPJ9v/a93vrq1KrBfADB

fADctW/w3r/t27j////////////z48v////////////79/Dnzp/UpFHFhBfBfADB

fADBfADYrV/////////////////79+/UpU/BfADBfADBfADBfADBfADBfADBfADB

fADctW/////////////////////////////v3r/UpU/FhA/BfADBfADJjB/YrV/v

3r////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</os:Image>

<os:Url type=«text/html» method=«GET» template=«www.nic.ru/whois/?query={searchTerms}»>

</os:Url>

</SearchPlugin>

Все це необхідно зберегти як xml файл, наприклад, nic-whois.xml і скопіювати в теку searchplugins свого профілю:

Для Linux користувачів це буде "" ауд/.mozilla/firefox/xxxxxxx.default/searchplugins "

Для Windows користувачів ""% USERPROFILE %\Application Data\Mozilla\Firefox\Profiles\xxxxxxxx.default\searchplugins "

xxxxxxx - це назва вашого профілю, вона у всіх має різне значення.

Ось і все.

Тут (! warning eng) можна прочитати про те саме, але більш докладно.