From michael.neubig@gmail.com Fri Oct 21 18:02:19 2005
Received: via dmail-2003(12) for +Mailbox; Fri, 21 Oct 2005 18:02:19 -0400
	(EDT)
Return-Path: <michael.neubig@gmail.com>
Received: from CONVERSION-DAEMON.email.med.yale.edu by email.med.yale.edu
	(PMDF V6.2-X17 #31085) id <0IOQ0N601D7UZ1@email.med.yale.edu> for
	tmm46@email.med.yale.edu (ORCPT tmm46@email.med.yale.edu); Fri, 21 Oct 2005
	18:02:18 -0400 (EDT)
Received: from mr4.its.yale.edu (mr4.its.yale.edu [130.132.50.10]) by
	email.med.yale.edu (PMDF V6.2-X17 #31085) with ESMTPS id
	<0IOQ0N660D7T43@email.med.yale.edu> for tmm46@email.med.yale.edu (ORCPT
	tmm46@email.med.yale.edu); Fri, 21 Oct 2005 18:02:17 -0400 (EDT)
Received: from xproxy.gmail.com (xproxy.gmail.com [66.249.82.192]) by
	mr4.its.yale.edu (8.12.11/8.12.11) with ESMTP id j9LM2H5q016703	for
	<tom.morse@yale.edu>; Fri, 21 Oct 2005 18:02:17 -0400
Received: by xproxy.gmail.com with SMTP id h26so510468wxd for
	<tom.morse@yale.edu>; Fri, 21 Oct 2005 15:02:17 -0700 (PDT)
Received: by 10.70.8.3 with SMTP id 3mr2042154wxh; Fri, 21 Oct 2005
	15:02:16 -0700 (PDT)
Received: by 10.70.87.12 with HTTP; Fri, 21 Oct 2005 15:02:16 -0700 (PDT)
Date: Fri, 21 Oct 2005 15:02:16 -0700
From: m n <michael.neubig@gmail.com>
Subject: Re: [Fwd: snippet for google'n Python and NEURON docs]
In-reply-to: <43594701.7050301@yale.edu>
To: Michael Hines <michael.hines@yale.edu>
Cc: Ted Carnevale <ted.carnevale@yale.edu>, Tom Morse <tom.morse@yale.edu>
Message-id: <e553fefa0510211502l48f53f55t359cd342c87efad4@mail.gmail.com>
MIME-version: 1.0
Content-type: text/plain; charset=ISO-8859-1
Content-disposition: inline
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com;
	h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references;
	b=Rm1VlWwOWcynlweDYrdtCoiak7SMuHpgfY411lHUBskZAr08aZgyJDzB/SLSqvg7cFHe41Een7j1g0bYQGyVmClJOfFeX6kBfiQCQ+z3QYW1jXp7ovOZwprIlqOqKcNijgUcTGqZzRERxB7ZTTBE21+XJ7nXSmc18CPfRl1teGw=
X-YaleITSMailFilter: Version 1.2b (attachment(s) not renamed)
X-Yale-Not-Spam: For more info see:
	http://www.yale.edu/email/spam/content.html
X-Yale-Spam-Score: (0.022)
X-Scanned-By: MIMEDefang 2.52 on 130.132.50.10
References: <43594701.7050301@yale.edu>
X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on
	ninja.med.yale.edu  (ITS-Med - Yale University)
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_BY_IP,
	SARE_MSGID_LONG40 autolearn=no version=3.0.3
X-Evolution-Source: imap://tmm46@email.med.yale.edu/
Content-Transfer-Encoding: 8bit

fyi update.

Multi-site search implemented. Refactored various.

Because multi-site is not documented on the Google website, there is a
chance that Google does not support it, which means multi-site may
break in the future.

At present, only 1 single-character flag is looked for in the
Keywords, and it must occur at the beginning.  It is still possible to
search using selected text as keywords.

=====================
My current snippet.

no flag - search only docs.python.org

t -- Tutorial
l -- Library Reference
m -- Macintosh Library Modules
r -- Reference Manual
e -- Extending and Embedding
a -- Python/C API

A -- (All) multi-search all 3 sites
B -- (Both) multi-search docs and pipermail at python.org
M -- (Mail) search only email archives (all lists) at python.org/pipermail

How to use:
-- unwrap into a single line
-- delete all spaces except for the one used to define 'spc'

javascript:spc='
';E='http://www.google.com/search?q=';S='site:docs.python.org';PM='site:python.org/pipermail';D='';Q=document.getSelection();if(!Q){void(Q=prompt(S+'\n\n.....(text_selection_was_empty)',''))};K=Q.split(spc);if(K[0].length==1){F=K[0];Q=K.slice(1).join(spc);switch(F){case'a':D='api';break;case'e':D='ext';break;case'l':D='lib';break;case'm':D='mac';break;case'r':D='ref';break;case't':D='tut';break;case'A':S=S+'++OR++'+PM;break;case'B':S=S+'++OR++'+PM;break;case'M':S=PM+'';break;}};if(D){D='/'+D};if(Q){Q='+++++'+escape(Q)};location.href=E+S+D+Q

=======================
A template for customization.

How to use:
-- modifiy cases as desired
-- delete those unused
-- unwrap into a single line
-- delete all spaces except for the one used to define 'spc'

# spc - single space
# E   - Engine
# S   - Site(s)
# D   - Directory
# Q   - Query terms
# F   - Flag
# PM  - Python Mail archive
javascript:
spc=' ';
E='http://www.google.com/search?q=';
S='site:docs.python.org';
PM='site:python.org/pipermail';
D='';
Q=document.getSelection();
if(!Q){void(Q=prompt(S+'\n\n.....(text_selection_was_empty)',''))};
K=Q.split(spc);
if(K[0].length==1){
 F=K[0];
 Q=K.slice(1).join(spc);
 switch(F){
 case'a':D='api';break;
 case'b':D='';break;
 case'c':D='';break;
 case'd':D='';break;
 case'e':D='ext';break;
 case'f':D='';break;
 case'g':D='';break;
 case'h':D='';break;
 case'i':D='';break;
 case'j':D='';break;
 case'k':D='';break;
 case'l':D='lib';break;
 case'm':D='mac';break;
 case'n':D='';break;
 case'o':D='';break;
 case'p':D='';break;
 case'q':D='';break;
 case'r':D='ref';break;
 case's':D='';break;
 case't':D='tut';break;
 case'u':D='';break;
 case'v':D='';break;
 case'w':D='';break;
 case'x':D='';break;
 case'y':D='';break;
 case'z':D='';break;
 case'A':S=S+'++OR++'+PM;break;
 case'B':S=S+'++OR++'+PM;break;
 case'C':S=S;break;
 case'D':S=S;break;
 case'E':S=S;break;
 case'F':S=S;break;
 case'G':S=S;break;
 case'H':S=S;break;
 case'I':S=S;break;
 case'J':S=S;break;
 case'K':S=S;break;
 case'L':S=S;break;
 case'M':S=PM+'';break;
 case'N':S=S;break;
 case'O':S=S;break;
 case'P':S=S;break;
 case'Q':S=S;break;
 case'R':S=S;break;
 case'S':S=S;break;
 case'T':S=S;break;
 case'U':S=S;break;
 case'V':S=S;break;
 case'W':S=S;break;
 case'X':S=S;break;
 case'Y':S=S;break;
 case'Z':S=S;break;
}};
if(D){D='/'+D};
if(Q){Q='+++++'+escape(Q)};
location.href=E+S+D+Q

