Как да добавим или заменим вградени търсачки в Opera

0
54

Темата във форума се намира тук.

Как да си добавим допълнителни търсачки в Opera?

Opera 9 ще има графичен интерфейс за добавяне на такива търсачки, но нищо не пречи да има описано и за по-старите версии.
Opera има доста, неосъзнат от много хора и затова неоползотворен, потенциал като става въпрос за интегрирано търсене от адресната лента (address bar). Пример е търсене в Google: просто пиешете g + интервал + каквото търсите („g търся-еди-какво-си“) и при натискане на Enter, ще ви се заредят резултатите.
Добавянето на други търсачки става чрез редакция на search.ini файла, който се намира в папката profile в директорията, където е инсталирана Opera. По подразбиране това е C:Program FilesOperaprofile. Да не губим време в празни приказки и да се заемаме за работа, че доста такава ни чака.

Важно уточнение: в този туториъл ще се занимаем с два вида търсачки. Едните работещи чрез get, а другите – чрез post оператори.

Що е то get и post търсачка?
Get търсачките изпращат заявката за търсене чрез URL-а адреса, докато post търсачките крият заявката.
Отличен пример за get търсачка е Google, а за post – търсачката на subs.unacs.bg. Когато търсите в Google, след натискане на бутона за търсене горе адреса става по-дълъг наниз от символи. Това е get търсене. Ето шотче:

Ето как изглежда търсенето в subs.unacs.bg:
Каквото и да въведем за търсене, адреса на търсачката е видим (и винаги един и същ), но заявката липсва. Заявката е скрита.
Това е post търсене. Шотче:

Преди да започнете каквото и да било може да си направите резервно копие на .ini файла. Знае ли човек?

Още нещо: максимума на възможни лични (custom) търсачки в Opera e 50.

Сега си отворете файла. Настройките за всяка търсачка започват с [Search Engine X] (Х е даден пореден номер) и са разделени с празен ред от следващата. Нека обясним за какво е всеки ред:
Name= – името на търсачката, ще се показва и самото поле в Personal bar-a
URL= – адреса на заявката, появява се в адресната лента след стартиране на търсенето. Тук влиза в действие параметърът %s. Opera го използва за да разбере къде да използва това, което вие въведете за търсене в адресната лента. Тя ще замени %s с това, което вие сте написали;
Query= – самата заявка. Попълва се само ако Is post има стойност 1;
Key= – буквата или думата, която се използва за стартиране на търсене. Пише се в адресната лента. Пример: „g something cool” ще търси „something cool” в Google. Стойността за Key в Windows може да е буква или дума. В Linux може да е само буква. За сметка на това, Linux прави разлика между главна и малка буква (т.е. „g“ може да се използва за едно, а „G“ – за друго), докато Windows не прави тази разлика;
Is post= – обозначава как се изпращат заявките към сайта. Ако стойността е 0, заявката ще се изпрати със самия URL чрез get. Ако стойността е 1, заявката не се включва в URL адреса и се изпраща към сървъра скрита – чрез post. Пример за такъв случай е търсачката на subs.unacs.bg.
Has endseparator= – при стойност 1, ще добави разделител след името в диалоговите прозорци. Нищо важно. Просто козметична опция. Аз не я ползвам и слагам винаги 0;
Encoding= – определя вида енкодинг за търсачката. UTF-8 би трябвало да работи без проблем. Ако все пак възникне проблем, може да смените енкодинга с някой друг. За латиница – ISO-8859-1, а за кирилица – ISO-8859-5 или Windows-1251;
Search Type= – определя вида търсене. Прилагам списък със стойностите, които са заети (вградени) и не бива да се използват:

Код:


- Search Type 2: Super Search
- Search Type 12: Find in page
- Search Type 50: Hotclick Dictionary
- Search Type 51: Hotclick Encyclopedia
- Search Type 52: Hotclick Convert currency
- Search Type 100: Hotclick Translation English to French
- Search Type 100 to 116: Hotclick Translation ... to ...
- Search Type 117: Hotclick Translation Spanish to French

Просто използвайте винаги 0 и всичко би трябвало да е наред. Ако по някаква случайност не е, използвайте следващата по-висока стойност.
Verbtext=17063 – отнася се за езиковия файл, оставете стойността по подразбиране (17063), тя е най-добрият избор;
Nameid= – не знам точно за какво е това, но просто го оставяйте винаги на 0 и не би трябвало да има никакви проблеми;
Position= – определя позицията на полето за настоящата търсачка в Personal bar-a. Тази търсачка, която искате да е първа, й слагате номер 1, за втората – 2 и т.н. Ако не искате полето за дадена търсачка да е видимо, въведете стойност -1 (минус 1). Ето и скрийншотче да стане ясно за какво е подреждането на Personal bar-a (можете да се полюбувате на скинчето – смених си background-а на MetalBlue скина с мой :P)

ЗАБЕЛЕЖКА: преди да запазите промените на този файл, затворете Opera. Промените трябва да се извършат при изключен браузър. После си го пуснете пак.

Дотук с теорията, а понеже всяка теория е почти безполезна без малко практика, ще дам по един пример за двата типа търсене: get и post.

Търсачки работещи чрез get:
Ще използвам познатата на мнозина търсачка на IMDb. За примерно търсене ще се спра на един от любимите ми филми – Terminator 2. Не че не съм още po-луд фен на Властелинът на пръстените, но заглавието идва малко неудобни за случая. Ще се придържам към по-простите неща. 🙂

Като за начало си отваряме http://www.imdb.com/. После в полето горе вляво си въвеждаме ”terminator” (без кавичките, разбира се). Тази дума ще я използваме да разгадаем коя част от изпратения адрес е тази, която трябва да заменим с %s, за да знае браузърът какво, от това, което праща, да замени с въведеното от нас. Поглеждаме горе в адресната лента и виждаме следното: http://www.imdb.com/find?s=all&q=terminator
Заменяме думата, която въведохме (terminator) с %s и получаваме, че адреса на търсачката на IMDb е http://www.imdb.com/find?s=all&q=%s.
Връщаме се към search.ini файла на Opera и започваме въвеждането на данни. Понеже търсенето в Google е хубаво нещо, можете да го оставите. За целта просто започнете от [Search Engine 2].
За Name= можете да въведете каквото ви душа желае. Аз, например, си харесах „Internet Movie Database”.
За URL= ще използваме вече открития адрес http://www.imdb.com/find?s=all&q=%s.
За Query= няма да въвеждаме нищо тъй като това е get търсачка.
За Key= можете да си въведете буква или дума, която ви напомня за сайта или търсачката. Аз използвах ”imdb”.
За Is post= ще въведем/оставим 0, защото, както казах, това е get, а не post търсачка.
За Has endseparator= си въведете 1 ако искате да има разделител из разните му там диалогови прозорци. Ако ви е все тая, си го оставете 0. Това не оказва влияние на самото търсене.
За Encoding= си използвайте utf-8, освен ако не ви създава проблеми. Вместо него можете да използвате ISO-8859-1 за латиница. За кирилица можете да ползвате вече споменатите ISO-8859-5 или Windows-1251. И все пак, UTF-8 би трябвало да работи без проблеми.
За Search Type= си въведете 0. Ако има проблеми една стойност по-висока като се съобразявате със приложения списък (по-нагоре) кои стойности да не се използват.
За Verbtext= оставете стойността по подразбиране – 17063.
За Nameid= оставяйте 0, т.е. не го променяйте.
За Position= си въведете желаната от вас позиция. Както описах по-горе.

Ето примерен вариант (моя):

Код:


[Search Engine 2]
Name=Internet Movie Database
URL=http://www.imdb.com/find?s=all&q=%s
Query=
Key=imdb
Is post=0
Has endseparator=0
Encoding=utf-8
Search Type=1
Verbtext=17063
Position=3
Nameid=0

Спрете Opera (ако не сте го направили вече) и тогава запазете промените във файла. Пуснете си пак Opera и за адрес въведете думата, която използвахте за активиране на търсене + интервал + някой филм за търсене. Да речем отново Terminator. При мен би изглеждало така: „imdb terminator„. Ако не сте сгафили нещо, след натискане на Enter ще ви се заредят резултатите от търсене на „terminator” в IMDb.

Това беше за търсачки работещи чрез get.
На следващата страница ще се занимаем с търсачки работещи чрез post.Търсачки работещи чрез post:
Тук вече става по-сложно. Този тип търсачки крият заявката, която пращат към сървъра, затова не знаем как точно да попълним данните в search.ini. За целта този адрес трябва да се прихване чрез sniffer програма. За целта ще използваме Proxomitron. За примерен сайт ще използвам именно subs.unacs.bg.
Proxomitron можете да изтеглите директно от тук. Ако случайно ви трябва сайта на програмата, ето го: http://www.proxomitron.info/.
Разархивирате съдържанието на архива на удобно място и си стартирате програмата. За улеснение, ще прилагам и скрийншотчета.
Стартирате Opera (ако вече не сте го направили) и отваряте http://subs.unacs.bg/. Натискате F12 за да се показване на меню и активирате използването на прокси сървър като кликате върху Enable proxy servers. Това ще активира прокси localhost на порт 8080 за HTTP. Ако искате да сте 100%, че се е активирали правилния прокси сървър, в Opera от меню Tools избирате Preferences (или натискате CTRL+F12), след това горе страница Advanced, вляво Network и в десния панел кликате най-горния бутон – Proxy servers. Трябва да изглежда ето така:

Това се прави с цел да се прекара трафика през Proxomotron, за да може той да прихване скритата заявка.

Забележка: Proxomitron трябва да е активен, иначе няма да се зареждат сайтове.
Забележка #2: ако имате инсталирана защитна стена (firewall), то тя ще се обади, че Proxomitron иска връзка. Позволете му достъп.

После минавате отново на Proxomitron и в главния екран на програмата кликате бутона Log Window за да изведете прозореца със прихващаната информация.

В него от меню Edit включвате опцията View Posted data.

Вече сме готови да търсим филм във subs.unacs.bg. Пишем в търсачката някой филм. Нека е отново Terminator. Както виждате, в адресната лента е адреса на търсачката (http://subs.unacs.bg/search.php), но самата заявка липсва.
Минете обратно на прозореца HTTP Message Log на Proxomitron, вече трябва има появила се доста информация. Интересува ни информацията СЛЕДPosting XXX bytes” (в случая – 52 bytes). Това е скритата информация, която се изпраща, а не ни се показва.
Ето какво ни трябва всъщност:

Важно: някои сайтове вмъкват ненужна информация след ”Posting XXX bytes” и преди истински важната за нас. Можете да познаете ненужната информация по дължината и съставящите я символи. Ако има някакъв дълъг ред, който е съставен предимно от произволни букви и цифри, то е почти сигурно, че няма да ни трябва.

Време е да въведем/paste-нем събраната информация във search.ini. Имайте предвид, че за да функционира всичко, информацията трябва да е въведена на един ред и съединена с „&”.
Имаме:
umovie=terminator
task=Submit
action=%D2%FA%F0%F1%E8

елиминираме новите редове и на тяхно място слагаме „&”. Получава се:
umovie=terminator&task=Submit&action=%D2%FA%F0%F1%E8
Заменяте „terminator” с %s за да знае Opera, че на това място там, трябва да използва това, което вие въведете за търсене в адресната лента.
Получава се: umovie=%s&task=Submit&action=%D2%FA%F0%F1%E8
Това трябва се въведе за Query в search.ini.

За улеснение, ето отново ред по ред:
Name= каквото на вас ви харесва, аз си избрах просто „subs.unacs.bg”
URL= тук се въвежда адреса на търсачката на сайта. В случая: http://subs.unacs.bg/search.php;
Query= тук си въвеждате новооткритата заявка, която преди малко обединихте на един ред. В случая:
umovie=%s&task=Submit&action=%D2%FA%F0%F1%E8
Key= тук си въведете активираща буква или дума. Аз използвах „subs”;
Is post= тук си въвеждате 1, защото това Е post търсачка.
Останалите редове се въвеждат на същия принцип и за двата типа търсачки (т.е. както съм обяснил по-рано).

Получава се:

Код:


[Search Engine 3]
Name=subs.unacs.bg
URL=http://subs.unacs.bg/search.php
Query=umovie=%s&task=Submit&action=%D2%FA%F0%F1%E8
Key=subs
Is post=1
Has endseparator=0
Encoding=utf-8
Search Type=1
Verbtext=17063
Nameid=0
Position=2

Отново спирате Opera за да запазите промените в search.ini, след което можете да я пуснете отново.
При въвеждане на ”subs terminator”, ще ви се отворят резултатите от търсенето на субтитрите. Ако не сте сгафили някъде, де.

Заключение:
Не всичко е толкова просто, както става ясно от всичко изписано до момента, но с тези два метода трябва да можете да си направите „вградена търсачка” в Opera за всяка търсачка в интернет. Методите са изпитани и работят.
Опитах се да бъда възможно най-ясен и изчерпателен. Дано съм бил от помощ.

ДОБАВИ КОМЕНТАР

Коментирай това преди всички други

Извести ме за
avatar
wpDiscuz