Mercurial > hg > egg-tcls
changeset 64:cd9fd4ec82a9
quotedb: Add in +n flag override for deleting and updating quotes.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sat, 10 Sep 2011 17:00:22 +0300 |
parents | 7b03971c6d28 |
children | 31c8c4f50aa6 |
files | quotedb.tcl |
diffstat | 1 files changed, 23 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/quotedb.tcl Thu Sep 08 22:26:52 2011 +0300 +++ b/quotedb.tcl Sat Sep 10 17:00:22 2011 +0300 @@ -200,12 +200,20 @@ qdb_msg $upublic $unick $uchan "$ucmd del <id>" return 0 } + + set qoverride [matchattr $uhand n] + set usql "SELECT utime AS utime FROM $utable WHERE id=$unum" + if {$qoverride == 0} { + set usql "$usql AND user='[qdb_escape $uhand]'" + set qextra "" + } else { + set qextra " (owner/time override)" + } - set usql "SELECT utime AS utime FROM $utable WHERE id=$unum AND user='[qdb_escape $uhand]'" quotedb eval $usql { set udiff [expr [unixtime] - $utime] - if {$udiff < $maxdiff} { - set usql "DELETE FROM $utable WHERE id=$unum AND user='[qdb_escape $uhand]'" + if {$udiff < $maxdiff || $qoverride} { + set usql "DELETE FROM $utable WHERE id=$unum" if {![qdb_sql_exec $upublic $unick $uchan $usql]} { return 0 } else { @@ -213,7 +221,7 @@ if {![qdb_sql_exec $upublic $unick $uchan $usql]} { return 0 } - qdb_msg $upublic $unick $uchan "$utable #$unum poistettu." + qdb_msg $upublic $unick $uchan "$utable #$unum poistettu$qextra." return 1 } } else { @@ -242,15 +250,23 @@ return 0 } - set usql "SELECT utime AS utime FROM $utable WHERE id=$unum AND user='[qdb_escape $uhand]'" + set qoverride [matchattr $uhand n] + set usql "SELECT utime AS utime FROM $utable WHERE id=$unum" + if {$qoverride == 0} { + set usql "$usql AND user='[qdb_escape $uhand]'" + set qextra "" + } else { + set qextra " (owner/time override)" + } + quotedb eval $usql { set udiff [expr [unixtime] - $utime] - if {$udiff < $maxdiff} { + if {$udiff < $maxdiff || $qoverride} { set usql "UPDATE $utable SET utext='[qdb_escape $uquote]', utime=[unixtime] WHERE id=$unum" if {![qdb_sql_exec $upublic $unick $uchan $usql]} { return 0 } else { - qdb_msg $upublic $unick $uchan "$utable #$unum päivitetty." + qdb_msg $upublic $unick $uchan "$utable #$unum päivitetty$qextra." return 1 } } else {