[Surfraw-commits] [SCM] surfraw - a fast unix command line interface to WWW branch, master, updated. surfraw_2-2-5_1-170-g22e7041
Ian Beckwith
ianb at erislabs.net
Thu Mar 3 05:22:07 UTC 2011
The following commit has been merged in the master branch:
commit ddfe926fc42bd79e5a488ae655bb6e0e9a18185d
Author: Ian Beckwith <ianb at erislabs.net>
Date: Thu Mar 3 01:36:15 2011 +0000
opensearch: -r uses redirector at http://erislabs.net/ianb/webtools/opensearch/
diff --git a/ChangeLog b/ChangeLog
index 552aa1d..7534856 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2011-03-03 Ian Beckwith <ianb at erislabs.net>
+
+ * opensearch: new option -r, uses redirector at
+ http://erislabs.net/ianb/webtools/opensearch/
+ instead of calling opensearch-discover and
+ opensearch-genquery. -r is selected automatically
+ if those tools are not installed.
+
2011-02-20 Ian Beckwith <ianb at erislabs.net>
* New elvi: bugzilla - searches various bugzillas,
diff --git a/elvi/opensearch b/elvi/opensearch
index 61ba89e..558c0e8 100755
--- a/elvi/opensearch
+++ b/elvi/opensearch
@@ -1,5 +1,4 @@
#!/bin/sh
-# $Id$
# elvis: opensearch -- Search an OpenSearch-enabled website
# ianb at erislabs.net 20060903
@@ -13,7 +12,8 @@ def SURFRAW_opensearch_pageindex ""
def SURFRAW_opensearch_language "$SURFRAW_lang"
def SURFRAW_opensearch_inputencoding ""
def SURFRAW_opensearch_outputencoding ""
-defyn SURFRAW_opensearch_list 0
+defyn SURFRAW_opensearch_list no
+defyn SURFRAW_opensearch_redirect no
}
w3_usage_hook () {
@@ -21,7 +21,11 @@ w3_usage_hook () {
Usage: $w3_argv0 [options] [url] [search words]...
Description:
Surfraw search an OpenSearch-enabled website.
+ If opensearch-discover and opensearch-genquery are installed then
+ it will handle the opensearch lookups locally, otherwise it will fall
+ back on a redirector.
Local options:
+ -r Explicitly use redirector.
-l List OpenSearch searches at url.
-title=TITLE Use search with title matching TITLE.
TITLE is case-insensitive.
@@ -57,6 +61,7 @@ w3_parse_option_hook () {
-in*=*) setopt SURFRAW_opensearch_inputencoding "$optarg" ;;
-o*=*) setopt SURFRAW_opensearch_outputencoding "$optarg" ;;
-l) setoptyn SURFRAW_opensearch_list 1 ;;
+ -r) setoptyn SURFRAW_opensearch_redirect yes ;;
*) return 1 ;;
esac
return 0
@@ -69,11 +74,13 @@ if test -z "$w3_args"; then
exit 0
fi
-if ! which opensearch-discover > /dev/null 2>&1; then
- err opensearch-discover not found
+if ifno SURFRAW_opensearch_redirect &&
+ [ ! -x $(which opensearch-discover) ] ||
+ [ ! -x $(which opensearch-genquery) ]
+then
+ setoptyn SURFRAW_opensearch_redirect yes
fi
-
# Clobbers command line, but we've already parsed it
set $w3_args
siteurl="$1"
@@ -81,25 +88,48 @@ shift
w3_args="$*"
# w3_args now contains a list of arguments
-if ifyes SURFRAW_opensearch_list; then
+if ifyes SURFRAW_opensearch_redirect; then
+ if ifyes SURFRAW_opensearch_list; then
+ err "-l not supported with -r"
+ elif test -z "$w3_args"; then
+ w3_browse_url "$siteurl"
+ else
+ escaped_args=`w3_url_of_arg $w3_args`
+
+ if [ -n "$SURFRAW_opensearch_title" ]; then
+ err "-t not supported with -r"
+ fi
+
+ url="http://erislabs.net/ianb/webtools/opensearch/"
+ url="${url}?site=$(w3_url_of_arg "$siteurl")"
+ url="${url}&searchTerms=${escaped_args}"
+ url="${url}&count=${SURFRAW_opensearch_count}"
+ url="${url}&startIndex=${SURFRAW_opensearch_startindex}"
+ url="${url}&pageIndex=${SURFRAW_opensearch_pageindex}"
+ url="${url}&language=${SURFRAW_opensearch_language}"
+ url="${url}&inputEncoding=${SURFRAW_opensearch_inputencoding}"
+ url="${url}&outputEncoding=${SURFRAW_opensearch_outputencoding}"
+ url="${url}&fmt=html"
+
+ w3_browse_url "$url"
+ fi
+
+else # dont use redirector
+
+ if ifyes SURFRAW_opensearch_list; then
opensearch-discover -q -v -a $siteurl
case "$?" in
- 0) ;; # OK
- 1) err "Cannot access $siteurl" ;;
- 2) err "Cannot find ${matching}OpenSearch link at $siteurl" ;;
- 3) err "opensearch-discover: required perl module not found" ;;
- *) err "Unknown error from opensearch-discover" ;;
+ 0) ;; # OK
+ 1) err "Cannot access $siteurl" ;;
+ 2) err "Cannot find ${matching}OpenSearch link at $siteurl" ;;
+ 3) err "opensearch-discover: required perl module not found" ;;
+ *) err "Unknown error from opensearch-discover" ;;
esac
-
-elif test -z "$w3_args"; then
- w3_browse_url "$siteurl"
-else
- escaped_args=`w3_url_of_arg $w3_args`
-
-if ! which opensearch-genquery > /dev/null 2>&1; then
- err opensearch-genquery not found
-fi
+ elif test -z "$w3_args"; then
+ w3_browse_url "$siteurl"
+ else
+ escaped_args=`w3_url_of_arg $w3_args`
discover_args="-q"
matching="" # for error message below
@@ -107,7 +137,7 @@ fi
discover_args="-q -t $SURFRAW_opensearch_title"
matching="matching "
fi
-
+
opensearchurl=`opensearch-discover $discover_args $siteurl`
case "$?" in
@@ -145,7 +175,7 @@ fi
fi
query=`opensearch-genquery $queryargs $opensearchurl $w3_args`
-
+
case "$?" in
0) ;; # OK
1) err "Cannot access OpenSearch description $opensearchurl" ;;
@@ -157,4 +187,5 @@ fi
w3_browse_url "$query"
+ fi
fi
--
surfraw - a fast unix command line interface to WWW
More information about the Surfraw-commits
mailing list