Bowl of petunias
Joined: Aug 2010
Posts: 2 |
Hi thats easy as I found 2 for you from FordLawnmowerFirst: Yes I know I already had a google search post. It has been trunicated to just a dialog search because I felt the dialog was slowing down the bot search and vise-versa. This script was written from scratch to take advantage of some new features of googles api. *Now: This script will do web, local, video, news, books, images, and patent searches. Triggers are as follows: (!trigger for notice user - @trigger for message channel.) !google = web search !glocal = local search !gvideo = video search !gnews = news search !gbooks = book search !gimages = image search !gpatent = patent search !ghelp = trigger/syntax help /google alias flags are as follows: /google -local = local search /google -video = video search /google -news = news search /google -books = book search /google -images = image search /google -patent = patent search Getting the script running: First: Copy this code, paste it into a new remote and save it with a unique filename. Second: Review the Simple Setup portion of the script and make any changes to the script you feel necessary. Third: Right click the channel or status, scroll to Advanced Google and turn on the script. Last: Go to each channel that you want to run this script in and type +google .(you must have ops or higher to activate the script in a channel)(*Note* -google will deactivate the script in a channel.) Example Output: 20:06:14 <Ford> @gnews final 4 20:06:15 <Mind|Force> Searching Google........ 20:06:16 <Mind|Force> Google Butler did it beats KSU 63-56 to make Final Four http://tinyurl.com/yekmz79 20:06:17 <Mind|Force> Google Butler Goes Home to Indianapolis for Final Four http://tinyurl.com/yd5f2e9 20:06:17 <Mind|Force> Google But on Saturday Butler earned another title: Final Four team. The fifth-seeded Bulldogs defeated second-seeded Kansas State 63-56 in Saturday's West ... http://tinyurl.com/yak2grf 20:06:19 <Mind|Force> Google Butler Beats Kansas State Is First Team to Reach Final Four http://tinyurl.com/ybesm4b;Advanced Google Search by Ford_Lawnmower irc.mindforge.org #USA-Chat
alias -l GetAdvancedGoogle {
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;Start of Simple Setup;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;Change %MaxResults(below) to get a different number of results.(must be a number between 1 and 9)
var %MaxResults 4
;;Change %GoogleLogo(below) to change the logo at the start of each line.(You cannot remove this, only change)
var %GoogleLogo 12G04o08o14g09l04e
;;Change %NameColor(below) to change the color of the results description.(You cannot remove this, only change)
var %NameColor 04
;;Change %LinkColor(below) to change the color of the results link.(You cannot remove this, only change)
var %LinkColor
;;Change %UseTinyURL(below) if you don't want links converted to tinyurl. Valid numbers are: 1 for convert and 0 for don't convert.
var %UseTinyURL 1
;;Change %CountryCode(below) if you want your searches in a different language. Look here if you don't know your code -->> http://xml.coverpages.org/country3166.html
var %CountryCode en
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;Do not leave any of these variables blank!!!;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;End of Setup;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
$1-2 Searching Google........
var %sockname $+(AdvancedGoogle,$network,$2,$ticks)
sockopen %sockname ajax.googleapis.com 80
sockmark %sockname $1-2 %MaxResults %GoogleLogo %NameColor %LinkColor %UseTinyURL $+(/ajax/services/search/,$3,?v=1.0&rsz=large&q=,$urlencode($4-),&ql=,%CountryCode,&lr=lang_,%CountryCode)
}
menu Channel,Status {
.$iif($group(#AdvancedGoogle) == On,$style(1)) AdvancedGoogle Trigger
..$iif($group(#AdvancedGoogle) == On,$style(2)) On: .enable #AdvancedGoogle
..$iif($group(#AdvancedGoogle) == Off,$style(2)) Off: .disable #AdvancedGoogle
}
#AdvancedGoogle on
On $*:Text:/^(\+|-|!|@)G(oogle|local|video|news|books|images|patent|help).*/Si:#: {
var %action $regml(1), %type $regml(2)
if (%action isin +-) && ($regex($nick($chan,$nick).pnick,/(!|~|&|@)/)) {
if (%action == +) {
if ($istok(%AdvancedGoogleChanList,$+($network,$chan),32)) { .msg $chan $nick $chan is already running the AdvancedGoogle script }
else {
.enable #AdvancedGoogle
Set %AdvancedGoogleChanList $addtok(%AdvancedGoogleChanList,$+($network,$chan),32)
.msg $chan $nick has activated the AdvancedGoogle script for $chan .
}
}
else {
if (!$istok(%AdvancedGoogleChanList,$+($network,$chan),32)) { .msg $chan $nick $chan is not running the AdvancedGoogle script }
else {
Set %AdvancedGoogleChanList $remtok(%AdvancedGoogleChanList,$+($network,$chan),1,32)
.msg $chan $nick has deactivated the AdvancedGoogle script for $chan .
}
}
}
elseif (!$timer($+(AdvancedGoogle,$network,$nick))) && ($istok(%AdvancedGoogleChanList,$+($network,$chan),32)) {
.timer $+ $+(AdvancedGoogle,$network,$nick) 1 6 noop
var %method $iif(%action == !,.notice $nick,$iif($regex($nick($chan,$nick).pnick,/(!|~|&|@|%)/),.msg $chan,.notice $nick))
if (%type == help) || (!$2) { AdvancedGoogleHelp %method %action }
else { GetAdvancedGoogle %method $replace(%type,oogle,web) $2- }
}
}
#AdvancedGoogle end
alias Google {
if ($istok(-local -video -news -books -images -patent,$1,32)) { GetAdvancedGoogle echo -a $mid($1,2) $2- }
else { GetAdvancedGoogle echo -a web $1- }
}
On *:sockopen:AdvancedGoogle*: {
if (!$sockerr) {
hmake $sockname
hadd $sockname max $gettok($sock($sockname).mark,3,32)
hadd $sockname urlcount 1
hadd $sockname itemcount 1
sockwrite -nt $sockname GET $gettok($sock($sockname).mark,8,32) HTTP/1.1
sockwrite -n $sockname Host: ajax.googleapis.com
sockwrite -n $sockname User-Agent: Opera 9.6
sockwrite -n $sockname $crlf
}
else { echo -st Socket Error $nopath($script) | sockclose $sockname | return }
}
On *:sockread:AdvancedGoogle*: {
if ($sockerr) { echo -st Socket Error $nopath($script) | sockclose $sockname | return }
else {
sockread &AdvancedGoogle
var %count 1
while ($hget($sockname,max) >= $hget($sockname,urlcount)) && ($bintween(&AdvancedGoogle,"url":",",%count)) {
hadd $sockname $+(url,$hget($sockname,urlcount)) $dehex($ifmatch)
hinc $sockname urlcount
inc %count
}
%count = 1
while ($hget($sockname,max) >= $hget($sockname,itemcount)) && ($bintween(&AdvancedGoogle,"content":",",%count) || $bintween(&AdvancedGoogle,"titlenoformatting":",",%count)) {
hadd $sockname $+(item,$hget($sockname,itemcount)) $replace($fix&#($dehex($ifmatch)),<b>,,</b>,)
hinc $sockname itemcount
inc %count
}
if ($matchtok($hget($sockname,itemcount) $hget($sockname,urlcount),$hget($sockname,max),0,32) > 1) || ($bintween(&AdvancedGoogle,"responseStatus",200,1)) { clearhash }
}
}
On *:sockread:AdvancedGoogle*: { hfree $+(AdvancedGoogle,$sockname) }
alias -l clearhash {
tokenize 32 $sock($sockname).mark
var %start 1, %matches $hfind($sockname,item[1-9],0,r)
if (%matches) {
while (%start <= %matches) {
if ($7) { Tiny $1-2 $hget($sockname,$+(url,%start)) $4 $+($5,$hget($sockname,$+(item,%start))) $+(,$6,$hget($sockname,$+(url,%start)),) }
else { $1-2 $4 $+($5,$hget($sockname,$+(item,%start))) $+(,$6,$hget($sockname,$+(url,%start)),) }
inc %start
}
}
else { $1-2 $4 Sorry, No results were found for your search. If you are having trouble type !ghelp }
hfree $sockname
sockclose $sockname
return
}
alias -l AdvancedGoogleHelp {
$1-2 Google Triggers are: $+($3,google) $+($3,glocal) $+($3,gvideo) $+($3,gnews) $+($3,gbooks) $+($3,gimages) $+($3,gpatent)
$1-2 Google Searches must include at least one search word: Example $+($3,gnews) Obama
}
alias -l urlencode return $regsubex($1-,/([^a-z0-9])/ig,% $+ $base($asc(\t),10,16,2))
alias -l fix&# { return $replace($regsubex($1-,/&#([0-9]{2});/g,$chr(\t)),",",&,&) }
alias -l bintween {
var %count = 1, %mark = 0, %mark2 = 0
while (%count <= $4) {
if ($bfind($1, %mark2, $2).text) {
%mark = $calc($bfind($1, %mark2, $2).text + $len($2))
if ($bfind($1, %mark, $3).text) {
%mark2 = $bfind($1, %mark, $3).text
}
else { return 0 }
}
else { return 0 }
inc %count
}
return $bvar($1, $iif(%mark > 0,%mark,1), $calc(%mark2 - %mark)).text
}
alias -l dehex { return $regsubex($1-,/\\u([a-f0-9]{4})|\%([a-f0-9]{2})/gi,$chr($base(\t,16,10))) }
alias -l Tiny {
var %sockname $+(GTinyUrl,$network,$ticks,$r(1,$ticks))
sockopen %sockname tinyurl.com 80
sockmark %sockname $1-2 $+(/create.php?url=,$3) $3 $4-
}
On *:sockopen:GTinyUrl*: {
if (!$sockerr) {
sockwrite -nt $sockname GET $gettok($sock($sockname).mark,3,32) HTTP/1.0
sockwrite -n $sockname Host: tinyurl.com
sockwrite -n $sockname $crlf
}
else { echo -st Socket Error $nopath($script) | sockclose $sockname | return }
}
On *:sockread:GTinyUrl*: {
if ($sockerr) { echo -st Socket Error $nopath($script) | sockclose $sockname | return }
else {
var %Tiny | sockread %Tiny
if ($regex(%Tiny,/<blockquote><b>(.*)<\/b><br><small>/i)) {
tokenize 32 $sock($sockname).mark
$1-2 $replace($5-,$4,$regml(1))
sockclose $sockname
return
}
}
}
On *:Unload: { unset %AdvancedGoogleChanList* | hfree -w AdvancedGoogle* } Google SearchThis snippet will retrieve the first search result for a query off of Google and execute a command on it. ; Tye @ DALnet, Undernet ; tye at mirc . net ; ; This snippet will retrieve the first search result for a query off of Google and execute a command on it. ; Copy this code into your remotes (Alt+R) ; ; /googlesearch alias query ; Results will be passed to command alias googlesearch { var %x = 1 while ($sock($+(google,%x))) inc %x sockopen $+(google,%x) www.google.com 80 sockmark $+(google,%x) $1- } ON *:SOCKOPEN:google*: { if ($sockerr) { var %cmd = $gettok($sock($sockname).mark,1,32) %cmd Socket error $sockerr return } sockwrite -n $sockname GET $+(/search?q=,$phex($gettok($sock($sockname).mark,2-,32)),&btnI=I%27m+Feeling+Lucky HTTP/1.0) sockwrite $sockname $crlf } on *:SOCKREAD:google*: { var %f, %cmd, %result %cmd = $gettok($sock($sockname).mark,1,32) if ($sockerr) { %cmd Socket error $sockerr return } while (1) { sockread %f if (!$sockbr) break if (<A HREF="*">here</a>. iswm %f) { %result = $gettok(%f,2,34) sockclose $sockname break } elseif (HTTP/1.0 200 OK = %f) { %result = There are no results. sockclose $sockname break } } if (%result) { %cmd %result } } alias google { googlesearch google2 $1- } alias google2 { echo $colour(info) -a *** Google search: $1- } ; !google query in a channel will message the channel with the results. alias google3 { msg %google3 Google search: $1- | unset %google3 } on *:TEXT:!google *:#: { set %google3 $chan googlesearch google3 $2- } ; Convert some text to hexadecimal form alias phex { var %x = 1, %s = $len($1), %r, %w while (%x <= %s) { %w = $mid($1,%x,1) if ($asc(%w) = 32) { %r = $+(%r,+) } elseif ($asc(%w) !isnum 65-90) && ($asc(%w) !isnum 97-122) && ($asc(%w) !isnum 48-57) { %r = $+(%r,%,$base($asc(%w),10,16,2)) } else { %r = $+(%r,%w) } inc %x } return %r }
|