IRC in the browser
Chat from anywhere and never miss a message. Stay connected even while you’re offline.
More info at https://irccloud.com/
Shift+Right Click on the Windows 7 taskbar gives you the old fashioned context menu
(via IRC)
Enjoy
After doing a basic Bing search TCL script, I’ve made a new TCL (Tool command language) script. This version returns the actual results from Bing to the channel.
I don’t have much experience with TCL scripting but if you have found a better way to do the searching or parsing, please let me know.
The script can be used in your eggdrop or windrop.
bing.tcl :
# ----------------------------------
# Bing.com search script version 0.1
# teusje.wordpress.com
#
# v0.1
# Returns the results into the chan
# ----------------------------------
# ------------
# START CONFIG
# ------------
bind pub - !bing pub_bing
# Uncomment if you want to play it dirty
# bind pub - !search pub_bing
# bind pub - !find pub_bing
# bind pub - !google pub_bing
set bing(MAXRRESULTS) 3
set bing(deny_CHANS) {
#channel1
#channel2
}
# ------------
# END CONFIG
# ------------
# ------------
# Do not change anymore
# ------------
set bing(VERSION) 0.1
package require http
proc html_replace {quotes} {
global bing
regsub -all {‘|‘} $quotes "\`" quotes
regsub -all {’|’} $quotes "\'" quotes
# remove bing's <strong></strong> in description
regsub -all -nocase -- {<strong>|</strong>} $quotes "" quotes
foreach index [lsort -decreasing [regexp -all -indices -inline {&#[0-9]+;} $quotes]] {
set binary_value [string range $quotes [lindex $index 0] [lindex $index 1]]
regexp {[0-9]+} $binary_value match
set quotes [string replace $quotes [lindex $index 0] [lindex $index 1] [format %c $match]]
}
return $quotes
}
proc pub_bing {nick userhost handle channel rest} {
global bing
if {[lsearch [string tolower $bing(deny_CHANS)] [string tolower $channel]] != "-1"} {
return 0
}
if {$rest==""} {
putserv "PRIVMSG $channel :Syntax: !bing <search_terms>"
return 0
}
search_bing $channel $bing(MAXRRESULTS) $rest
}
proc search_bing {channel results search} {
global bing
regsub -all " " $search "+" search
set url http://www.bing.com/search?q=$search
http::config -useragent "Mozilla/5.0"
set conn [http::geturl $url -headers "Referer http://www.bing.com"]
set data [http::data $conn]
set count 0
regsub -all {<b>|</b>} $data \002 data
foreach {match parens1 parens2} [regexp -all -inline -- {<div class="sb_tlst">.*?<h3>.*?<a href="(.*?)" .*?>(.*?)</a>.*?</h3>} $data] {
set parens2 [html_replace $parens2]
if {$count==$bing(MAXRRESULTS)} { break }
incr count 1
if {$bing(MAXRRESULTS)>1} {
putserv "PRIVMSG $channel :Result($count): \002$parens1\002 ($parens2)"
} else {
putserv "PRIVMSG $channel :Result: \002$parens1\002 ($parens)"
break
}
}
if {$count!=$bing(MAXRRESULTS)} {
putserv "PRIVMSG $channel : \002$count\002 results found"
}
}
putlog "Bing script $bing(VERSION) - teusje.wordpress.com"
Usage:
<nickname> !bing powershell <bot> Result(1): http://blogs.msdn.com/powershell/ (Windows PowerShell Blog) <bot> Result(2): http://www.pwrshell.net/ (Free PowerShell tutorials, scripts, resources and files) <bot> Result(3): http://blogs.technet.com/powershell (PowerShell sur Technet et en français)
Enjoy!
# ————
# START CONFIG
# ————
bind pub – !bing pub_bing
# Uncomment if you want to play it dirty
# bind pub – !search pub_bing
# bind pub – !find pub_bing
# bind pub – !google pub_bing
set bing(MAXRRESULTS) 3
set bing(deny_CHANS) {
#channel1
#channel2
}
# ————
# END CONFIG
# ————
# ————
# Do not change anymore
# ————
set bing(VERSION) 0.1
package require http
proc html_replace {quotes} {
global bing
regsub -all {‘|‘} $quotes “\`” quotes
regsub -all {’|’} $quotes “\’” quotes
# remove bing’s <strong></strong> in description
regsub -all -nocase — {<strong>|</strong>} $quotes “” quotes
foreach index [lsort -decreasing [regexp -all -indices -inline {&#[0-9]+;} $quotes]] {
set binary_value [string range $quotes [lindex $index 0] [lindex $index 1]]
regexp {[0-9]+} $binary_value match
set quotes [string replace $quotes [lindex $index 0] [lindex $index 1] [format %c $match]]
}
return $quotes
}
proc pub_bing {nick userhost handle channel rest} {
global bing
if {[lsearch [string tolower $bing(deny_CHANS)] [string tolower $channel]] != “-1″} {
return 0
}
if {$rest==”"} {
putserv “PRIVMSG $channel :Syntax: !bing <search_terms>”
return 0
}
search_bing $channel $bing(MAXRRESULTS) $rest
}
proc search_bing {channel results search} {
global bing
regsub -all ” ” $search “+” search
set url http://www.bing.com/search?q=$search
http::config -useragent “Mozilla/5.0″
set conn [http::geturl $url -headers "Referer http://www.bing.com"]
set data [http::data $conn]
set count 0
regsub -all {<b>|</b>} $data 02 data
foreach {match parens1 parens2} [regexp -all -inline -- {<div class="sb_tlst">.*?<h3>.*?<a href="(.*?)" .*?>(.*?)</a>.*?</h3>} $data] {
set parens2 [html_replace $parens2]
if {$count==$bing(MAXRRESULTS)} { break }
incr count 1
if {$bing(MAXRRESULTS)>1} {
putserv “PRIVMSG $channel :Result($count): 02$parens102 ($parens2)”
} else {
putserv “PRIVMSG $channel :Result: 02$parens102 ($parens)”
break
}
}
if {$count!=$bing(MAXRRESULTS)} {
putserv “PRIVMSG $channel : 02$count02 results found”
}
}
putlog “Bing script $bing(VERSION) – teusje.wordpress.com”
I made some modifications on another script I found on the web.
This script can be used in your eggdrop.
bing.tcl :
############################################################################
#
# basic Bing.com search script
# teusje.wordpress.com
#
package require http
bind pub - !bing pub:bing
set agent "Mozilla"
proc pub:bing { nick uhost handle channel arg } {
global agent
if {[llength $arg]==0} {
putserv "PRIVMSG $channel :Syntax !bing <keywords>"
} else {
set query "http://www.bing.com/search?q="
for { set index 0 } { $index<[llength $arg] } { incr index } {
set query "$query[lindex $arg $index]"
if {$index<[llength $arg]-1} then {
set query "$query+"
}
}
putserv "PRIVMSG $channel :$query"
set token [http::config -useragent $agent]
set token [http::geturl $query]
puts stderr ""
upvar #0 $token state
set max 0
foreach {name value} $state(meta) {
if {[regexp -nocase ^location$ $name]} {
set newurl [string trim $value]
putserv "PRIVMSG $channel :$newurl"
}
}
}
}
putlog "bing loaded"
Usage:
<nickname> !bing winking.be <EggDropBot> http://www.bing.com/search?q=winking.be