Mercurial > hg > egg-tcls
annotate quotedb.tcl @ 25:65f94adedc98
Import refactored QuoteDB script.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Mon, 05 Sep 2011 18:39:19 +0300 |
parents | |
children | 3f999371de82 |
rev | line source |
---|---|
25
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
1 ########################################################################## |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
2 # |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
3 # QuoteDB v1.0 by ccr/TNSP <ccr@tnsp.org> |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
4 # (C) Copyright 2003-2011 Tecnic Software productions (TNSP) |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
5 # |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
6 # Not for public use or distribution. If you happen to find this, |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
7 # send your questions and/or problems to /dev/null, thank you. |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
8 # |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
9 ########################################################################## |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
10 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
11 ### |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
12 ### General options |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
13 ### |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
14 # Path and filename of the SQLite database |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
15 set qdb_file "quotedb.sqlite" |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
16 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
17 # 1 = Verbose: Say messages PUBLIC when SPEDE is OK, bad, etc. |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
18 # 0 = Quiet : Say privately |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
19 set qdb_verbose 0 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
20 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
21 # 1 = Put some info to bot's Logfile when doing stuff... |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
22 # 0 = Don't. |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
23 set qdb_logmsg 1 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
24 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
25 # What IRC "command" should we use to send messages: |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
26 # (Valid alternatives are "PRIVMSG" and "NOTICE") |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
27 set qdb_preferredmsg "PRIVMSG" |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
28 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
29 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
30 ### |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
31 ### Search related settings |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
32 ### |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
33 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
34 # How many SPEDE's should the !spedefind command show (maximum limit) |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
35 set qdb_showmax_pub 3 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
36 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
37 # For private-search, this is the default limit (user can change it) |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
38 set qdb_showmax_priv 5 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
39 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
40 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
41 ########################################################################## |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
42 # No need to look below this line |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
43 ########################################################################## |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
44 #------------------------------------------------------------------------- |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
45 set qdb_name "QuoteDB" |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
46 set qdb_version "1.0" |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
47 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
48 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
49 #------------------------------------------------------------------------- |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
50 ### Binding initializations |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
51 bind pub - !spedefind spede_pub_find |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
52 bind pub - !spedeadd spede_pub_add |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
53 #bind pub - !spededel spede_pub_del |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
54 bind pub - !spede spede_pub_get |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
55 bind msg - spedefind spede_msg_find |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
56 bind msg - spede spede_msg_get |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
57 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
58 proc spede_pub_get {unick uhost uhand uchan utext} { qdb_msg 0 $uchan "" [qdb_get "spededb" $unick $uhand $utext] } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
59 proc spede_msg_get {unick uhost uhand utext} { qdb_msg 0 $unick "" [qdb_get "spededb" $unick $uhand $utext] } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
60 proc spede_pub_add {unick uhost uhand uchan utext} { qdb_add "spededb" $utext $unick $uhost $uchan 1 } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
61 proc spede_pub_find {unick uhost uhand uchan utext} { qdb_find "spededb" $unick $uhand $uchan $utext 1 } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
62 proc spede_msg_find {unick uhost uhand utext} { qdb_find "spededb" $unick $uhand "" $utext 0 } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
63 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
64 #bind pub - !mnfind mn_pub_find |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
65 #bind pub - !mnadd mn_pub_add |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
66 #bind pub - !mndel mn_pub_del |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
67 #bind pub - !mn mn_pub_get |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
68 #bind msg - mnfind mn_msg_find |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
69 #bind msg - mn mn_msg_get |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
70 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
71 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
72 #bind pub - !tuksufind tuksu_pub_find |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
73 #bind pub - !tuksuadd tuksu_pub_add |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
74 #bind pub - !tuksudel tuksu_pub_del |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
75 #bind pub - !tuksu tuksu_pub_get |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
76 #bind msg - tuksufind tuksu_msg_find |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
77 #bind msg - tuksu tuksu_msg_get |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
78 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
79 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
80 #------------------------------------------------------------------------- |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
81 ### Initialization messages |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
82 set qdb_message "$qdb_name v$qdb_version by ccr/TNSP" |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
83 putlog "$qdb_message" |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
84 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
85 ### Require packages |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
86 package require sqlite3 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
87 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
88 ### SQLite database initialization |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
89 if {[catch {sqlite3 quotedb $qdb_file} uerrmsg]} { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
90 putlog " Could not open SQLite3 database '$qdb_file': $uerrmsg" |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
91 exit 2 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
92 } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
93 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
94 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
95 #------------------------------------------------------------------------- |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
96 ### Utility functions |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
97 proc qdb_log {jarg} { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
98 global qdb_logmsg qdb_name |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
99 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
100 if {$qdb_logmsg != 0} { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
101 putlog "$qdb_name: $jarg" |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
102 } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
103 } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
104 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
105 proc qdb_ctime {utime} { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
106 if {$utime == "" || $utime == "*"} { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
107 set utime 0 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
108 } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
109 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
110 return [clock format $utime -format "%d.%m.%Y %H:%M"] |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
111 } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
112 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
113 proc qdb_msg {apublic anick achan amsg} { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
114 global qdb_preferredmsg |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
115 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
116 if {$apublic == 0} { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
117 putserv "$qdb_preferredmsg $anick :$amsg" |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
118 } else { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
119 putserv "$qdb_preferredmsg $achan :$anick, $amsg" |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
120 } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
121 } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
122 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
123 proc qdb_escape {str} { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
124 return [string map {' ''} $str] |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
125 } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
126 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
127 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
128 #------------------------------------------------------------------------- |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
129 proc qdb_add {utable utext unick uhost uchan upublic} { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
130 global quotedb |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
131 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
132 if {"x$utext" == "x"} { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
133 qdb_msg $upublic $unick $uchan "pyh." |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
134 return 0 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
135 } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
136 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
137 set usql "INSERT INTO $utable (utime,utext,user,host,chan) VALUES ([unixtime], '[qdb_escape $utext]', '[qdb_escape $unick]', '[qdb_escape $uhost]', '[qdb_escape $uchan]')" |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
138 if {[catch {quotedb eval $usql} uerrmsg]} { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
139 qdb_log "$uerrmsg on SQL:\n$sql" |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
140 qdb_msg $upublic $unick $uchan "virhe sörkittäessä tietokantaa. uliskaa." |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
141 return 0 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
142 } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
143 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
144 set quoteID [quotedb last_insert_rowid] |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
145 set numRows [quotedb |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
146 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
147 ### Log some data |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
148 qdb_log "Added SPEDE #$quoteID ($unick@$uchan): $utext" |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
149 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
150 ### Report success to user |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
151 qdb_msg $upublic $unick $uchan "tietokantaa sörkitty (#$smax / $sindex), kiitos." |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
152 return 1 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
153 } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
154 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
155 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
156 #------------------------------------------------------------------------- |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
157 proc qdb_get {utable unick uhand uindex} { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
158 global quotedb |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
159 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
160 set usql "SELECT id AS quoteID, utime AS utime, utext AS utext, user AS uuser, host AS uhost FROM $utable" |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
161 if {[string match "^\[0-9\]+$" $uindex]} { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
162 set usql "$usql WHERE id=$uindex" |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
163 } else { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
164 set usql "$usql ORDER BY RANDOM() LIMIT 1" |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
165 } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
166 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
167 set uresults 0 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
168 quotedb eval $usql { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
169 incr uresults |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
170 return "#${quoteID}: $utext ($uuser)" |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
171 } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
172 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
173 return "ei löydy." |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
174 } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
175 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
176 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
177 #------------------------------------------------------------------------- |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
178 proc qdb_find {utable unick uhand uchan utext upublic} { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
179 global quotedb qdb_showmax_pub qdb_showmax_priv |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
180 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
181 if {$upublic == 0} { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
182 set ulimit $qdb_showmax_priv |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
183 } else { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
184 set ulimit $qdb_showmax_pub |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
185 } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
186 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
187 ### Parse the given command |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
188 qdb_log "$unick/$uhand/$uchan searched $utable: $utext" |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
189 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
190 set ftokens [split $utext " "] |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
191 foreach ftoken $ftokens { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
192 set fprefix [string range $ftoken 0 0] |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
193 set fpattern [string range $ftoken 1 end] |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
194 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
195 if {$fprefix == "-"} { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
196 lappend fpatlist "utext NOT LIKE '%[qdb_escape $fpattern]%'" |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
197 } elseif {$fprefix == "%"} { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
198 lappend fpatlist "user='[qdb_escape $fpattern]'" |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
199 } elseif {$fprefix == "@"} { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
200 # foo |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
201 } else { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
202 lappend fpatlist "utext LIKE '%[qdb_escape $ftoken]%'" |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
203 } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
204 } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
205 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
206 set uresults 0 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
207 set usql "SELECT id AS quoteID, utime AS utime, utext AS utext, user AS uuser, host AS uhost FROM $utable WHERE [join $fpatlist " AND "] ORDER BY utime DESC LIMIT $ulimit" |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
208 quotedb eval $usql { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
209 incr uresults |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
210 qdb_msg $upublic $unick $uchan "#${quoteID}: $utext ($uuser@[qdb_ctime $utime])" |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
211 } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
212 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
213 if {$uresults == 0} { |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
214 qdb_msg $upublic $unick $uchan "ei löydy." |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
215 } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
216 return 0 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
217 } |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
218 |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
219 #------------------------------------------------------------------------- |
65f94adedc98
Import refactored QuoteDB script.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
220 # end of script |