[Surfraw-commits] [SCM] surfraw - a fast unix command line interface to WWW branch, master, updated. surfraw_2-2-5_1-150-g50d1344
Ian Beckwith
ianb at erislabs.net
Wed Jan 12 15:16:36 UTC 2011
The following commit has been merged in the master branch:
commit 2c019a3ddedc5392a18db07bc70cc9b3060752b2
Author: Ian Beckwith <ianb at erislabs.net>
Date: Wed Jan 12 13:43:14 2011 +0000
New elvi: ddg, openports, cablesearch by Kyle Isom <coder at kyleisom.net>
I've added ddg and openports:
* ddg uses SSL search by default and offers a few other flags (such as
safe searches, and turning on javascript).
* openports covers the basic functionality of openbsd -ps but has flags
for every search type provide by openports.se (particularly description).
I also added in cablesearch, which searches cablesearch.org for leaked
diplomatic cables.
Each of the elvi includes tests and all the appropriate documentation / make-
related files have been updated.
diff --git a/README b/README
index dec61a6..24c87c2 100644
--- a/README
+++ b/README
@@ -168,6 +168,7 @@ bbcnews -- Search BBC News (news.bbc.co.uk)
bing -- Search the web using Microsoft's Bing (www.bing.com)
bookfinder -- Search for books using www.bookfinder.com
bugmenot -- Bypass compulsory web registration with bugmenot.com
+cablesearch -- Search leaked diplomatic cables.
cia -- Search CIA documents at www.cia.gov
cite -- Search computer science papers (citeseerx.ist.psu.edu)
cliki -- Search the common lisp wiki
@@ -177,6 +178,7 @@ comlaw -- Search Australian Law using Comlaw (www.comlaw.gov.au)
ctan -- Search the Comprehensive TeX Archive Network (ctan.org)
currency -- Convert currencies with the Universal Currency Converter (www.xe.net/ucc)
cve -- Search for CAN assignments in CVE
+ddg -- Securely search the web using duckduckgo (www.duckduckgo.com)
debbugs -- Search the debian BTS (bugs.debian.org)
debcontents -- Search contents of debian/ubuntu packages (packages.debian.org/packages.ubuntu.com)
deblists -- Search debian mailing lists (lists.debian.org/search.html)
@@ -222,6 +224,7 @@ musicbrainz -- Search MusicBrainz (musicbrainz.org)
netbsd -- Search NetBSD related information (www.netbsd.org)
ntrs -- Search the NASA Technical Report Server
openbsd -- Search OpenBSD related information (www.openbsd.org)
+openports -- Search for OpenBSD ports (www.openports.se)
opensearch -- Search an OpenSearch-enabled website
pgpkeys -- Search the PGP key database
pasearch -- Search the unofficial Penny Arcade archives (pipefour.org/pa)
diff --git a/elvi/cablesearch b/elvi/cablesearch
new file mode 100644
index 0000000..89a4c56
--- /dev/null
+++ b/elvi/cablesearch
@@ -0,0 +1,41 @@
+#!/bin/sh
+# elvis: openports -- search openports for OpenBSD packages
+# coder at kyleisom.net 20110105
+. surfraw || exit 1
+
+w3_config_hook () {
+ # for when I figured out how to parse json in surfraw...
+ def SURFRAW_cablesearch_api "http://cablesearch.org/cable/api/search"
+ def SURFRAW_cablesearch "http://cablesearch.org/"
+}
+
+w3_usage_hook () {
+ cat <<EOF
+Usage: $w3_argv0 [options] [search words]...
+Description:
+ Search leaked diplomatic cables.
+Local options:
+ If you can read this, it means your hard drive has already been wiped and
+ the NSA alerted to your conniving schemes.
+EOF
+ w3_global_usage
+}
+
+w3_parse_option_hook () {
+ opt="$1"
+ optarg="$2"
+ case "$opt" in
+ #-m|-mai*) setopt SURFRAW_openports_stype "maintainer" ;;
+ *) return 1 ;;
+ esac
+ return 0
+}
+
+w3_config
+w3_parse_args "$@"
+# w3_args now contains a list of arguments
+
+escaped_args=`w3_url_of_arg $w3_args`
+
+url="${SURFRAW_cablesearch}?q=${escaped_args}"
+w3_browse_url $url
diff --git a/elvi/ddg b/elvi/ddg
new file mode 100644
index 0000000..bdad209
--- /dev/null
+++ b/elvi/ddg
@@ -0,0 +1,82 @@
+#!/bin/sh
+# elvis: ddg -- Securely search the web using duckduckgo (www.duckduckgo.com)
+# coder at kyleisom.net 20110105
+# relevant: https://duckduckgo.com/params.html
+# similar to duckduckgo elvi, adds more options and defaults to SSL.
+. surfraw || exit 1
+
+w3_config_hook () {
+ def SURFRAW_ddg_results "$SURFRAW_results"
+ def SURFRAW_ddg_base_url "www.duckduckgo.com"
+ def SURFRAW_ddg_search search
+ def SURFRAW_ddg_params "&kg=g"
+ defyn SURFRAW_ddg_https_arg 0
+ defyn SURFRAW_ddg_safe_arg 0
+ defyn SURFRAW_ddg_redirect_arg 0
+ defyn SURFRAW_ddg_use_javascript 0
+ defyn SURFRAW_ddg_got_a_ducky_feeling 0
+}
+
+w3_usage_hook () {
+ cat <<EOF
+Usage: $w3_argv0 [options] [search words]...
+Description:
+ Surfraw search the web using DuckDuckGo (www.duckduckgo.com)
+Local options:
+ -d,-ducky,-l,-lucky use in case of overwhelming feeling of duckiness
+ -j,-javascript use javascript
+ -p,-safe enable safe search
+ -r,-redirect use redirection
+ -s,-insecure disable SSL search
+EOF
+ w3_global_usage
+}
+
+w3_parse_option_hook () {
+ opt="$1"
+ optarg="$2"
+ case "$opt" in
+ -d*|-l*) setoptyn SURFRAW_ddg_got_a_ducky_feeling 1 ;;
+ -j|-javascript*) setoptyn SURFRAW_ddg_use_javascript 1 ;;
+ -p|-safe*) setoptyn SURFRAW_ddg_safe_arg 1 ;;
+ -r|-redirect*) setoptyn SURFRAW_ddg_redirect_arg 1 ;;
+ -s|-sec*) setoptyn SURFRAW_ddg_https_arg 1 ;;
+ *) return 1 ;;
+ esac
+ return 0
+}
+
+w3_config
+w3_parse_args "$@"
+# w3_args now contains a list of arguments
+
+if [ "${SURFRAW_ddg_https_arg}" = 0 ] ; then
+ SURFRAW_ddg_base_url="https://${SURFRAW_ddg_base_url}"
+else
+ SURFRAW_ddg_base_url="http://${SURFRAW_ddg_base_url}"
+fi
+
+# need to send the user to the non-javascript version if using a non-graphical
+# browser
+if [ "$SURFRAW_ddg_use_javascript" = 0 ]; then
+ SURFRAW_ddg_base_url="${SURFRAW_ddg_base_url}/lite"
+fi
+
+if [ "$SURFRAW_ddg_safe_arg" = 1 ]; then
+ SURFRAW_ddg_params="${SURFRAW_ddg_params}&kp=1"
+fi
+
+if [ "$SURFRAW_ddg_redirect_arg" = 1 ] ; then
+ SURFRAW_ddg_params="${SURFRAW_ddg_params}&kd=1"
+fi
+
+if [ "$SURFRAW_graphical" != "yes" ] ; then
+ SURFRAW_ddg_params="${SURFRAW_ddg_params}&kf=-1&kz=-1&kq=-1&kv=-1"
+fi
+
+escaped_args=`w3_url_of_arg $w3_args`
+if [ "$SURFRAW_ddg_got_a_ducky_feeling" = 1 ]; then
+ escaped_args="! ${escaped args}"
+fi
+
+w3_browse_url "${SURFRAW_ddg_base_url}/?q=${escaped_args}${SURFRAW_ddg_params}"
diff --git a/elvi/openports b/elvi/openports
new file mode 100644
index 0000000..d1b710c
--- /dev/null
+++ b/elvi/openports
@@ -0,0 +1,58 @@
+#!/bin/sh
+# elvis: openports -- search openports for OpenBSD packages
+# coder at kyleisom.net 20110105
+. surfraw || exit 1
+
+w3_config_hook () {
+ def SURFRAW_openports_search "http://openports.se/search.php?"
+ def SURFRAW_openports_stype ""
+}
+
+w3_usage_hook () {
+ cat <<EOF
+Usage: $w3_argv0 [options] [search words]...
+Description:
+ Search openports for OpenBSD packages / ports. Only one search is active
+ at a time. Feel free to n00b it up and use more than one flag. Go ahead,
+ just try.
+Local options:
+ -m,-maintainer search by maintainer
+ -c,-comment search by comment
+ -b,-builddeps search by build dependencies
+ -r,-rundeps search by run dependencies
+ -s,-mastersite search by master site
+ -d,-description search by description
+ -l,-commitlogs search by commit logs
+EOF
+ w3_global_usage
+}
+
+w3_parse_option_hook () {
+ opt="$1"
+ optarg="$2"
+ case "$opt" in
+ -m|-mai*) setopt SURFRAW_openports_stype "maintainer" ;;
+ -c|-comme*) setopt SURFRAW_openports_stype "comment" ;;
+ -b|-bu*) setopt SURFRAW_openports_stype "dependbuild" ;;
+ -r|-ru*) setopt SURFRAW_openports_stype "dependrun" ;;
+ -s|-mas*) setopt SURFRAW_openports_stype "MASTER_SITES" ;;
+ -d|-de*) setopt SURFRAW_openports_stype "description" ;;
+ -l|-commi*) setopt SURFRAW_openports_stype "commitlog" ;;
+ *) return 1 ;;
+ esac
+ return 0
+}
+
+w3_config
+w3_parse_args "$@"
+# w3_args now contains a list of arguments
+
+escaped_args=`w3_url_of_arg $w3_args`
+
+if test -z $SURFRAW_openports_stype ; then
+ url="${SURFRAW_openports_search}so=${escaped_args}"
+else
+ url="${SURFRAW_openports_search}stype=${SURFRAW_openports_stype}&so=${escaped_args}"
+fi
+
+w3_browse_url $url
diff --git a/links.IN b/links.IN
index 8bcf0a6..15770d1 100644
--- a/links.IN
+++ b/links.IN
@@ -12,6 +12,7 @@ elvi.1sr.gz @mandir@/man1/bing.1sr.gz
elvi.1sr.gz @mandir@/man1/bbcnews.1sr.gz
elvi.1sr.gz @mandir@/man1/bookfinder.1sr.gz
elvi.1sr.gz @mandir@/man1/bugmenot.1sr.gz
+elvi.1sr.bz @mandir@/man1/cablesearch.1sr.gz
elvi.1sr.gz @mandir@/man1/cite.1sr.gz
elvi.1sr.gz @mandir@/man1/cia.1sr.gz
elvi.1sr.gz @mandir@/man1/cliki.1sr.gz
@@ -21,6 +22,7 @@ elvi.1sr.gz @mandir@/man1/comlaw.1sr.gz
elvi.1sr.gz @mandir@/man1/ctan.1sr.gz
elvi.1sr.gz @mandir@/man1/currency.1sr.gz
elvi.1sr.gz @mandir@/man1/cve.1sr.gz
+elvi.1sr.gz @mandir@/man1/ddg.1sr.gz
elvi.1sr.gz @mandir@/man1/debbugs.1sr.gz
elvi.1sr.gz @mandir@/man1/debcontents.1sr.gz
elvi.1sr.gz @mandir@/man1/deblists.1sr.gz
@@ -66,6 +68,7 @@ elvi.1sr.gz @mandir@/man1/musicbrainz.1sr.gz
elvi.1sr.gz @mandir@/man1/netbsd.1sr.gz
elvi.1sr.gz @mandir@/man1/ntrs.1sr.gz
elvi.1sr.gz @mandir@/man1/openbsd.1sr.gz
+elvi.1sr.gz @mandir@/man1/openports.1sr.gz
elvi.1sr.gz @mandir@/man1/pasearch.1sr.gz
elvi.1sr.gz @mandir@/man1/piratebay.1sr.gz
elvi.1sr.gz @mandir@/man1/pgpkeys.1sr.gz
diff --git a/test/Makefile.am b/test/Makefile.am
index fbf0e27..1c080b5 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -3,7 +3,7 @@ EXTRA_DIST = runtests elviwithouttests README COOKIES W.test \
arxiv.test ask.test aur.test austlii.test bbcnews.test \
bing.test bookfinder.test bugmenot.test cia.test cite.test \
cliki.test cnn.test codesearch.test comlaw.test ctan.test \
- currency.test cve.test debbugs.test debcontents.test \
+ currency.test cve.test ddg.test debbugs.test debcontents.test \
deblists.test deblogs.test debpackages.test debpkghome.test \
debpts.test debsec.test debvcsbrowse.test debwiki.test \
deja.test discogs.test dmoz.test duckduckgo.test ebay.test \
@@ -14,16 +14,16 @@ EXTRA_DIST = runtests elviwithouttests README COOKIES W.test \
ixquick.test jamendo.test javasun.test lastfm.test \
leodict.test l1sp.test lsm.test macports.test mathworld.test \
mininova.test musicbrainz.test netbsd.test ntrs.test \
- openbsd.test opensearch.test pasearch.test piratebay.test \
- port.test pgpkeys.test pubmed.test rae.test rfc.test rhyme.test \
- rpmsearch.test scholar.test scicom.test scitopia.test \
- scirus.test scpan.test scroogle.test slashdot.test \
- slinuxdoc.test sourceforge.test springer.test stockquote.test \
- sunonesearch.test thesaurus.test translate.test urban.test \
- w3css.test w3html.test w3link.test w3rdf.test wayback.test \
- webster.test wetandwild.test wikipedia.test woffle.test \
- worldwidescience.test yahoo.test yandex.test youtube.test \
- yubnub.test
+ openbsd.test openports.test opensearch.test pasearch.test \
+ piratebay.test port.test pgpkeys.test pubmed.test rae.test \
+ rfc.test rhyme.test rpmsearch.test scholar.test scicom.test \
+ scitopia.test scirus.test scpan.test scroogle.test \
+ slashdot.test slinuxdoc.test sourceforge.test springer.test \
+ stockquote.tests unonesearch.test thesaurus.test translate.test \
+ urban.test w3css.test w3html.test w3link.test w3rdf.test \
+ wayback.test webster.test wetandwild.test wikipedia.test \
+ woffle.test worldwidescience.test yahoo.test yandex.test \
+ youtube.test yubnub.test
test:
./runtests
diff --git a/test/cablesearch.test b/test/cablesearch.test
new file mode 100644
index 0000000..a6c5d61
--- /dev/null
+++ b/test/cablesearch.test
@@ -0,0 +1,2 @@
+cablesearch america
+Original Source
diff --git a/test/ddg.test b/test/ddg.test
new file mode 100644
index 0000000..ddeaa89
--- /dev/null
+++ b/test/ddg.test
@@ -0,0 +1,3 @@
+ddg foo
+foo at Duck Duck Go
+
diff --git a/test/openports.test b/test/openports.test
new file mode 100644
index 0000000..9378c1d
--- /dev/null
+++ b/test/openports.test
@@ -0,0 +1,2 @@
+openports surfraw
+www.surfraw
--
surfraw - a fast unix command line interface to WWW
More information about the Surfraw-commits
mailing list