This is the new home of the egghelp.org community forum.
All data has been migrated (including user logins/passwords) to a new phpBB version.


For more information, see this announcement post. Click the X in the top right-corner of this box to dismiss this message.

Murf's Google.tcl

Support & discussion of released scripts, and announcements of new releases.
Post Reply
User avatar
ComputerTech
Master
Posts: 399
Joined: Sat Feb 22, 2020 10:29 am
Contact:

Murf's Google.tcl

Post by ComputerTech »

Now tbh, i have 0% knowledge of web retrieving, but i am trying this Script, and even added a putlog to it, but i get no results, any help is much appreciated :D

As far as i currently see, the URL format seem's correct, but i am not 100% sure. :roll:

Code: Select all

#######################################################################
#######################################################################
#                        Google by Murf                               #
#                            v1.0                                     #
#                                                                     #
#  Gets search results from Google.com. Nothing fancy yet, just gets  #
#  however many returns you want.  Idea is based on a script by       #
#  aNa|0Gue, although the code is all new.                            #
#                                                                     #
#                 Latest version @ http://www.blueday.org             #
#                 Comments & Questions to murf@mindless.com           #
#######################################################################
#  Only tested on TCL v8.3 and Egg v1.6x, although I kept the code    #
#  generic enough for TCL v8.0 and probably v1.3 of egg.              #
#######################################################################
#                                                                     #
#  Commands                                                           #
#                                                                     #
#          .google keyword(s) <# of results>                          #
#                                                                     #
#          e.g. .google murf 5                                        #
#                                                                     #
#   Version                                                           #
#      v1.0 Aug 16 2002                                               #
#         -- first version                                            #
#                                                                     #
#        Contact murf@mindless.com for bugs/comments                  #
#        This and other scripts available @ www.blueday.org           #
#######################################################################
#######################################################################

## default number of returns

set google_def_num 4

## max number of returns

set google_max 10

## public bind 

set glpubbind .google

set gl_output "NOTICE $nick"
##########binds######################
bind pub -|- $glpubbind pub_google

##########Procs######################

proc pub_google {nick uhost handle chan search} {
  global gl_ouput
  set gl_output "NOTICE $nick"
  if {[llength $search] == 0} {
     puthelp "$gl_output : Whatcha searchin for fool!?"
     return 0
  }
  set url [google_url $search $nick $chan]
  google_getpage $url
  return 0
}

## Google_url #############################################

## Takes input and parses to set the url, returns the url

proc google_url {search nick chan} {
  global google_def_num google_max gl_output
  set google_num [lindex $search end]
  if {[regexp { [0-9]+} $search match $google_num]} {
     if {$google_num > $google_max} { set google_num $google_max }
     set search [lrange $search 0 [expr {[llength $search] - 2}]]
  } else {
     set google_num $google_def_num
  }
  if {$google_num >= 5} { 
     set gl_output "NOTICE $nick"
  } else {
     set gl_output "PRIVMSG $chan"
  }
  regsub -all { } $search {+} search 
  set url "/search?hl=en&num=$google_num&lr=&ie=ISO-8859-1&q=$search"
  return $url
}

## google_getpage ##########################################

## gets the webpage and parses for the returns

proc google_getpage {url} {
   global gl_output
## Open socket

   if {[catch {set glsock [socket -async www.google.com 80]} sockerr]} {
      puthelp "NOTICE $nick :$sockerr"
      puthelp "NOTICE $nick :Try again later, look out the window till then!"
      close $glsock
      return 0
   }
   puts $glsock "GET $url"
   flush $glsock
   set i 0
   set j 1 
  set glout [gets $glsock]
  while {[regexp {Dissatisfied with your results?} $glout] == 0} {
     set glout [gets $glsock]	
     incr i
     if {$i >= 150} {
        break
     } 
     if {[regexp {#008000>(.*?) - } $glout match gl_result($j)]} {
        #puthelp "$gl_output :$j. http://$gl_result($j)"
        putlog "http://$gl_result($j)"
        incr j
     }
  }
  close $glsock
  return 0
}

putlog "Google v1.0 by murf loaded"
ComputerTech
Post Reply