summaryrefslogtreecommitdiffstats
path: root/google.tcl
diff options
context:
space:
mode:
authorStefan Ritter <xeno@thehappy.de>2011-08-16 10:51:41 +0200
committerStefan Ritter <xeno@thehappy.de>2011-08-16 10:51:41 +0200
commitba46c304bdffdce0b6019a47f6759ce6abbeef90 (patch)
tree40a5b204637cb65c5bb91bd4f26a248ea498e019 /google.tcl
Initial commit
Diffstat (limited to 'google.tcl')
-rw-r--r--google.tcl73
1 files changed, 73 insertions, 0 deletions
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) <string>" }
+ 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) <string>" }
+ 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) <string>" }
+ 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"