Mercurial > hg > egg-tcls
changeset 19:9cf22053e5da
Repair !urlfind functionality.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Mon, 05 Sep 2011 16:56:13 +0300 |
parents | 1e2232135354 |
children | 45b76d81e256 |
files | urllog.tcl |
diffstat | 1 files changed, 29 insertions(+), 27 deletions(-) [+] |
line wrap: on
line diff
--- a/urllog.tcl Mon Sep 05 16:32:04 2011 +0300 +++ b/urllog.tcl Mon Sep 05 16:56:13 2011 +0300 @@ -530,41 +530,43 @@ global urllog_name urllog_version urllog_shorturl urldb global urllog_showmax_pub urllog_showmax_priv urlmsg_nomatch + if {$upublic == 0} { + set ulimit 5 + } else { + set ulimit 3 + } + ### Parse the given command urllog_log "$unick/$uhand searched URL: $utext" - set footokens [split $utext " "] - foreach ftoken $footokens { - set foomark [string range $ftoken 0 0] - set foopat [string range $ftoken 1 end] + set ftokens [split $utext " "] + foreach ftoken $ftokens { + set fprefix [string range $ftoken 0 0] + set fpattern [string range $ftoken 1 end] - if {$foomark == "-" || $foomark == "+" || $foomark == "%" || $foomark == "@"} { - lappend ipatlist "$foomark *$foopat*" + if {$fprefix == "-"} { + lappend fpatlist "url NOT LIKE '%[urllog_escape $fpattern]%'" + } elseif {$fprefix == "%"} { + lappend fpatlist "user='[urllog_escape $fpattern]'" + } elseif {$fprefix == "@"} { + # foo } else { - lappend ipatlist "+ *$ftoken*" + lappend fpatlist "url LIKE '%[urllog_escape $ftoken]%'" } } + + set iresults 0 + set query "SELECT id AS urlID, utime AS utime, url AS uurl, user AS uuser, host AS uhost FROM urls WHERE [join $fpatlist " AND "] ORDER BY utime DESC LIMIT $ulimit" + urldb eval $query { + incr iresults + set shortURL $uurl + if {$urllog_shorturl != 0 && $urlID != ""} { + set shortURL "$shortURL [urllog_get_short $urlID]" + } + urllog_msg $upublic $unick $uchan "#$iresults: $shortURL ($uuser@[urllog_ctime $utime])" + } - ### Get the matches from database - set iresults "" - - ### Show the results - if {$iresults != ""} { - set j 0 - foreach i $iresults { - incr j - set foo [split $i " "] - set shortURL [lindex $foo 0] - set shortID [lindex $foo 4] - - if {$urllog_shorturl != 0 && $shortID != ""} { - set shortURL "$shortURL [urllog_get_short $shortID]" - } - - urllog_msg $upublic $unick $uchan "#$j: $shortURL ([lindex $foo 2]@[urllog_ctime [lindex $foo 1]])" - } - - } else { + if {$iresults == 0} { # If no URLs were found urllog_msg $upublic $unick $uchan $urlmsg_nomatch }