From ba46c304bdffdce0b6019a47f6759ce6abbeef90 Mon Sep 17 00:00:00 2001 From: Stefan Ritter Date: Tue, 16 Aug 2011 10:51:41 +0200 Subject: Initial commit --- google.tcl | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 google.tcl (limited to 'google.tcl') diff --git a/google.tcl b/google.tcl new file mode 100644 index 0000000..d37126b --- /dev/null +++ b/google.tcl @@ -0,0 +1,73 @@ +#google.tcl v0.3 - Returns the value of the "I feel lucky" function on google for websites and images via triggers +#based on scripts by aNa|0Gue + +set google(ver) "0.3" + +#Simulate a browser, ie: Mozilla +set google(agent) "MSIE 6.0" + +#google search trigger +set google(g_cmd) "!google" + +#google uk search trigger +set google(guk_cmd) "!googleuk" + +#google image search trigger +set google(gi_cmd) "!image" + +#google prefix +set google(prefix) "* Google:" + +package require http + +bind pub - $google(g_cmd) pub:google +#bind pub - $google(guk_cmd) pub:googleuk +#bind pub - $google(gi_cmd) pub:image + +proc pub:google { nick uhost handle channel arg } { + +} + +proc google:go { url arg } { + global google + regsub -all " " $arg "+" query + set lookup "$url$query" + set token [http::config -useragent $google(agent)] + set token [http::geturl $lookup] + puts stderr "" + upvar #0 $token state + set max 0 + foreach {name value} $state(meta) { + if {[regexp -nocase ^location$ $name]} { + set newurl [string trim $value] + regsub -all "btnI=&" $url "" url + return "$newurl More: $url$query" + } + } +} + +proc pub:google { nick uhost handle channel arg } { + global google + if {[llength $arg]==0} { putserv "NOTICE $nick :Usage: $google(g_cmd) " } + set url "http://www.google.de/search?btnI=&q=" + set output [google:go $url $arg] + putserv "PRIVMSG $channel :$nick, $google(prefix) $output" +} + +proc pub:googleuk { nick uhost handle channel arg } { + global google + if {[llength $arg]==0} { putserv "NOTICE $nick :Usage: $google(guk_cmd) " } + set url "http://www.google.co.uk/search?btnI=&q=" + set output [google:go $url $arg] + putserv "PRIVMSG $channel :$nick, $google(prefix) $output" +} + +proc pub:image { nick uhost handle channel arg } { + global google + if {[llength $arg]==0} { putserv "NOTICE $nick :Usage: $google(gi_cmd) " } + set url "http://images.google.com/images?btnI=&q=" + set output [google:go $url $arg] + putserv "PRIVMSG $channel :$nick, $google(prefix) $output" +} + +putlog "google.tcl $google(ver) loaded" -- cgit v1.2.3