egghelp.org community Forum Index
[ egghelp.org home | forum home ]
egghelp.org community
Discussion of eggdrop bots, shell accounts and tcl scripts.
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

urban.tcl

 
Post new topic   Reply to topic    egghelp.org community Forum Index -> Script Support & Releases
View previous topic :: View next topic  
Author Message
starryeyedhaze
Voice


Joined: 29 Oct 2010
Posts: 4

PostPosted: Fri Oct 29, 2010 2:47 pm    Post subject: urban.tcl Reply with quote

I'm stumped. Today the urban dictionary script stopped working. It doesn't look like UD changed their formatting or anything and the regexes in the tcl look fine.


[UD]: Getting defintion for vagina...
[UD]: Word not found or doesn't exist.

I get this error every time no matter what word I choose. I have tested that I can get to UD from my bot's host... just confused. Can anybody help?
Back to top
View user's profile Send private message
starryeyedhaze
Voice


Joined: 29 Oct 2010
Posts: 4

PostPosted: Fri Oct 29, 2010 2:49 pm    Post subject: nevermind. Reply with quote

It looks like urban dictionary changed their single quotes to double quotes. All fixed Smile
Back to top
View user's profile Send private message
Trixar_za
Op


Joined: 18 Nov 2009
Posts: 143
Location: South Africa

PostPosted: Sat Oct 30, 2010 6:29 pm    Post subject: Reply with quote

Thank you for the fix - It's updated on the website now too Smile
_________________
http://www.trixarian.net/Projects
Back to top
View user's profile Send private message Visit poster's website
Anahel
Halfop


Joined: 03 Jul 2009
Posts: 48
Location: Dom!

PostPosted: Sun Oct 31, 2010 10:14 am    Post subject: Reply with quote

could you post fixed code?
Back to top
View user's profile Send private message
Trixar_za
Op


Joined: 18 Nov 2009
Posts: 143
Location: South Africa

PostPosted: Mon Nov 01, 2010 7:44 pm    Post subject: Reply with quote

Code:
# Urban Dictionary Script by Trixar_za
# Based on the Twitter script by Warlord v1.0
# Type in partyline: ".chanset #channel +urban" to enable it.

# Sets the logo
set urban(logo) "\002\[UD\]:\002"

# Sets the user agent
set urban(agent) "Mozilla/4.75 (X11; U; Linux 2.2.17; i586; Nav)"

setudef flag urban

if {[catch {package require http 2.5} e] != 0} {
  set urban(noutf8) 1
  package require http
}

bind pub - !urban proc:urban
bind pub - .urban proc:urban
bind pub - !ud proc:urban
bind pub - .ud proc:urban

# wordwrap code by speechless
proc msg {type dest data} {
   set len [expr {500-[string len ":$::botname $type $dest :\r\n"]}]
   foreach line [wordwrap $data $len] {
      putserv "$type $dest :$line"
   }
}

proc wordwrap {data len} {
   set out {}
   foreach line [split [string trim $data] \n] {
      set curr {}
      set i 0
      foreach word [split [string trim $line]] {
         if {[incr i [string len $word]]>$len} {
            lappend out [join $curr]
            set curr [list $word]
            set i [string len $word]
         } {
            lappend curr $word
         }
         incr i
      }
      if {[llength $curr]} {
         lappend out [join $curr]
      }
   }
   set out
}

proc proc:urban {nick uhand handle chan input} {
  if {[channel get $chan urban]} {
     global urban

    if {![llength [split $input]]} {
       msg "PRIVMSG" $chan "$urban(logo) Please be more specific. Ex: !urban word"
    } else {
       putquick "PRIVMSG $chan :$urban(logo) Getting defintion for $input..."
 
       if {[info exists urban(noutf8)]} {
          set http [::http::config -useragent $urban(agent)]
       } else {
          set http [::http::config -useragent $urban(agent) -urlencoding "utf-8"]
       }

       foreach word [split $input] {
          lappend query [lindex [split [http::formatQuery a $word] =] 1]
       }

       catch { set http [::http::geturl "http://www.urbandictionary.com/define.php?term=[join $query %20]" -timeout 10000]} error
 
       if {![string match -nocase "::http::*" $error]} {
          msg "PRIVMSG" $chan "$urban(logo) [string totitle [string map {"\n" " | "} $error]] \( $query \)"
          return 0
       }

       if {![string equal -nocase [::http::status $http] "ok"]} {
          msg "PRIVMSG" $chan "$urban(logo) [string totitle [::http::status $http]] \( $query \)"
          return 0
       }

       set html [::http::data $http]

       # Clean up :P
       regsub -all {\n} $html { } html
       regsub -all {\t} $html { } html
       regsub -all {<br/>} $html { } html
       regsub -all {&nbsp;} $html { } html
       regsub -all {    } $html { } html
       regsub -all {   } $html { } html
       regsub -all {  } $html { } html
       regsub -all {<a.+?>} $html {} html
       regsub -all {</a>} $html {} html
       regsub -all {<strong.+?>} $html {} html
       regsub -all {</strong>} $html {} html
       regsub -all {—} $html {-} html
       regsub -all {&gt;} $html {>} html
       regsub -all {&lt;} $html {<} html
       regsub -all {&amp;} $html {\&} html
       regsub -all {&times;} $html {*} html
       regsub -all {(?:\x91|\x92|’|‘|')} $html {'} html
       regsub -all {(?:\x93|\x94|“|”|&quot;)} $html {"} html
       regsub -all {×} $html {x} html
       regsub -all {(?:<!\[CDATA\[)} $html {} html

       if {[regexp -- {<div class="definition">(.+?)</div>} $html - uddef]} {
          set uddef [string trim $uddef]
       }

       if {[regexp -- {<div class="example"></div>} $html - -]} {
          set uddex "None"
       } elseif {[regexp -- {<div class="example">(.+?)</div>} $html - uddex] && $uddex != "None"} {
          set uddex [string trim $uddex]
       }

       if {[info exists uddef]} {
          msg "PRIVMSG" $chan "$urban(logo) \002Definition:\002 $uddef"
          if {$uddex != "None"} {
             msg "PRIVMSG" $chan "$urban(logo) \002Example:\002 $uddex"
          }
       } else {
          msg "PRIVMSG" $chan "$urban(logo) Word not found or doesn't exist."
       }
    }
  }
}

putlog "Urban Dictionary Script by Trixar_za Loaded"


I'm still trying to fix my website. The IP got changed without notice and I only realised it now...
_________________
http://www.trixarian.net/Projects
Back to top
View user's profile Send private message Visit poster's website
anotheruser
Voice


Joined: 14 Sep 2005
Posts: 8

PostPosted: Sun Oct 07, 2012 3:59 pm    Post subject: Reply with quote

Code:
bind pub - !ud ud

proc ud {nick host hand chan arg} {
package require http 
   
  set arg [string map { " " "+" } $arg]
  puts $arg
  if {[string length $arg] != 0 } { set url "http://www.urbandictionary.com/define.php?term=$arg"
  } else {
    set url "http://www.urbandictionary.com/random.php"
    set page [http::data [http::geturl $url]]
    regexp {href="(.*?)"} $page => url
  }
  set page [http::data [http::geturl $url]]
  regexp {'word'>(.*?)<\/td>} $page => word
  regexp {definition">(.*?)(<br\/>|<\/div>)} $page => deff
  regexp {author">(.*?)<\/a>} $page => author
  regexp {example">(.*?)</div>} $page => example
  regexp {'not_defined_yet'>} $page => notfound
  set deff [string map {&quot; ""} $deff]
  set example [string map {&quot; "\""} $example]
  regsub -all {(<.*?>)} $example "" example
  if {[info exists deff]} {
    putserv "PRIVMSG $chan :Word: [string trim $word]"
    putserv "PRIVMSG $chan :Definition: [string trim $deff]" 
    if {[info exists example]} { putserv "PRIVMSG $chan :Example: [string trim $example]" }
    putserv "PRIVMSG $chan :By: ([string trim $author]) Link: $url"
  }
}

putlog "Urban Dictionary"


For those still looking here is a working update
Source: http://www.hawkee.com/snippet/9545/

This is not my work but thanks to the original poster/writer
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    egghelp.org community Forum Index -> Script Support & Releases All times are GMT - 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Forum hosting provided by Reverse.net

Powered by phpBB © 2001, 2005 phpBB Group
subGreen style by ktauber