Думаю, каждый фанат Оперы уже успел поставить и оценить возможности нового релиза любимого браузера. Его возможности уже обсуждались не один раз, но мне хотелось бы остановится на одной новой фиче, которую по определенным причинам (а именно, из-за ее недоработки) пока использовать проблематично. Я говорю о предложениях в поисковых системах. Пока мы можем использовать эту возможность только на Бинге и Википедии.
Естественно, я не мог удержаться и не разобраться в этой неприятности. Итак, что же обнаружилось.
В search.ini (для тех, кто не в курсе, этот файл отвечает за поисковые системы и находится в польовательской папке Оперы profile) в секциях вышеупомянутых посиковых систем появились два новых пункта:
Suggest URL содержит конструкцию {SearchTerm}, которая, очевидно, являет собой сам запрос (хотя непонятно, почему разработчики не оставили эту ссылку в соответствии с ссылками самого поиска — с %s; но нам это не принципиально важно).
Давайте посмотрим, что скрывается за этим URL, например, для Википедии:
http://en.wikipedia.org/w/api.php?action=opensearch&search={SearchTerm}&format=json
Уже из самого адреса становится ясно то, в чем можно убедиться, перейдя по данному адресу, например, подставив «Wi» на место {SearchTerm}: данные для предположений поиска берутся в формате OpenSearch, а именно представляют собой закодированный с помощью JSON массив, состоящий из самого запроса и подмассива поисковых предположений, например:
Теперь, когда стал ясен принцип работы этой функции в Опере, не составит труда добавить в search.ini сервисы предположений для любимых поисковых систем. Просто в соответствующую секцию добавляем пункт
Для тех, кому интересно, предлагаю несколько уже известных мне адресов:
Для тех же поисковых систем, которые не поддерживают данный формат, придется писать собственную «обертку» на PHP/ASP/… (дело вкуса). Например, для гуглопереводчика создаем в htdocs файл atrans.php со следующим содержимым:
И назначаем Suggest URL, который для перевода с любого языка на русский будет выглядеть следующим образом: http://localhost/atrans.php?q={SearchTerm}&tl=ru — и таким образом получаем мгновенный перевод в строке браузера.
После завершения правок можно сохранить файл и перезапустить Оперу. Спасибо за внимание.
Естественно, я не мог удержаться и не разобраться в этой неприятности. Итак, что же обнаружилось.
В search.ini (для тех, кто не в курсе, этот файл отвечает за поисковые системы и находится в польовательской папке Оперы profile) в секциях вышеупомянутых посиковых систем появились два новых пункта:
Suggest Protocol=JSON
Suggest URL=...
Suggest URL содержит конструкцию {SearchTerm}, которая, очевидно, являет собой сам запрос (хотя непонятно, почему разработчики не оставили эту ссылку в соответствии с ссылками самого поиска — с %s; но нам это не принципиально важно).
Давайте посмотрим, что скрывается за этим URL, например, для Википедии:
http://en.wikipedia.org/w/api.php?action=opensearch&search={SearchTerm}&format=json
Уже из самого адреса становится ясно то, в чем можно убедиться, перейдя по данному адресу, например, подставив «Wi» на место {SearchTerm}: данные для предположений поиска берутся в формате OpenSearch, а именно представляют собой закодированный с помощью JSON массив, состоящий из самого запроса и подмассива поисковых предположений, например:
["Wi",["Wisconsin","William Shakespeare","Win\u2013loss record","Winnipeg","Wide receiver","Winston Churchill","Wingspan","Wine","Wiltshire","Winter Olympic Games"]]
Теперь, когда стал ясен принцип работы этой функции в Опере, не составит труда добавить в search.ini сервисы предположений для любимых поисковых систем. Просто в соответствующую секцию добавляем пункт
Suggest URL=...
с адресом OpenSearch-предположений соответствующей поисковой системы.Для тех, кому интересно, предлагаю несколько уже известных мне адресов:
- Google: http://www.google.ru/complete/search?hl=ru&output=firefox&q={SearchTerm}
- Youtube: http://www.google.ru/complete/search?hl=ru&ds=yt&output=firefox&q={SearchTerm}
- Google Images: http://www.google.ru/complete/search?hl=ru&ds=i&output=firefox&q={SearchTerm}
- Wikipedia (rus): http://ru.wikipedia.org/w/api.php?action=opensearch&search={SearchTerm}&format=json
- Яндекс: http://suggest.yandex.ru/suggest-sl?&part={SearchTerm}
- Яндекс.Словари: http://suggest-slovari.yandex.ru/suggest-sl?&part={SearchTerm}
- Яндекс.Маркет: http://suggest.market.yandex.ru/suggest-market?part={SearchTerm}
- Яндекс.Видео: http://sitesuggest.yandex.ru/suggest-ya.cgi?site=video&part={SearchTerm}
- НИГМА: http://cplt2.nigma.ru/complete/query_help.php?suggest=true&q={SearchTerm}
- Bing: http://api.bing.net/osjson.aspx?Query={SearchTerm}&FORM=OPERAS&Market=ru-ru
Для тех же поисковых систем, которые не поддерживают данный формат, придется писать собственную «обертку» на PHP/ASP/… (дело вкуса). Например, для гуглопереводчика создаем в htdocs файл atrans.php со следующим содержимым:
<?php
header('content-type:text/javascript');
$q=stripslashes($_GET['q']);$sl=$_GET['sl'];$tl=$_GET['tl'];
$t=file_get_contents('http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q='.urlencode($q).'&langpair='.urlencode($sl).'|'.urlencode($tl));
$a=json_decode($t,true);
echo json_encode($a['responseStatus']!=200?array():array($q,array($a['responseData']['translatedText'])));
И назначаем Suggest URL, который для перевода с любого языка на русский будет выглядеть следующим образом: http://localhost/atrans.php?q={SearchTerm}&tl=ru — и таким образом получаем мгновенный перевод в строке браузера.
После завершения правок можно сохранить файл и перезапустить Оперу. Спасибо за внимание.