Pull to refresh

Создаем поисковый плагин для Firefox

Reading time 3 min
Views 7.8K
Firefox довольно простыми методами позволяет добавить себе новые поисковые движки. Хотя уже имеется большая их подборка на сайте Mozilla, но все таки там есть не все. В этом случае можно добавить плагин самому.
Итак изначально для этого нам понадобится шаблон. Для GET запросов подойдет такой:
<SearchPlugin xmlnswww.mozilla.org/2006/browser/search» xmlns:osa9.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 xmlnswww.mozilla.org/2006/browser/search» xmlns:osa9.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» templatewww.nic.ru/whois/?query={searchTerms}»>
</os:Url>
</SearchPlugin>

Все это необходимо сохранить как xml файл, например, nic-whois.xml и скопировать в папку searchplugins своего профиля:
Для Linux пользователей это будет "~/.mozilla/firefox/xxxxxxxx.default/searchplugins"
Для Windows пользователей "%USERPROFILE%\Application Data\Mozilla\Firefox\Profiles\xxxxxxxx.default\searchplugins"
xxxxxxxx — это название вашего профиля, оно у всех имеет разное значение.
Вот и все.

Здесь (!warning eng) можно прочитать о том же, но более подробно.
Tags:
Hubs:
+36
Comments 34
Comments Comments 34

Articles