On 6th December 2000 Opera released a "new" version of their browser. In reality
there does not seem to be much real change: the javascript error is still in
place, although I have not checked whether the email bugs have been fixed.
There seem to be three additions:
1. Opera have released a "free" version (provided you put up with an ad). The
add disappears in the registered version though :)
2. Instant messaging via icq protocol has been integrated (possibly
unecessary bloat)
3. Several search engines have been integrated into the toolbar!!!
The 3rd point is most interesting. This can save speed as rather than hitting
"home" to head back to our page of search engines we can type directly into
the bar.
However, this is not without it's faults, as we cannot (should not?) change the search
engines list by Opera. To make matters worse, the Altavista query is the simple
one, not the advanced query. Two of the options ("stock quote" and "company", which
noone in his right mind would ever use) point actually both to the same
(idiotical) query. Even worse, they are not
directly querying the search engine, but are rather using a service called
"bfast" after which opera gives us a link in order to redirect the query to the
appropriate search engine.
After toying with this for a bit (type "fravia", then hit return for google
responses. Then click the small icon and select another engine... woha! New results
are automatically entered. This is good for quickly querying one engine after
another) I decided to try to alter this.
First line of approach: disassemble in W32Dasm and also load into Borland
Resource workshop and search the strings for "http" (Opera needs to know the
addresses to query, hmm?) No result. Nor for "altavista", "google" etc. This
worried for a bit, as this was the way I had learned to edit such strings.
(Go looking for Fravia's old reverse-engineering site. Once there find
Mammon's essay in project 5 on how to reverse Netscape 3 and read it!).
However having previously tried (and failed :( to fiddle around with Opera 4
by simply loading the exe into UltraEdit and searching the ascii strings, I
decided to try this approach. Typed in altavista and bingo, there was the
code :)
Now to try and make sense of this:
http://service.bfast.com/bfast/click?siteid=30656059&bfpage=multimedia_smy&bfmid=22218516&user=befree&pg=q&stype=svideo&q=%s&nbg=%i
v Video
http://service.bfast.com/bfast/click?siteid=30656059&bfpage=multimedia_smy&bfmid=22218516&user=befree&pg=q&stype=simage&q=%s&nbg=%i
i Image
http://service.bfast.com/bfast/click?siteid=30656059&bfpage=multimedia_smy&bfmid=22218516&user=befree&pg=q&stype=saudio&q=%s&nbg=%i
m Mp3/Audio
s Stock quote
http://www.commissionjunction.com/track/track.dll?aid=893031&pid=645589&url=http://www.business.com/search/rslt_default_company.asp&query=%s
c Company
http://service.bfast.com/bfast/click?bfmid=2181&sourceid=19273554&categoryid=rn_booksearch&choice=keywordsearch&userInput=%s
b Books do=application&domain=%s&tld=.com
http://opera.domaindirect.com/cgi-bin/register.cgi d Domain Name
http://www.goto.com/d/search/p/befree/?Promo=befree00192735881894411880&Keywords=%s
t GoTo
http://service.bfast.com/bfast/click?siteid=19273676&bfpage=hotbot2&bfmid=5960107&MT=%s&DC=%i
h HotBot
http://service.bfast.com/bfast/click?siteid=30656059&bfpage=wsearch_sm&bfmid=22218516&user=befree&pg=q&q=%s&nbg=%i
a AltaVista
http://service.bfast.com/bfast/click?siteid=30656053&bfpage=horizontal&bfmid=27253343&q=%s&num=%i
g Google
OK, so we have the string to query the engine, followed by the shortcut key
(type g followed by a string in the URL bar to search) and the name to appear
in the search engine toolbar. In all these strings we have "%s" to represent
our query string. Now all we have to do is to change these to the ones we
want. Firing through some search engines I wanted (feel free to pick your
own) and searching for opera I got:
http://ftpsearch.lycos.com/cgi-bin/search?form=medium&query=opera&doit=Search&type=Case+insensitive+multiple+substrings+search&hits=15&matches=&hitsprmatch=&limdom=&limpath=&f1=Count&f2=Mode&f3=Size&f4=Date&f5=Host&f6=Path&header=none&sort=none&trlen=20
http://www.alltheweb.com/cgi-bin/asearch?type=all&query=opera
http://www.deja.com/qs.xp?OP=dnquery.xp&ST=MS&DBS=2&QRY=opera&SUBMIT=search+Dejavue
http://ragingsearch.altavista.com/cgi-bin/query?q=opera&search=Ragin_Search
http://www.netcraft.com/?restriction=site+contains&host=opera&lookup=Wait..&position=limited
http://hotbot.lycos.com/?MT=opera&SM=MC&DV=0&LG=any&DC=10&DE=2&AM1=MC
http://www.google.com/search?q=opera&btnG=Google+Search
http://astalavista4.box.sk/cgi-bin/robot?srch=opera&submit=+search+&project=robot&gfx=robot
http://www.northernlight.com/nlquery.fcg?qr=opera&sb=search&si=&us=025&cc=
http://www.altavista.com/cgi-bin/query?hl=on&q=%s&search=Search&r=&kl=XX&pg=aq&enc=iso88591&text=yes&d0=&d1=
So now all we need to do (in theory) is replace "opera" with "%s" in these
strings then copy them across, correct? Well almost. As we cannot change the
byte settings all the new strings must begin at the same point, so we cannot
allow the new string to overrun the old. The ridiculously long ftpsearch
query can be sliced down and then we simply allow the search engine to apply
it's default values, true for several of these strings. Please note we only
have ten entries as the eleventh in the default is querying the same engine as
another one. Also if the original string is longer (as it should be) switch
across to the hex codes and enter "00" for each of those.
seems to work fine.
So by apllying this we can make the new feature close to useful. Remember and
change the name that appears afterwords and enjoy :-) (of course it is
equally possible to use this feature to sotre bookmarks...)
Beardo.
For comments mail to Beardo(at)operamail(dot)com