Welcome, guest | Sign In | My Account | Store | Cart
--------------------------------------------------------------------------------

 package require http
 package require htmlparse
 package require ncgi
 namespace eval ::dict.leo.org {
    variable table ""
    proc parse {tag close options body} {
	variable TD
	variable table
	switch -- $close$tag {
	    TD     {set TD ""}
	    /TD    {if {[llength $TD]} {lappend table [string trim $TD]}}
	    default {append TD [string map {  { }} $body]}
	}
    }
    proc query {query} {
	variable table
	set url "http://dict.leo.org/?search=[::ncgi::encode $query]"
	set tok [::http::geturl $url]
	foreach line [split [::http::data $tok] "\n"] {
	    if {[string match "*search results*" $line]} break
	}
	::http::cleanup $tok
	set table ""
	::htmlparse::parse -cmd ::dict.leo.org::parse $line
	return $table
    }
 }
 proc max {a b} {expr {$a > $b ? $a : $b}}
 proc main {argv} {
    set table [dict.leo.org::query [join $argv]]
    set max 0
    foreach c $table {set max [max $max [string length $c]]}
    set sep [string repeat = $max]
    set table [linsert $table 0 " English" " Deutsch" $sep $sep]
    foreach {c1 c2} $table {
	puts [format "%-*s  %-*s" $max $c1 $max $c2]
    }
    puts ""
 }
 main $argv

History