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

    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) можно прочитать о том же, но более подробно.
    Share post

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 34

      0
      Если нужен поиск по определенному ресурсу, который идексируется Google, то все гораздо проще.
        0
        При ближайшем рассмотре оказалось одно и тоже, просто favicon меня попутал)
        +3
        блин а Add to Search Bar для кого делали?
        там за один клик делаешь то что здесь заняло пол страницы
          0
          Я еще не пробовал этот плагин, но хочу сказать на автоматику не всегда можно положится и если возникают проблемы приходится править вручную, в статье рассказано как это можно сделать.
          • UFO just landed and posted this here
              0
              В данной статье не рассмотрен случай обработки POST поисков. А так как понять в каком именно виде передаются данные в POST запросах может далеко не каждый (в отличии от GET фокус с посмотреть в адресную строку не прокатит) поэтому данный плагин всетаки предпочтительнее.
                +1
                Мне проще один раз самому xml накидать, чем засорять фокс лишними плагинами. Да и, мне кажется, большинство читателей хабра в состоянии разобраться в формате формы поиска, не зависимо от метода передачи.
              0
              с помошью него не получается добавить, например, поиск на http://torrents.ru/ который сверху справа. Наверно проблема в наличии еще одного поля в виде спускающегося списка...
                +1
                Заходим сюда http://torrents.ru/forum/tracker.php
                Кликаем правой кнопкой по полю "Название содержит" и выбираем "Добавить плагин в панель поиска".
              +2
              Для тех кому лень с этим разбираться есть плагин Add to Search Bar. Позволяет добавлять поиск к любому полю поиска в том числе и для POST запросов (предложенным автором методом можно тоже создавать POST запросы, но это значительно сложнее чем GET)
                0
                В качестве альтернативы "Add to Search Bar" есть еще и плагин "OpenSearchFox".
                Ссылку, к сожалению, сейчас дать не могу.
                  +1
                  OpenSearchFox 0.1.5
                  http://forum.mozilla-russia.org/viewtopic.php?id=13795
                    0
                    «Так как поддержка расширения прекратилась (причина не известна), то рекомендуется использовать расширение Add to Search Bar»
                  +1
                  А еще есть онлайновый генератор плагинов
                  –5
                  В Опере это делатеся так:

                  Правый клик по текстовому полю —> Создать поисковый движёк.

                  Причем запоминаются все текущие значения полей. У меня есть поисковики, переводящие текст с русского на английский и с английского на русский, сделанные из одного поля ввода на translate.google
                    0
                    Если что, минус в карму поставил я.
                    За злостный оффтоп.
                      –2
                      На хабре есть замечательная возможность, при публикации темы в определенном блоге, ставить на нее замок, тогда она будет видна только участникам блога.

                      Топики про плагины (выделю пожирнее, не все понимают) для фокса, коих тысячи, считаю злостным офтопом на хабре. Но автор данного топика считает иначе, что этот топик может быть полезен всем. Вот я и решил, что вместо того, что-бы в очередной раз писать «поставте замок», сделать так, что-бы это топик был действительно был интересен еще кому-то.

                      У вас есть отличный шанс подумать головой, а не тем, чем вы думали до этого момента и исправится.
                        0
                        > Топики про плагины (выделю пожирнее, не все понимают) для фокса, коих тысячи, считаю злостным офтопом на хабре
                        Считаете оффтопом - ставьте минус.
                        Если наберется некоторое количество хабралюдей, которые разделяют ваше мнение - топик попадет в отхабренные и его больше никто не увидит.
                        А заминусованый автор надолго потеряет возможность что-то публиковать.

                        Саморегулируемое сообщество, да.

                        >У вас есть отличный шанс подумать головой, а не тем, чем вы думали до этого момента и исправится.
                        А вот переходить на личности - нехорошо ;-)
                          0
                          > Считаете оффтопом - ставьте минус.
                          Я пытаюсь сделать нечто большее, чем просто поставить минус.
                            0
                            Пытайтесь. Искренне надеюсь, что из этого получится что-то полезное.
                            А пока имеем то, что имеем.
                      0
                      А еще у него же есть "Инструменты" в которых достаточно перетащить одну ссылочку в закладки и переводить до умопомрачения.
                      0
                      Я кстати сделал 8 удобных поисковых плагинов. Там как СЕО плагины так и не сео :)
                      Пользуйтесь на здоровье!
                        +1
                        Не совсем уверен что в тему, но сотни поисковых плагов есть тут: http://mycroft.mozdev.org/
                        Сам активно пользовался, пока на огнелисе сидел.
                          0
                          Выбор там хороший, да только порой там устаревшие попадаются, которые никто не обновляет и вследствии этого не работающие.
                          0
                          А вот как теперь разместить этот xml у себя на сайте, чтобы посетители могли добавлять его в свой браузер легко и просто?
                          • UFO just landed and posted this here
                          • UFO just landed and posted this here
                            • UFO just landed and posted this here
                              0
                              Помогите написать плагин. Дело в том что у меня используется '&' в запросе и FF ругается.
                              Пример:
                              http://search.domain.com/default.asp?type=track&name=12345
                                0
                                Вместо амперсанда необходимо использовать &

                                В вашем случае будет:

                                http: //search.domain.com/default.asp?type=track&name=12345
                                  0
                                  Блин все порезалось — надо ставить "& amp ;" — только без пробелов
                                    0
                                    SUPER!!!
                                    Работает! (только без пробелов)
                                    Спасибо огромное!!!
                                0
                                Два часа уже пытаюсь сделать для себя хитрый поисковый плагин, но не выходит…
                                Нуждаюсь в совете — к сожалению не могу задать вопрос в Q&A по причине кармы.

                                Необходим поисковый плагин который ищет через «Мне повезет!» гугла, только на сайте 4pda.ru, причём в начало каждого запроса должно вставляться «android».

                                Пытаюсь найти строку, которую необходимо передавать браузеру, получилось вот так:
                                www.google.ru/search?btnI&sitesearch=4pda.ru&q=android+{searchTerms}

                                Если в ссылке, после «q=» одно слово — всё ok, например: www.google.ru/search?btnI&sitesearch=4pda.ru&q=android
                                Но стоит добавить после «android» что-нибудь ещё и открывается просто запрос в гугле.

                                Например www.google.ru/search?btnI&sitesearch=4pda.ru&q=android+voice+recorder не отрабатывает функцию «Мне повезет!»…
                                Что я делаю не так?

                                Only users with full accounts can post comments. Log in, please.