DEVONagent Express plugin for alternative search engines?

I use DAe almost exclusively for searching the web. Great and simple tool.

I would like to use a search plugin that uses alternative search engines like ixquick.com, ecosia.org and duckduckgo.com. Is this possible? Can I create a plugin bei myself (I don’t mind fiddling with plist files)?

I also would like to add a feature request: Please make more space for entering the search query. The field is much too small even for simple queries.

Johannes

Right now that’s only possible if you’re using DEVONagent Pro which includes DEVONagent Express too.

Thanks for the suggestion, a future version will be probably resizable.

Thanks for your reply, Christian. I downloaded DA (the latest beta) and was able to create a plugin for Ecosia.org (xml code below). But the search results I get are strange (almost useless).

For almost every search in the Menu Extension I get (agent search!):

  • kelkoo.de (a useless shopping side) and ebay.de (both domains are excluded by preferences). Often ranked as most relevant
  • a wikipedia.de entry telling me that the article “My search terms” does not exist but I can write one
  • several entries from dict.leo.org
  • a bunch of links to other search lists or portal type sites (amzon, youtube, cyclex.de, meinestadt.de, SEO stuff)

All these entries are exactly what I don’t expect to see when I use an agent. And none of these entries is listed on the first 10 results pages of ecosia.org itself

The results are slightly better when I start the search in DA search window or use express search.

If I “smuggle” my Ecosia plugin into standalone DA Express it works fine, the results are good (nothing of the useless stuff mentioned above shows up).

Maybe I miss something very obvious in DA or do something wrong or something is wrong with the beta (we can switch to the beta forum) … Any advice?

I also tried the DuckDuckGo Search Script but I do not get any results (DA starts searching and says Files: 5 but does not display anything in the digest or result tab.

Johannes

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string></string>
	<key>EngineUrl</key>
	<string>http://www.ecosia.org/search.php?q=_agentQuery_</string>
	<key>Identifier</key>
	<string>www.ecosia.org</string>
	<key>Info</key>
	<string>Ecosia Plugin</string>
	<key>LinksNotMatching</key>
	<array>
		<string>*.ecosia.*</string>
		<string>*search?q=cache:*</string>
	</array>
	<key>Name</key>
	<string>Ecosia</string>
	<key>OffsetPerPage</key>
	<integer>10</integer>
	<key>Operators</key>
	<integer>59</integer>
	<key>ParseLinks</key>
	<true/>
	<key>ResultsPerPage</key>
	<integer>10</integer>
	<key>Start</key>
	<integer>0</integer>
	<key>Version</key>
	<string>1.0</string>
</dict>
</plist>

These country-specific links are probably part of the “More” link in the sidebar, over here there’s only one additional link for the Czech version of Wikipedia. Therefore you have to add these links/domains to the LinksNotMatching array.

Here’s an updated plug-in which should be soon available via the assistant too:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Searches DuckDuckGo with provided search term(s).</string>
	<key>EncodingUrl</key>
	<string>UTF-8</string>
	<key>EngineUrl</key>
	<string>https://duckduckgo.com/html/?q=_agentQuery_</string>
	<key>Identifier</key>
	<string>net.stateful.devonagent.duckduckgo.plugin</string>
	<key>Info</key>
	<string>DuckDuckGo Search Plugin ©2011-2013 Stateful Labs &amp; DEVONtechnologies</string>
	<key>Keyword</key>
	<string>ddg</string>
	<key>LinksNotMatching</key>
	<array>
		<string>*duckduckgo.com*</string>
		<string>*amazon.com/s/?*</string>
		<string>*maps.google.com/maps?q=*</string>
		<string>*news.search.yahoo.com/search?p=*</string>
		<string>*search.twitter.com/search?q=*</string>
		<string>*www.bing.com/images/search?q=*</string>
		<string>*www.facebook.com/search/?q=*</string>
		<string>*www.youtube.com/results?search_query=*</string>
	</array>
	<key>Name</key>
	<string>DuckDuckGo Search</string>
	<key>Operators</key>
	<integer>59</integer>
	<key>Version</key>
	<string>1.2</string>
</dict>
</plist>

Christian, thanks for you reply.

I see and will do some further investigation.
The problem is: I certainly want to find results from wikipedia. But not a page that tells me that their is no entry. How to filter that?

Why is it not enough to exclude a domain (ebay.de in my case) in preferences “exclude domains”? How dose the exclude list in preferences relate/interact with the LinksNotMatching array?

The DuckDuckGo Search is working with the new script.

Thanks.
Johannes

Plug-ins are usually optimized for just one search engine, therefore the recommended solution would be to use a search set. The search set could use both your plug-in (which should filter the Wikipedia links by extending the LinksNotMaching array) and the Wikipedia plug-in.

This should actually be sufficient. Could you please send me a screenshot of the preferences? Thanks!

Screenshot attached.

Johannes
Bildschirmfoto 2013-01-30 um 12.41.59.png

Thanks for the screenshot! Could you please send the preferences (~/Library/Preferences/com.devon-technologies.agentexpress.plist) to cgrunenberg - at - devon-technologies.com? Maybe the usage of both versions (the embedded one and the stand-alone one) caused invalid/unexpected preferences. Thanks in advance!

Just for the records: Christian found a bug here that will be fixed with the next version.
Johannes

Here’s an actual version of my Ecosia plugin. I managed to get rid of (almost all) unwanted stuff without going for a search set (even excluding the wikipedia “nothing found” page without excluding useful wikipedia stuff).

The only thing not working so far is the youtube exclusion. What ever I enter as LinksNotMatching string (even youtube.com) it will come up as the first match.

Any idea why?

Johannes


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string></string>
	<key>EngineUrl</key>
	<string>http://www.ecosia.org/search.php?q=_agentQuery_</string>
	<key>Identifier</key>
	<string>www.ecosia.org</string>
	<key>Info</key>
	<string>Ecosia Plugin</string>
	<key>LinksNotMatching</key>
	<array>
		<string>*.ecosia.*</string>
		<string>*search?q=cache:*</string>
		<string>dict.leo.org</string>
		<string>*.kelkoo.de*</string>
		<string>*.ebay.de*</string>
		<string>*.youtube.com/results*</string>
		<string>*title=Special:Search*</string>
		<string>*search-alias*</string>
		<string>*in.linkedin.com*</string>
	</array>
	<key>Name</key>
	<string>Ecosia</string>
	<key>OffsetPerPage</key>
	<integer>10</integer>
	<key>Operators</key>
	<integer>59</integer>
	<key>ParseLinks</key>
	<true/>
	<key>ResultsPerPage</key>
	<integer>10</integer>
	<key>Start</key>
	<integer>0</integer>
	<key>Version</key>
	<string>1.1</string>
</dict>
</plist>


Just replace ```

.youtube.com/results

with

youtube.com/results

Thanks, Christian, that did the trick.

I would like to learn why. I’ve looked into other plugins and the google plugin excludes “.google.”.
Just curious to understand, why in my case the dot is wrong and in the mentioned example the dot seems correct.

Johannes

The URL is just youtube.com, not e.g. www.youtube.com. Therefore the additional dot breaks the matching.