#!/usr/bin/python2.2
"""
ADTRT: Aaron's Do The Right Thing
A CGI script to get you where you want to go.
For IE5/Mac Users: http://www.macslash.com/articles/01/10/10/1828238.shtml
Your Magic String: http://www.aaronsw.com/2002/dtrt.cgi?secret=one&q=%s
Concept by Gerald: http://impressive.net/services/dtrt/
Implementation by: Aaron Swartz
Special Thanks To: HTTP GET, and those who build services with it
"""
__license__ = "(C) 2002 Aaron Swartz. This is free software."
mapping = {
'amazon:': 'http://www.amazon.com/exec/obidos/external-search?keyword=',
'define:': 'http://dictionary.com/cgi-bin/dict.pl?term=',
'd:': 'http://dictionary.com/cgi-bin/dict.pl?term=',
'display:': 'http://www.aaronsw.com/2002/display.cgi?t=',
'dtrt:': 'http://impressive.net/services/dtrt/dtrt?',
'mid:':'http://www.aaronsw.com/2002/mid.cgi?q=',
'pgp:':'http://pgp.dtype.org:11371/pks/lookup?op=vindex&search=',
'gpg:':'http://search.keyserver.net:11371/pks/lookup?op=vindex&search=',
'ag:':'http://audiogalaxy.com/list/searches.php?searchStr=',
'archive:':'http://web.archive.org/web/',
'validate:':'http://validator.w3.org/check?uri=',
'v:':'http://validator.w3.org/check?uri=',
'p:':'http://plexnames.com/uri?plexname=',
'catalogs:':'http://catalogs.google.com/catalogs?q=',
'news:':'http://news.google.com/news?q=',
'groups:':'http://groups.google.com/groups?q=',
'directory:':'http://www.google.com/search?q=',
'images:':'http://images.google.com/images?q=',
'?':'http://www.google.com/search?btnI=1&q=',
'':"http://www.google.com/search?q="
}
prefixes = mapping.keys(); prefixes.sort(lambda x,y: cmp(len(y), len(x)))
def dtrt(q):
for p in prefixes:
l = len(p)
if q[:l] == p: return mapping[p] + q[l:]
if __name__ == '__main__':
import cgi, cgitb
cgitb.enable()
c = cgi.FieldStorage()
if 'q' not in c.keys():
r = 'http://www.aaronsw.com/2002/dtrt'
else:
q = c['q'].value
r = dtrt(q)
print 'Status: 302 Helpful Redirect'
print 'Content-Type: text/html'
print 'Location: ' + r
print
print 'Wherever you go there you are.'