[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