]>
Commit | Line | Data |
---|---|---|
b1d4498c | 1 | /**\r |
2 | #\r | |
3 | # BorkNet Services Core\r | |
4 | #\r | |
5 | \r | |
6 | #\r | |
7 | # Copyright (C) 2004 Ozafy - ozafy@borknet.org - http://www.borknet.org\r | |
8 | #\r | |
9 | # This program is free software; you can redistribute it and/or\r | |
10 | # modify it under the terms of the GNU General Public License\r | |
11 | # as published by the Free Software Foundation; either version 2\r | |
12 | # of the License, or (at your option) any later version.\r | |
13 | #\r | |
14 | # This program is distributed in the hope that it will be useful,\r | |
15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of\r | |
16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r | |
17 | # GNU General Public License for more details.\r | |
18 | #\r | |
19 | # You should have received a copy of the GNU General Public License\r | |
20 | # along with this program; if not, write to the Free Software\r | |
21 | # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\r | |
22 | #\r | |
b1d4498c | 23 | */\r |
24 | import java.sql.*;\r | |
25 | import java.util.*;\r | |
26 | import java.io.*;\r | |
27 | import java.security.*;\r | |
28 | import borknet_services.core.*;\r | |
29 | \r | |
30 | /**\r | |
31 | * The database communication class of the Q IRC Bot.\r | |
32 | * @author Ozafy - ozafy@borknet.org - http://www.borknet.org\r | |
33 | */\r | |
34 | public class DBControl\r | |
35 | {\r | |
b1d4498c | 36 | /** Database connection */\r |
37 | private Connection con;\r | |
38 | /** Main bot */\r | |
39 | private Core C;\r | |
40 | \r | |
cb67c259 O |
41 | private CoreDBControl dbc;\r |
42 | \r | |
b1d4498c | 43 | private Q Bot;\r |
44 | \r | |
45 | /**\r | |
46 | * Constructs a Database connection.\r | |
47 | * @param server Database server\r | |
48 | * @param user Database user\r | |
49 | * @param pass Database password\r | |
50 | * @param db Database\r | |
51 | * @param debug Are we debugging?\r | |
52 | * @param B Main bot\r | |
53 | */\r | |
cb67c259 | 54 | public DBControl(Core C, Q Bot)\r |
b1d4498c | 55 | {\r |
56 | try\r | |
57 | {\r | |
58 | this.C = C;\r | |
59 | this.Bot = Bot;\r | |
cb67c259 O |
60 | this.dbc = C.get_dbc();\r |
61 | this.con = dbc.getCon();\r | |
b1d4498c | 62 | PreparedStatement pstmt = con.prepareStatement("DELETE FROM q_glines WHERE oper = 'burst/other server'");\r |
63 | pstmt.execute();\r | |
64 | }\r | |
65 | catch(Exception e)\r | |
66 | {\r | |
67 | C.printDebug("Database error!");\r | |
bd09b4c0 | 68 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 69 | }\r |
70 | }\r | |
71 | \r | |
72 | /**\r | |
73 | * Check if a channel exists.\r | |
74 | * @param chan channel to check\r | |
75 | *\r | |
76 | * @return true or false\r | |
77 | */\r | |
78 | public boolean chanExists(String chan)\r | |
79 | {\r | |
80 | try\r | |
81 | {\r | |
82 | PreparedStatement pstmt;\r | |
dec7a45d | 83 | pstmt = con.prepareStatement("SELECT name FROM q_channels WHERE name = ?");\r |
b1d4498c | 84 | pstmt.setString(1,chan);\r |
85 | ResultSet rs = pstmt.executeQuery();\r | |
86 | rs.first();\r | |
cb67c259 | 87 | String channel = rs.getString("name");\r |
b1d4498c | 88 | return true;\r |
89 | }\r | |
90 | catch(Exception e)\r | |
91 | {\r | |
92 | return false;\r | |
93 | }\r | |
94 | }\r | |
95 | \r | |
96 | /**\r | |
97 | * Check if an auth exists.\r | |
98 | * @param auth auth to check\r | |
99 | *\r | |
100 | * @return true or false\r | |
101 | */\r | |
102 | public boolean authExists(String auth)\r | |
103 | {\r | |
cb67c259 | 104 | return dbc.authExists(auth);\r |
b1d4498c | 105 | }\r |
106 | \r | |
107 | /**\r | |
108 | * Check if an auth is online\r | |
109 | * @param auth auth to check\r | |
110 | *\r | |
111 | * @return true or false\r | |
112 | */\r | |
113 | public boolean authOnline(String auth)\r | |
114 | {\r | |
cb67c259 O |
115 | return dbc.authOnline(auth);\r |
116 | }\r | |
117 | \r | |
118 | public String getNumViaAuth(String auth)\r | |
119 | {\r | |
120 | return dbc.getNumViaAuth(auth);\r | |
b1d4498c | 121 | }\r |
122 | \r | |
123 | /**\r | |
124 | * Check if a nick is reserved.\r | |
125 | * @param auth nick to check\r | |
126 | *\r | |
127 | * @return true or false\r | |
128 | */\r | |
129 | public boolean isReservedNick(String auth)\r | |
130 | {\r | |
cb67c259 | 131 | return dbc.isReservedNick(auth);\r |
b1d4498c | 132 | }\r |
133 | \r | |
134 | /**\r | |
135 | * Check if a nick is reserved.\r | |
136 | * @param auth nick to check\r | |
137 | *\r | |
138 | * @return true or false\r | |
139 | */\r | |
140 | public boolean isService(String numeric)\r | |
141 | {\r | |
cb67c259 | 142 | return dbc.isService(numeric);\r |
b1d4498c | 143 | }\r |
144 | \r | |
145 | /**\r | |
146 | * Check if a mail is blocked.\r | |
147 | * @param mail mail to check\r | |
148 | *\r | |
149 | * @return true or false\r | |
150 | */\r | |
151 | public boolean isMailBlocked(String mail)\r | |
152 | {\r | |
153 | try\r | |
154 | {\r | |
155 | PreparedStatement pstmt;\r | |
dec7a45d | 156 | pstmt = con.prepareStatement("SELECT mail FROM q_mails");\r |
b1d4498c | 157 | ResultSet rs = pstmt.executeQuery();\r |
158 | while(rs.next())\r | |
159 | {\r | |
cb67c259 | 160 | String bad = rs.getString("mail");\r |
b1d4498c | 161 | if(mail.contains(bad))\r |
162 | {\r | |
163 | return true;\r | |
164 | }\r | |
165 | }\r | |
166 | return false;\r | |
167 | }\r | |
168 | catch(Exception e)\r | |
169 | {\r | |
170 | return false;\r | |
171 | }\r | |
172 | }\r | |
173 | \r | |
174 | /**\r | |
175 | * Check if a numeric exists.\r | |
176 | * @param numer numeric to check\r | |
177 | *\r | |
178 | * @return true or false\r | |
179 | */\r | |
180 | public boolean isNumUsed(String numer)\r | |
181 | {\r | |
182 | try\r | |
183 | {\r | |
184 | PreparedStatement pstmt;\r | |
dec7a45d | 185 | pstmt = con.prepareStatement("SELECT numer FROM q_fakeusers WHERE BINARY numer = ?");\r |
b1d4498c | 186 | pstmt.setString(1,numer);\r |
187 | ResultSet rs = pstmt.executeQuery();\r | |
188 | rs.first();\r | |
cb67c259 | 189 | String lev = rs.getString("numer");\r |
b1d4498c | 190 | return true;\r |
191 | }\r | |
192 | catch(Exception e)\r | |
193 | {\r | |
194 | return false;\r | |
195 | }\r | |
196 | }\r | |
197 | \r | |
198 | /**\r | |
199 | * Check if a numeric exists.\r | |
200 | * @param numer numeric to check\r | |
201 | *\r | |
202 | * @return true or false\r | |
203 | */\r | |
204 | public boolean isNickUsed(String nick)\r | |
205 | {\r | |
cb67c259 | 206 | return dbc.isNickUsed(nick);\r |
b1d4498c | 207 | }\r |
208 | \r | |
209 | /**\r | |
210 | * Check if a snumeric exists.\r | |
211 | * @param numer numeric to check\r | |
212 | *\r | |
213 | * @return true or false\r | |
214 | */\r | |
215 | public boolean isServerNumeric(String numer)\r | |
216 | {\r | |
cb67c259 | 217 | return dbc.isServerNumeric(numer);\r |
b1d4498c | 218 | }\r |
219 | \r | |
220 | /**\r | |
221 | * Check if a snumeric exists.\r | |
222 | * @param numer numeric to check\r | |
223 | *\r | |
224 | * @return true or false\r | |
225 | */\r | |
226 | public boolean isJupeNumeric(String numer)\r | |
227 | {\r | |
228 | try\r | |
229 | {\r | |
230 | PreparedStatement pstmt;\r | |
dec7a45d | 231 | pstmt = con.prepareStatement("SELECT numer FROM q_jupes WHERE BINARY numer = ?");\r |
b1d4498c | 232 | pstmt.setString(1,numer);\r |
233 | ResultSet rs = pstmt.executeQuery();\r | |
234 | rs.first();\r | |
cb67c259 | 235 | String lev = rs.getString("numer");\r |
b1d4498c | 236 | return true;\r |
237 | }\r | |
238 | catch(Exception e)\r | |
239 | {\r | |
240 | return false;\r | |
241 | }\r | |
242 | }\r | |
243 | \r | |
244 | /**\r | |
245 | * Check if a numeric has op on a channel\r | |
246 | * @param user numeric to check\r | |
247 | * @param channel channel to check\r | |
248 | *\r | |
249 | * @return true or false\r | |
250 | */\r | |
251 | public boolean isOpChan(String user, String channel)\r | |
252 | {\r | |
cb67c259 | 253 | return dbc.isOpChan(user, channel);\r |
b1d4498c | 254 | }\r |
255 | \r | |
256 | /**\r | |
257 | * Check if a numeric is on a channel\r | |
258 | * @param user numeric to check\r | |
259 | * @param channel channel to check\r | |
260 | *\r | |
261 | * @return true or false\r | |
262 | */\r | |
263 | public boolean isOnChan(String user, String channel)\r | |
264 | {\r | |
cb67c259 | 265 | return dbc.isOnChan(user, channel);\r |
b1d4498c | 266 | }\r |
267 | \r | |
268 | /**\r | |
269 | * Check if a host is a known op on a channel\r | |
270 | * @param host host to check\r | |
271 | * @param channel channel to check\r | |
272 | *\r | |
273 | * @return true or false\r | |
274 | */\r | |
275 | public boolean isKnownOpChan(String host, String channel)\r | |
276 | {\r | |
cb67c259 | 277 | return dbc.isKnownOpChan(host, channel);\r |
b1d4498c | 278 | }\r |
279 | \r | |
280 | /**\r | |
281 | * Check if a host has a chanfix level\r | |
282 | * @param user numeric to check\r | |
283 | * @param channel channel to check\r | |
284 | *\r | |
285 | * @return true or false\r | |
286 | */\r | |
287 | public boolean hasChanfix(String user, String channel)\r | |
288 | {\r | |
cb67c259 | 289 | return dbc.hasChanfix(user, channel);\r |
b1d4498c | 290 | }\r |
291 | \r | |
292 | /**\r | |
293 | * Check if a channel has ops\r | |
294 | * @param channel channel to check\r | |
295 | *\r | |
296 | * @return true or false\r | |
297 | */\r | |
298 | public boolean chanHasOps(String channel)\r | |
299 | {\r | |
cb67c259 | 300 | return dbc.chanHasOps(channel);\r |
b1d4498c | 301 | }\r |
302 | \r | |
303 | /**\r | |
304 | * Check if a channel has known ops\r | |
305 | * @param channel channel to check\r | |
306 | *\r | |
307 | * @return true or false\r | |
308 | */\r | |
309 | public boolean chanfixHasOps(String channel)\r | |
310 | {\r | |
cb67c259 | 311 | return dbc.chanfixHasOps(channel);\r |
b1d4498c | 312 | }\r |
313 | \r | |
314 | /**\r | |
315 | * Check if an ip has a trust\r | |
316 | * @param host ip to check\r | |
317 | *\r | |
318 | * @return true or false\r | |
319 | */\r | |
320 | public boolean hostHasTrust(String host)\r | |
321 | {\r | |
322 | try\r | |
323 | {\r | |
324 | PreparedStatement pstmt;\r | |
dec7a45d | 325 | pstmt = con.prepareStatement("SELECT host FROM q_trusts WHERE host = ?");\r |
b1d4498c | 326 | pstmt.setString(1,host);\r |
327 | ResultSet rs = pstmt.executeQuery();\r | |
328 | rs.first();\r | |
cb67c259 | 329 | String trusthost = rs.getString("host");\r |
b1d4498c | 330 | return true;\r |
331 | }\r | |
332 | catch(Exception e)\r | |
333 | {\r | |
334 | return false;\r | |
335 | }\r | |
336 | }\r | |
337 | \r | |
338 | /**\r | |
339 | * Check if an auth has a trust\r | |
340 | * @param auth auth to check\r | |
341 | *\r | |
342 | * @return true or false\r | |
343 | */\r | |
344 | public boolean authHasTrust(String auth)\r | |
345 | {\r | |
346 | try\r | |
347 | {\r | |
348 | PreparedStatement pstmt;\r | |
dec7a45d | 349 | pstmt = con.prepareStatement("SELECT auth FROM q_trusts WHERE auth = ?");\r |
b1d4498c | 350 | pstmt.setString(1,auth);\r |
351 | ResultSet rs = pstmt.executeQuery();\r | |
352 | rs.first();\r | |
cb67c259 | 353 | String trustauth = rs.getString("auth");\r |
b1d4498c | 354 | return true;\r |
355 | }\r | |
356 | catch(Exception e)\r | |
357 | {\r | |
358 | return false;\r | |
359 | }\r | |
360 | }\r | |
361 | \r | |
362 | /**\r | |
363 | * Check if an ip needs an ident\r | |
364 | * @param ip ip to check\r | |
365 | *\r | |
366 | * @return true or false\r | |
367 | */\r | |
368 | public boolean hostNeedsIdent(String ip)\r | |
369 | {\r | |
370 | try\r | |
371 | {\r | |
372 | PreparedStatement pstmt;\r | |
dec7a45d | 373 | pstmt = con.prepareStatement("SELECT need-ident FROM q_trusts WHERE host = ?");\r |
b1d4498c | 374 | pstmt.setString(1,ip);\r |
375 | ResultSet rs = pstmt.executeQuery();\r | |
376 | rs.first();\r | |
cb67c259 | 377 | boolean b = rs.getBoolean("need-ident");\r |
b1d4498c | 378 | return b;\r |
379 | }\r | |
380 | catch(Exception e)\r | |
381 | {\r | |
382 | return false;\r | |
383 | }\r | |
384 | }\r | |
385 | \r | |
386 | /**\r | |
387 | * Get the number of users on a channel\r | |
388 | * @param channel channel to check\r | |
389 | *\r | |
390 | * @return the number of users on a channel\r | |
391 | */\r | |
392 | public int getChanUsers(String channel)\r | |
393 | {\r | |
cb67c259 | 394 | return dbc.getChanUsers(channel);\r |
b1d4498c | 395 | }\r |
396 | \r | |
397 | /**\r | |
398 | * Get the number of users authed\r | |
399 | * @param auth auth to check\r | |
400 | *\r | |
401 | * @return the number of users authed\r | |
402 | */\r | |
403 | public int getAuthUsers(String auth)\r | |
404 | {\r | |
cb67c259 | 405 | return dbc.getAuthUsers(auth);\r |
b1d4498c | 406 | }\r |
407 | \r | |
408 | /**\r | |
cb67c259 | 409 | * Get the number of users connected from the same host\r |
b1d4498c | 410 | * @param host host to check\r |
411 | *\r | |
cb67c259 | 412 | * @return the number of users connected from the same host\r |
b1d4498c | 413 | */\r |
cb67c259 | 414 | public int getHostCount(String host)\r |
b1d4498c | 415 | {\r |
cb67c259 | 416 | return dbc.getHostCount(host);\r |
b1d4498c | 417 | }\r |
418 | \r | |
419 | /**\r | |
cb67c259 O |
420 | * Get the number of users connected from the same host\r |
421 | * @param host host to check\r | |
b1d4498c | 422 | *\r |
cb67c259 | 423 | * @return the number of users connected from the same host\r |
b1d4498c | 424 | */\r |
cb67c259 | 425 | public int getIpCount(String ip)\r |
b1d4498c | 426 | {\r |
cb67c259 | 427 | return dbc.getIpCount(ip);\r |
b1d4498c | 428 | }\r |
429 | \r | |
430 | /**\r | |
cb67c259 O |
431 | * Get the number of allowed connections from an ip\r |
432 | * @param host ip to check\r | |
b1d4498c | 433 | *\r |
cb67c259 | 434 | * @return the number of allowed connections from an ip\r |
b1d4498c | 435 | */\r |
cb67c259 | 436 | public int getTrustCount(String host)\r |
b1d4498c | 437 | {\r |
438 | try\r | |
439 | {\r | |
440 | PreparedStatement pstmt;\r | |
cb67c259 | 441 | pstmt = con.prepareStatement("SELECT users FROM q_trusts WHERE host = ?");\r |
b1d4498c | 442 | pstmt.setString(1,host);\r |
443 | ResultSet rs = pstmt.executeQuery();\r | |
444 | rs.first();\r | |
cb67c259 | 445 | int users = rs.getInt("users");\r |
b1d4498c | 446 | rs.close();\r |
447 | return users;\r | |
448 | }\r | |
449 | catch(Exception e)\r | |
450 | {\r | |
451 | return 0;\r | |
452 | }\r | |
453 | }\r | |
454 | \r | |
455 | /**\r | |
cb67c259 O |
456 | * Get the number of users authed\r |
457 | * @param auth auth to check\r | |
b1d4498c | 458 | *\r |
cb67c259 | 459 | * @return the number of users authed\r |
b1d4498c | 460 | */\r |
cb67c259 | 461 | public String getChallenge(String user)\r |
b1d4498c | 462 | {\r |
463 | try\r | |
464 | {\r | |
465 | PreparedStatement pstmt;\r | |
dec7a45d | 466 | pstmt = con.prepareStatement("SELECT challenge,time FROM q_challenge WHERE user = ?");\r |
b1d4498c | 467 | pstmt.setString(1,user);\r |
468 | ResultSet rs = pstmt.executeQuery();\r | |
469 | rs.first();\r | |
cb67c259 O |
470 | String chall = rs.getString("challenge");\r |
471 | Calendar cal = Calendar.getInstance();\r | |
472 | long l = (cal.getTimeInMillis() / 1000);\r | |
473 | if(rs.getLong("time")>=l-60)\r | |
b1d4498c | 474 | {\r |
475 | rs.close();\r | |
476 | return chall;\r | |
477 | }\r | |
478 | else\r | |
479 | {\r | |
480 | rs.close();\r | |
481 | return "0";\r | |
482 | }\r | |
483 | }\r | |
484 | catch(Exception e)\r | |
485 | {\r | |
486 | C.debug(e);\r | |
487 | return "0";\r | |
488 | }\r | |
489 | }\r | |
490 | \r | |
491 | /**\r | |
492 | * Get a numeric's user row\r | |
493 | * @param numer numeric of the user to fetch\r | |
494 | *\r | |
495 | * @return an array of all fields\r | |
496 | */\r | |
497 | public String[] getUserRow(String numer)\r | |
498 | {\r | |
cb67c259 | 499 | return dbc.getUserRow(numer);\r |
b1d4498c | 500 | }\r |
501 | \r | |
502 | /**\r | |
503 | * Get an auth's user row\r | |
504 | * @param auth auth of the user to fetch\r | |
505 | *\r | |
506 | * @return an array of all fields\r | |
507 | */\r | |
508 | public String[] getUserRowViaAuth(String auth)\r | |
509 | {\r | |
cb67c259 | 510 | return dbc.getUserRowViaAuth(auth);\r |
b1d4498c | 511 | }\r |
512 | \r | |
513 | /**\r | |
514 | * Get a hosts's user row\r | |
515 | * @param host host of the user to fetch\r | |
516 | *\r | |
517 | * @return an array of all fields\r | |
518 | */\r | |
519 | public String[] getUserRowViaHost(String host)\r | |
520 | {\r | |
cb67c259 | 521 | return dbc.getUserRowViaHost(host);\r |
b1d4498c | 522 | }\r |
523 | \r | |
524 | /**\r | |
525 | * Get a nick's user row\r | |
526 | * @param nick nick of the user to fetch\r | |
527 | *\r | |
528 | * @return an array of all fields\r | |
529 | */\r | |
530 | public String[] getNickRow(String nick)\r | |
531 | {\r | |
cb67c259 | 532 | return dbc.getNickRow(nick);\r |
b1d4498c | 533 | }\r |
534 | \r | |
535 | /**\r | |
536 | * Get a channel's row\r | |
537 | * @param channel channel to fetch\r | |
538 | *\r | |
539 | * @return an array of all fields\r | |
540 | */\r | |
541 | public String[] getChanRow(String channel)\r | |
542 | {\r | |
543 | try\r | |
544 | {\r | |
545 | PreparedStatement pstmt;\r | |
546 | pstmt = con.prepareStatement("SELECT * FROM q_channels WHERE name = ?");\r | |
547 | pstmt.setString(1,channel);\r | |
548 | ResultSet rs = pstmt.executeQuery();\r | |
549 | rs.first();\r | |
cb67c259 | 550 | return new String[]{ rs.getString(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getString(6), rs.getString(7), rs.getString(8), rs.getString(9), rs.getString(10), rs.getString(11)};\r |
b1d4498c | 551 | }\r |
552 | catch(Exception e)\r | |
553 | {\r | |
554 | return new String[]{"0","0","0","0","0","0","0","0","0","0","0","0","0"};\r | |
555 | }\r | |
556 | }\r | |
557 | \r | |
558 | /**\r | |
559 | * Get an auth's row\r | |
560 | * @param nick auth to fetch\r | |
561 | *\r | |
562 | * @return an array of all fields\r | |
563 | */\r | |
564 | public String[] getAuthRow(String nick)\r | |
565 | {\r | |
cb67c259 | 566 | return dbc.getAuthRow(nick);\r |
b1d4498c | 567 | }\r |
568 | \r | |
569 | /**\r | |
570 | * Get an auth's row WITH it's index\r | |
571 | * @param nick auth to fetch\r | |
572 | *\r | |
573 | * @return an array of all fields, including the index!\r | |
574 | */\r | |
cb67c259 | 575 | /*public String[] getAuthRowWithIndex(String nick)\r |
b1d4498c | 576 | {\r |
577 | try\r | |
578 | {\r | |
579 | PreparedStatement pstmt;\r | |
580 | pstmt = con.prepareStatement("SELECT * FROM auths WHERE authnick = ?");\r | |
581 | pstmt.setString(1,nick);\r | |
582 | ResultSet rs = pstmt.executeQuery();\r | |
583 | rs.first();\r | |
584 | return new String[]{ rs.getString(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getString(6), rs.getString(7), rs.getString(8)};\r | |
585 | }\r | |
586 | catch(Exception e)\r | |
587 | {\r | |
588 | return new String[]{"0","0","0","0","0","0","0","0","0","0"};\r | |
589 | }\r | |
cb67c259 | 590 | }*/\r |
b1d4498c | 591 | \r |
592 | /**\r | |
cb67c259 O |
593 | * Get an auth's access on a channel\r |
594 | * @param nick auth to fetch\r | |
595 | * @param channel channel to fetch\r | |
b1d4498c | 596 | *\r |
cb67c259 | 597 | * @return an array of all fields\r |
b1d4498c | 598 | */\r |
cb67c259 | 599 | public String[] getAccRow(String nick,String channel)\r |
b1d4498c | 600 | {\r |
601 | try\r | |
602 | {\r | |
603 | PreparedStatement pstmt;\r | |
cb67c259 O |
604 | pstmt = con.prepareStatement("SELECT * FROM q_access WHERE user = ? AND channel = ?");\r |
605 | pstmt.setString(1,nick);\r | |
606 | pstmt.setString(2,channel);\r | |
b1d4498c | 607 | ResultSet rs = pstmt.executeQuery();\r |
cb67c259 O |
608 | rs.first();\r |
609 | return new String[]{ rs.getString(1), rs.getString(2), rs.getString(3)};\r | |
b1d4498c | 610 | }\r |
611 | catch(Exception e)\r | |
612 | {\r | |
cb67c259 | 613 | return new String[]{"0","0","0","0","0","0","0","0","0","0"};\r |
b1d4498c | 614 | }\r |
615 | }\r | |
616 | \r | |
617 | /**\r | |
cb67c259 O |
618 | * Get a user's channels\r |
619 | * @param user user's numeric\r | |
b1d4498c | 620 | *\r |
cb67c259 O |
621 | * @return an array of all channels\r |
622 | */\r | |
b6e55943 | 623 | public ArrayList<String> getUserChans(String user)\r |
cb67c259 O |
624 | {\r |
625 | return dbc.getUserChans(user);\r | |
626 | }\r | |
627 | \r | |
628 | /**\r | |
629 | * Get a channel's users\r | |
630 | * @param chan channel to fetch\r | |
631 | *\r | |
632 | * @return an array of all users\r | |
633 | */\r | |
634 | public String[] getChannelUsers(String chan)\r | |
635 | {\r | |
636 | return dbc.getChannelUsers(chan);\r | |
637 | }\r | |
638 | \r | |
639 | /**\r | |
640 | * Get a channel's bans\r | |
641 | * @param channel channel to fetch\r | |
642 | *\r | |
643 | * @return an array of all bans\r | |
b1d4498c | 644 | */\r |
cb67c259 | 645 | public String[] getBanList(String channel)\r |
b1d4498c | 646 | {\r |
647 | try\r | |
648 | {\r | |
649 | PreparedStatement pstmt;\r | |
cb67c259 O |
650 | pstmt = con.prepareStatement("SELECT host FROM q_bans WHERE name = ?");\r |
651 | pstmt.setString(1,channel);\r | |
b1d4498c | 652 | ResultSet rs = pstmt.executeQuery();\r |
653 | ArrayList<String> a = new ArrayList<String>();\r | |
b1d4498c | 654 | while(rs.next())\r |
655 | {\r | |
cb67c259 | 656 | a.add(rs.getString("host"));\r |
b1d4498c | 657 | }\r |
b1d4498c | 658 | if(a.size()>0)\r |
659 | {\r | |
cb67c259 | 660 | String[] r = (String[]) a.toArray(new String[ a.size() ]);\r |
b1d4498c | 661 | return r;\r |
662 | }\r | |
663 | else\r | |
664 | {\r | |
cb67c259 | 665 | return new String[]{"0","0","0","0","0","0","0","0","0","0"};\r |
b1d4498c | 666 | }\r |
667 | }\r | |
668 | catch(Exception e)\r | |
669 | {\r | |
cb67c259 | 670 | return new String[]{"0","0","0","0","0","0","0","0","0","0"};\r |
b1d4498c | 671 | }\r |
672 | }\r | |
673 | \r | |
674 | /**\r | |
cb67c259 O |
675 | * Get all registerd channels\r |
676 | * @return an array of all registerd channels\r | |
b1d4498c | 677 | */\r |
cb67c259 | 678 | public String[] getChanTable()\r |
b1d4498c | 679 | {\r |
680 | try\r | |
681 | {\r | |
682 | PreparedStatement pstmt;\r | |
cb67c259 | 683 | pstmt = con.prepareStatement("SELECT name FROM q_channels");\r |
b1d4498c | 684 | ResultSet rs = pstmt.executeQuery();\r |
685 | ArrayList<String> a = new ArrayList<String>();\r | |
b1d4498c | 686 | while(rs.next())\r |
687 | {\r | |
cb67c259 | 688 | a.add(rs.getString("name"));\r |
b1d4498c | 689 | }\r |
b1d4498c | 690 | if(a.size()>0)\r |
691 | {\r | |
cb67c259 | 692 | String[] r = (String[]) a.toArray(new String[ a.size() ]);\r |
b1d4498c | 693 | return r;\r |
694 | }\r | |
695 | else\r | |
696 | {\r | |
cb67c259 | 697 | return new String[]{"0","0","0","0","0","0","0","0","0","0"};\r |
b1d4498c | 698 | }\r |
699 | }\r | |
700 | catch(Exception e)\r | |
701 | {\r | |
cb67c259 | 702 | return new String[]{"0","0","0","0","0","0","0","0","0","0"};\r |
b1d4498c | 703 | }\r |
704 | }\r | |
705 | \r | |
cb67c259 O |
706 | /**\r |
707 | * Get all channels\r | |
708 | * @return an array of all channels\r | |
709 | */\r | |
710 | public String[] getUserChanTable()\r | |
711 | {\r | |
712 | return dbc.getUserChanTable();\r | |
713 | }\r | |
714 | \r | |
715 | /**\r | |
716 | * Get all numerics\r | |
717 | * @return an array of all numerics\r | |
718 | */\r | |
719 | public String[] getNumericTable()\r | |
720 | {\r | |
721 | return dbc.getNumericTable();\r | |
722 | }\r | |
723 | \r | |
724 | /**\r | |
725 | * Get all numerics\r | |
726 | * @return an array of all numerics\r | |
727 | */\r | |
728 | public String[] getNumericTable(String server)\r | |
729 | {\r | |
730 | return dbc.getNumericTable(server);\r | |
731 | }\r | |
732 | \r | |
733 | /**\r | |
734 | * Get all numerics\r | |
735 | * @return an array of all numerics\r | |
736 | */\r | |
737 | /*public String[] getNumericTableUniqueHosts()\r | |
738 | {\r | |
739 | return dbc.getNumericTableUniqueHosts();\r | |
740 | }*/\r | |
741 | \r | |
742 | /**\r | |
743 | * Get all staff members\r | |
744 | * @return an array of all staff members\r | |
745 | */\r | |
746 | public ArrayList<String> getStaffList()\r | |
747 | {\r | |
748 | return dbc.getStaffList();\r | |
749 | }\r | |
750 | \r | |
751 | /**\r | |
752 | * Get all user rows connected to an auth\r | |
753 | * @param auth auth to fetch\r | |
754 | *\r | |
755 | * @return a double array of all users\r | |
756 | */\r | |
757 | public ArrayList<String[]> getUserRowsViaAuth(String auth)\r | |
758 | {\r | |
759 | return dbc.getUserRowsViaAuth(auth);\r | |
760 | }\r | |
761 | \r | |
b1d4498c | 762 | /**\r |
763 | * Get a user's full access\r | |
764 | * @param user auth to fetch\r | |
765 | *\r | |
766 | * @return a double array of all access lines\r | |
767 | */\r | |
768 | public String[][] getAccessTable(String user)\r | |
769 | {\r | |
770 | try\r | |
771 | {\r | |
772 | PreparedStatement pstmt;\r | |
cb67c259 | 773 | pstmt = con.prepareStatement("SELECT channel,flags FROM q_access WHERE user = ?");\r |
b1d4498c | 774 | pstmt.setString(1,user);\r |
775 | ResultSet rs = pstmt.executeQuery();\r | |
776 | ArrayList<String> a = new ArrayList<String>();\r | |
777 | ArrayList<String> b = new ArrayList<String>();\r | |
778 | while(rs.next())\r | |
779 | {\r | |
cb67c259 O |
780 | a.add(rs.getString("channel"));\r |
781 | b.add(rs.getString("flags"));\r | |
b1d4498c | 782 | }\r |
783 | String[][] r = new String[a.size()][2];\r | |
784 | if(a.size()>0)\r | |
785 | {\r | |
786 | for(int n=0; n<r.length; n++)\r | |
787 | {\r | |
788 | r[n][0] = a.get(n);\r | |
789 | r[n][1] = b.get(n);\r | |
790 | }\r | |
791 | return r;\r | |
792 | }\r | |
793 | else\r | |
794 | {\r | |
795 | return new String[][] {{"0","0"},{"0","0"}};\r | |
796 | }\r | |
797 | }\r | |
798 | catch(Exception e)\r | |
799 | {\r | |
800 | return new String[][] {{"0","0"},{"0","0"}};\r | |
801 | }\r | |
802 | }\r | |
803 | \r | |
804 | /**\r | |
805 | * Get a common access list of two auths\r | |
806 | * @param user auth to fetch\r | |
807 | * @param userinfo auth to fetch\r | |
808 | *\r | |
809 | * @return a double array of all access lines\r | |
810 | */\r | |
811 | public String[][] getCommonAccessTable(String user, String userinfo)\r | |
812 | {\r | |
813 | try\r | |
814 | {\r | |
815 | PreparedStatement pstmt;\r | |
cb67c259 | 816 | pstmt = con.prepareStatement("SELECT channel,flags FROM q_access WHERE user = ?");\r |
b1d4498c | 817 | pstmt.setString(1,userinfo);\r |
818 | ResultSet rs = pstmt.executeQuery();\r | |
cb67c259 | 819 | pstmt = con.prepareStatement("SELECT channel FROM q_access WHERE user = ?");\r |
b1d4498c | 820 | pstmt.setString(1,user);\r |
821 | ResultSet rs2 = pstmt.executeQuery();\r | |
822 | ArrayList<String> c = new ArrayList<String>();\r | |
823 | while(rs2.next())\r | |
824 | {\r | |
cb67c259 | 825 | c.add(rs2.getString("channel").toLowerCase());\r |
b1d4498c | 826 | }\r |
827 | ArrayList<String> a = new ArrayList<String>();\r | |
828 | ArrayList<String> b = new ArrayList<String>();\r | |
829 | while(rs.next())\r | |
830 | {\r | |
cb67c259 | 831 | if(c.indexOf(rs.getString("channel").toLowerCase()) != -1)\r |
b1d4498c | 832 | {\r |
cb67c259 O |
833 | a.add(rs.getString("channel"));\r |
834 | b.add(rs.getString("flags"));\r | |
b1d4498c | 835 | }\r |
836 | }\r | |
837 | String[][] r = new String[a.size()][2];\r | |
838 | if(a.size()>0)\r | |
839 | {\r | |
840 | for(int n=0; n<r.length; n++)\r | |
841 | {\r | |
842 | r[n][0] = a.get(n);\r | |
843 | r[n][1] = b.get(n);\r | |
844 | }\r | |
845 | return r;\r | |
846 | }\r | |
847 | else\r | |
848 | {\r | |
849 | return new String[][] {{"0","0"},{"0","0"}};\r | |
850 | }\r | |
851 | }\r | |
852 | catch(Exception e)\r | |
853 | {\r | |
854 | return new String[][] {{"0","0"},{"0","0"}};\r | |
855 | }\r | |
856 | }\r | |
857 | \r | |
858 | /**\r | |
859 | * Get a all users with access to a channel\r | |
860 | * @param channel channel to fetch\r | |
861 | *\r | |
862 | * @return a double array of all access lines\r | |
863 | */\r | |
864 | public String[][] getChanlev(String channel)\r | |
865 | {\r | |
866 | try\r | |
867 | {\r | |
868 | PreparedStatement pstmt;\r | |
cb67c259 | 869 | pstmt = con.prepareStatement("SELECT user,flags FROM q_access WHERE channel = ?");\r |
b1d4498c | 870 | pstmt.setString(1,channel);\r |
871 | ResultSet rs = pstmt.executeQuery();\r | |
872 | ArrayList<String> a = new ArrayList<String>();\r | |
873 | ArrayList<String> b = new ArrayList<String>();\r | |
874 | while(rs.next())\r | |
875 | {\r | |
cb67c259 O |
876 | a.add(rs.getString("user"));\r |
877 | b.add(rs.getString("flags"));\r | |
b1d4498c | 878 | }\r |
879 | String[][] r = new String[a.size()][2];\r | |
880 | if(a.size()>0)\r | |
881 | {\r | |
882 | for(int n=0; n<r.length; n++)\r | |
883 | {\r | |
884 | r[n][0] = a.get(n);\r | |
885 | r[n][1] = b.get(n);\r | |
886 | }\r | |
887 | return r;\r | |
888 | }\r | |
889 | else\r | |
890 | {\r | |
891 | return new String[][] {{"0","0"},{"0","0"}};\r | |
892 | }\r | |
893 | }\r | |
894 | catch(Exception e)\r | |
895 | {\r | |
896 | return new String[][] {{"0","0"},{"0","0"}};\r | |
897 | }\r | |
898 | }\r | |
899 | \r | |
900 | /**\r | |
901 | * Get a list of all glines matching a host\r | |
902 | * @param host host to fetch\r | |
903 | *\r | |
904 | * @return a double array of all glines\r | |
905 | */\r | |
906 | public String[][] getGlist(String host)\r | |
907 | {\r | |
908 | try\r | |
909 | {\r | |
910 | PreparedStatement pstmt;\r | |
911 | pstmt = con.prepareStatement("SELECT * FROM q_glines WHERE gline like ?");\r | |
912 | pstmt.setString(1,host);\r | |
913 | ResultSet rs = pstmt.executeQuery();\r | |
914 | ArrayList<String> a = new ArrayList<String>();\r | |
915 | ArrayList<Integer> b = new ArrayList<Integer>();\r | |
916 | ArrayList<String> c = new ArrayList<String>();\r | |
917 | ArrayList<String> d = new ArrayList<String>();\r | |
918 | while(rs.next())\r | |
919 | {\r | |
cb67c259 O |
920 | a.add(rs.getString(1));\r |
921 | b.add(Integer.parseInt(rs.getString(2)) + Integer.parseInt(rs.getString(3)) - Integer.parseInt(C.get_time()));\r | |
922 | c.add(rs.getString(5));\r | |
923 | d.add(rs.getString(4));\r | |
b1d4498c | 924 | }\r |
925 | String[][] r = new String[a.size()][4];\r | |
926 | if(a.size()>0)\r | |
927 | {\r | |
928 | for(int n=0; n<r.length; n++)\r | |
929 | {\r | |
930 | r[n][0] = a.get(n);\r | |
931 | r[n][1] = b.get(n)+"";\r | |
932 | r[n][2] = c.get(n);\r | |
933 | r[n][3] = d.get(n);\r | |
934 | }\r | |
935 | return r;\r | |
936 | }\r | |
937 | else\r | |
938 | {\r | |
939 | return new String[][] {{"0","0"},{"0","0"}};\r | |
940 | }\r | |
941 | }\r | |
942 | catch(Exception e)\r | |
943 | {\r | |
944 | return new String[][] {{"0","0"},{"0","0"}};\r | |
945 | }\r | |
946 | }\r | |
947 | \r | |
948 | /**\r | |
949 | * Get a list of all jupes matching a host\r | |
950 | * @param host host to fetch\r | |
951 | *\r | |
952 | * @return a double array of all jupes\r | |
953 | */\r | |
954 | public String[][] getJupelist(String host)\r | |
955 | {\r | |
956 | try\r | |
957 | {\r | |
958 | PreparedStatement pstmt;\r | |
959 | pstmt = con.prepareStatement("SELECT * FROM q_jupes WHERE jupe like ?");\r | |
960 | pstmt.setString(1,host);\r | |
961 | ResultSet rs = pstmt.executeQuery();\r | |
962 | ArrayList<String> a = new ArrayList<String>();\r | |
963 | ArrayList<String> b = new ArrayList<String>();\r | |
bd09b4c0 | 964 | ArrayList<String> c = new ArrayList<String>();\r |
b1d4498c | 965 | ArrayList<String> d = new ArrayList<String>();\r |
966 | ArrayList<String> e = new ArrayList<String>();\r | |
bd09b4c0 | 967 | ArrayList<String> f = new ArrayList<String>();\r |
b1d4498c | 968 | while(rs.next())\r |
969 | {\r | |
cb67c259 O |
970 | a.add(rs.getString(1));\r |
971 | b.add(rs.getString(2));\r | |
bd09b4c0 | 972 | //c.add(Integer.parseInt(rs.getString(3)) + Integer.parseInt(rs.getString(4)) - Integer.parseInt(C.get_time()));\r |
973 | c.add(rs.getString(3));\r | |
974 | d.add(rs.getString(4));\r | |
975 | e.add(rs.getString(5));\r | |
976 | f.add(rs.getString(6));\r | |
b1d4498c | 977 | }\r |
bd09b4c0 | 978 | String[][] r = new String[a.size()][6];\r |
b1d4498c | 979 | if(a.size()>0)\r |
980 | {\r | |
981 | for(int n=0; n<r.length; n++)\r | |
982 | {\r | |
983 | r[n][0] = a.get(n);\r | |
984 | r[n][1] = b.get(n);\r | |
bd09b4c0 | 985 | r[n][2] = c.get(n);\r |
b1d4498c | 986 | r[n][3] = d.get(n);\r |
987 | r[n][4] = e.get(n);\r | |
bd09b4c0 | 988 | r[n][5] = f.get(n);\r |
b1d4498c | 989 | }\r |
990 | return r;\r | |
991 | }\r | |
992 | else\r | |
993 | {\r | |
994 | return new String[][] {{"0","0"},{"0","0"}};\r | |
995 | }\r | |
996 | }\r | |
997 | catch(Exception e)\r | |
998 | {\r | |
999 | return new String[][] {{"0","0"},{"0","0"}};\r | |
1000 | }\r | |
1001 | }\r | |
1002 | \r | |
1003 | /**\r | |
1004 | * Get a list of all trusts matching a host\r | |
1005 | * @param host host to fetch\r | |
1006 | *\r | |
1007 | * @return a double array of all trusts\r | |
1008 | */\r | |
1009 | public String[][] getTrustList(String host)\r | |
1010 | {\r | |
1011 | try\r | |
1012 | {\r | |
1013 | PreparedStatement pstmt;\r | |
1014 | pstmt = con.prepareStatement("SELECT * FROM q_trusts WHERE host like ?");\r | |
1015 | pstmt.setString(1,host);\r | |
1016 | ResultSet rs = pstmt.executeQuery();\r | |
1017 | ArrayList<String> a = new ArrayList<String>();\r | |
1018 | ArrayList<String> b = new ArrayList<String>();\r | |
1019 | ArrayList<String> c = new ArrayList<String>();\r | |
1020 | ArrayList<String> d = new ArrayList<String>();\r | |
1021 | ArrayList<String> e = new ArrayList<String>();\r | |
1022 | while(rs.next())\r | |
1023 | {\r | |
cb67c259 O |
1024 | a.add(rs.getString(1));\r |
1025 | b.add(rs.getString(2));\r | |
1026 | c.add(rs.getString(3));\r | |
1027 | d.add(rs.getString(4));\r | |
1028 | e.add(rs.getString(5));\r | |
b1d4498c | 1029 | }\r |
1030 | String[][] r = new String[a.size()][5];\r | |
1031 | if(a.size()>0)\r | |
1032 | {\r | |
1033 | for(int n=0; n<r.length; n++)\r | |
1034 | {\r | |
1035 | r[n][0] = a.get(n);\r | |
1036 | r[n][1] = b.get(n);\r | |
1037 | r[n][2] = c.get(n);\r | |
1038 | r[n][3] = d.get(n);\r | |
1039 | r[n][4] = e.get(n);\r | |
1040 | }\r | |
1041 | return r;\r | |
1042 | }\r | |
1043 | else\r | |
1044 | {\r | |
1045 | return new String[][] {{"0","0"},{"0","0"}};\r | |
1046 | }\r | |
1047 | }\r | |
1048 | catch(Exception e)\r | |
1049 | {\r | |
1050 | return new String[][] {{"0","0"},{"0","0"}};\r | |
1051 | }\r | |
1052 | }\r | |
1053 | \r | |
1054 | /**\r | |
1055 | * Get a list of all fakeusers matching a nick\r | |
1056 | * @param nick nick to fetch\r | |
1057 | *\r | |
1058 | * @return a double array of all fakeusers\r | |
1059 | */\r | |
1060 | public String[][] getFakeList(String nick)\r | |
1061 | {\r | |
1062 | try\r | |
1063 | {\r | |
1064 | PreparedStatement pstmt;\r | |
1065 | pstmt = con.prepareStatement("SELECT * FROM q_fakeusers WHERE nick like ?");\r | |
1066 | pstmt.setString(1,nick);\r | |
1067 | ResultSet rs = pstmt.executeQuery();\r | |
1068 | ArrayList<String> a = new ArrayList<String>();\r | |
1069 | ArrayList<String> b = new ArrayList<String>();\r | |
1070 | ArrayList<String> c = new ArrayList<String>();\r | |
1071 | ArrayList<String> d = new ArrayList<String>();\r | |
1072 | ArrayList<String> e = new ArrayList<String>();\r | |
1073 | while(rs.next())\r | |
1074 | {\r | |
cb67c259 O |
1075 | a.add(rs.getString(1));\r |
1076 | b.add(rs.getString(2));\r | |
1077 | c.add(rs.getString(3));\r | |
1078 | d.add(rs.getString(4));\r | |
1079 | e.add(rs.getString(5));\r | |
b1d4498c | 1080 | }\r |
1081 | String[][] r = new String[a.size()][5];\r | |
1082 | if(a.size()>0)\r | |
1083 | {\r | |
1084 | for(int n=0; n<r.length; n++)\r | |
1085 | {\r | |
1086 | r[n][0] = a.get(n);\r | |
1087 | r[n][1] = b.get(n)+"";\r | |
1088 | r[n][2] = c.get(n);\r | |
1089 | r[n][3] = d.get(n);\r | |
1090 | r[n][4] = e.get(n);\r | |
1091 | }\r | |
1092 | return r;\r | |
1093 | }\r | |
1094 | else\r | |
1095 | {\r | |
1096 | return new String[][] {{"0","0"},{"0","0"}};\r | |
1097 | }\r | |
1098 | }\r | |
1099 | catch(Exception e)\r | |
1100 | {\r | |
1101 | return new String[][] {{"0","0"},{"0","0"}};\r | |
1102 | }\r | |
1103 | }\r | |
1104 | \r | |
1105 | /**\r | |
1106 | * Get a list of all blocked e-mails matching mail\r | |
1107 | * @param mail mail to fetch\r | |
1108 | *\r | |
1109 | * @return a double array of all fakeusers\r | |
1110 | */\r | |
1111 | public String[][] getMailList(String mail)\r | |
1112 | {\r | |
1113 | try\r | |
1114 | {\r | |
1115 | PreparedStatement pstmt;\r | |
cb67c259 | 1116 | pstmt = con.prepareStatement("SELECT mail FROM q_mails WHERE mail like ?");\r |
b1d4498c | 1117 | pstmt.setString(1,mail);\r |
1118 | ResultSet rs = pstmt.executeQuery();\r | |
1119 | ArrayList<String> a = new ArrayList<String>();\r | |
1120 | while(rs.next())\r | |
1121 | {\r | |
cb67c259 | 1122 | a.add(rs.getString("mail"));\r |
b1d4498c | 1123 | }\r |
1124 | String[][] r = new String[a.size()][5];\r | |
1125 | if(a.size()>0)\r | |
1126 | {\r | |
1127 | for(int n=0; n<r.length; n++)\r | |
1128 | {\r | |
1129 | r[n][0] = a.get(n);\r | |
1130 | }\r | |
1131 | return r;\r | |
1132 | }\r | |
1133 | else\r | |
1134 | {\r | |
1135 | return new String[][] {{"0","0"},{"0","0"}};\r | |
1136 | }\r | |
1137 | }\r | |
1138 | catch(Exception e)\r | |
1139 | {\r | |
1140 | return new String[][] {{"0","0"},{"0","0"}};\r | |
1141 | }\r | |
1142 | }\r | |
1143 | \r | |
1144 | /**\r | |
cb67c259 O |
1145 | * Check if a mail is blocked.\r |
1146 | * @param mail mail to check\r | |
1147 | *\r | |
1148 | * @return true or false\r | |
b1d4498c | 1149 | */\r |
cb67c259 | 1150 | public String getInfoLine()\r |
b1d4498c | 1151 | {\r |
1152 | try\r | |
1153 | {\r | |
b1d4498c | 1154 | PreparedStatement pstmt;\r |
cb67c259 O |
1155 | pstmt = con.prepareStatement("SELECT info FROM q_variables LIMIT 1");\r |
1156 | ResultSet rs = pstmt.executeQuery();\r | |
1157 | rs.first();\r | |
1158 | return rs.getString("info");\r | |
b1d4498c | 1159 | }\r |
cb67c259 | 1160 | catch(Exception e)\r |
b1d4498c | 1161 | {\r |
cb67c259 | 1162 | return "0";\r |
b1d4498c | 1163 | }\r |
1164 | }\r | |
1165 | \r | |
1166 | /**\r | |
cb67c259 O |
1167 | * Check if a mail is blocked.\r |
1168 | * @param mail mail to check\r | |
1169 | *\r | |
1170 | * @return true or false\r | |
b1d4498c | 1171 | */\r |
cb67c259 | 1172 | public void setInfoLine(String info)\r |
b1d4498c | 1173 | {\r |
1174 | try\r | |
1175 | {\r | |
b1d4498c | 1176 | PreparedStatement pstmt;\r |
cb67c259 | 1177 | pstmt = con.prepareStatement("UPDATE q_variables SET info = ?");\r |
b1d4498c | 1178 | pstmt.setString(1,info);\r |
b1d4498c | 1179 | pstmt.executeUpdate();\r |
1180 | }\r | |
1181 | catch ( SQLException e )\r | |
1182 | {\r | |
1183 | System.out.println ( "Error executing sql statement" );\r | |
1184 | e.printStackTrace();\r | |
bd09b4c0 | 1185 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1186 | }\r |
1187 | }\r | |
1188 | \r | |
cb67c259 O |
1189 | /**\r |
1190 | * Set a userline field to a new value\r | |
1191 | * @param numer numeric of user to adapt\r | |
1192 | * @param colum colum to change\r | |
1193 | * @param info new info to insert\r | |
1194 | */\r | |
1195 | public void setUserField(String numer, int colum, String info)\r | |
1196 | {\r | |
1197 | dbc.setUserField(numer, colum, info);\r | |
1198 | }\r | |
1199 | \r | |
1200 | /**\r | |
1201 | * Set an authline field to a new value\r | |
1202 | * @param auth auth of user to adapt\r | |
1203 | * @param colum colum to change\r | |
1204 | * @param info new info to insert\r | |
1205 | */\r | |
1206 | public void setAuthField(String auth, int colum, String info)\r | |
1207 | {\r | |
1208 | dbc.setAuthField(auth, colum, info);\r | |
1209 | }\r | |
1210 | \r | |
b1d4498c | 1211 | /**\r |
1212 | * Set a chanline field to a new value\r | |
1213 | * @param chan chan to adapt\r | |
1214 | * @param colum colum to change\r | |
1215 | * @param info new info to insert\r | |
1216 | */\r | |
1217 | public void setChanField(String chan, int colum, String info)\r | |
1218 | {\r | |
1219 | try\r | |
1220 | {\r | |
1221 | String set[] = new String[]{"name", "flags", "modes","welcome","topic","last","chanlimit","suspended","chankey","level","owner"};\r | |
1222 | PreparedStatement pstmt;\r | |
1223 | pstmt = con.prepareStatement("UPDATE q_channels SET "+set[colum]+" = ? WHERE name = ?");\r | |
cb67c259 O |
1224 | if(colum==6 || colum == 9)\r |
1225 | {\r | |
1226 | pstmt.setInt(1,Integer.parseInt(info));\r | |
1227 | }\r | |
1228 | else if(colum==7)\r | |
1229 | {\r | |
1230 | pstmt.setBoolean(1,Boolean.parseBoolean(info));\r | |
1231 | }\r | |
1232 | else if(colum==5)\r | |
1233 | {\r | |
1234 | pstmt.setLong(1,Long.parseLong(info));\r | |
1235 | }\r | |
1236 | else\r | |
1237 | {\r | |
1238 | pstmt.setString(1,info);\r | |
1239 | }\r | |
b1d4498c | 1240 | pstmt.setString(2,chan);\r |
1241 | pstmt.executeUpdate();\r | |
1242 | }\r | |
1243 | catch ( SQLException e )\r | |
1244 | {\r | |
1245 | System.out.println ( "Error executing sql statement" );\r | |
1246 | e.printStackTrace();\r | |
bd09b4c0 | 1247 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1248 | }\r |
1249 | }\r | |
1250 | \r | |
1251 | /**\r | |
1252 | * Set an accessline field to a new value\r | |
1253 | * @param auth auth of user to adapt\r | |
1254 | * @param channel channel to adapt\r | |
1255 | * @param access new info to insert\r | |
1256 | */\r | |
1257 | public void setAccessRow(String auth, String channel, String access)\r | |
1258 | {\r | |
1259 | try\r | |
1260 | {\r | |
1261 | PreparedStatement pstmt;\r | |
1262 | pstmt = con.prepareStatement("UPDATE q_access SET flags = ? WHERE user = ? AND channel = ?");\r | |
1263 | pstmt.setString(1,access);\r | |
1264 | pstmt.setString(2,auth);\r | |
1265 | pstmt.setString(3,channel);\r | |
1266 | pstmt.executeUpdate();\r | |
1267 | }\r | |
1268 | catch ( SQLException e )\r | |
1269 | {\r | |
1270 | System.out.println ( "Error executing sql statement" );\r | |
1271 | e.printStackTrace();\r | |
bd09b4c0 | 1272 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1273 | }\r |
1274 | }\r | |
1275 | \r | |
1276 | /**\r | |
1277 | * Move the bot from one channel to another\r | |
1278 | * @param oldchan channel where the bot is\r | |
1279 | * @param newchan channel where the bot will go to\r | |
1280 | */\r | |
1281 | public void moveChan(String oldchan, String newchan)\r | |
1282 | {\r | |
1283 | try\r | |
1284 | {\r | |
1285 | String chan[] = getChanRow(oldchan);\r | |
cb67c259 | 1286 | addChan(newchan, chan[1], chan[2], chan[3], chan[4], Long.parseLong(chan[5]), Integer.parseInt(chan[6]), Boolean.parseBoolean(chan[7]), chan[8], Integer.parseInt(chan[9]), chan[10]);\r |
b1d4498c | 1287 | String bans[] = getBanList(oldchan);\r |
1288 | if(!bans[0].equals("0"))\r | |
1289 | {\r | |
1290 | for(int n=0; n<bans.length; n++)\r | |
1291 | {\r | |
1292 | addBan(newchan,bans[n]);\r | |
1293 | }\r | |
1294 | }\r | |
1295 | String acc[][] = getChanlev(oldchan);\r | |
1296 | for(int n=0; n<acc.length; n++)\r | |
1297 | {\r | |
1298 | addAccess(acc[n][0],newchan,acc[n][1]);\r | |
1299 | }\r | |
1300 | delChan(oldchan);\r | |
1301 | }\r | |
1302 | catch ( Exception e )\r | |
1303 | {\r | |
1304 | System.out.println ( "Error executing sql statement" );\r | |
1305 | e.printStackTrace();\r | |
bd09b4c0 | 1306 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1307 | }\r |
1308 | }\r | |
1309 | \r | |
1310 | /**\r | |
1311 | * Delete a channel\r | |
1312 | * @param channel channel to delete\r | |
1313 | */\r | |
1314 | public void delChan(String channel)\r | |
1315 | {\r | |
1316 | try\r | |
1317 | {\r | |
1318 | PreparedStatement pstmt;\r | |
1319 | pstmt = con.prepareStatement("DELETE FROM q_channels WHERE name = ? LIMIT 1");\r | |
1320 | pstmt.setString(1,channel);\r | |
1321 | pstmt.executeUpdate();\r | |
1322 | pstmt = con.prepareStatement("DELETE FROM q_access WHERE channel = ?");\r | |
1323 | pstmt.setString(1,channel);\r | |
1324 | pstmt.executeUpdate();\r | |
1325 | pstmt = con.prepareStatement("DELETE FROM q_bans WHERE name = ?");\r | |
1326 | pstmt.setString(1,channel);\r | |
1327 | pstmt.executeUpdate();\r | |
1328 | }\r | |
1329 | catch ( SQLException e )\r | |
1330 | {\r | |
1331 | System.out.println ( "Error executing sql statement" );\r | |
1332 | e.printStackTrace();\r | |
bd09b4c0 | 1333 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1334 | }\r |
1335 | }\r | |
1336 | \r | |
1337 | /**\r | |
1338 | * Delete an auth\r | |
1339 | * @param auth auth to delete\r | |
1340 | */\r | |
1341 | public void delAuth(String auth)\r | |
1342 | {\r | |
1343 | try\r | |
1344 | {\r | |
cb67c259 | 1345 | dbc.delAuth(auth);\r |
b1d4498c | 1346 | PreparedStatement pstmt;\r |
b1d4498c | 1347 | pstmt = con.prepareStatement("DELETE FROM q_access WHERE user = ?");\r |
1348 | pstmt.setString(1,auth);\r | |
1349 | pstmt.executeUpdate();\r | |
1350 | pstmt = con.prepareStatement("DELETE FROM q_pwrequest WHERE user = ?");\r | |
1351 | pstmt.setString(1,auth);\r | |
1352 | pstmt.executeUpdate();\r | |
1353 | }\r | |
1354 | catch ( SQLException e )\r | |
1355 | {\r | |
1356 | System.out.println ( "Error executing sql statement" );\r | |
1357 | e.printStackTrace();\r | |
bd09b4c0 | 1358 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1359 | }\r |
1360 | }\r | |
1361 | \r | |
1362 | /**\r | |
1363 | * Delete a ban\r | |
1364 | * @param channel channel where the ban needs removal\r | |
1365 | * @param nr id of the ban to delete\r | |
1366 | */\r | |
1367 | public void delBan(String channel, int nr)\r | |
1368 | {\r | |
1369 | try\r | |
1370 | {\r | |
1371 | PreparedStatement pstmt;\r | |
cb67c259 | 1372 | pstmt = con.prepareStatement("SELECT host FROM q_bans WHERE name = ? LIMIT "+nr+",1");\r |
b1d4498c | 1373 | pstmt.setString(1,channel);\r |
1374 | ResultSet rs = pstmt.executeQuery();\r | |
1375 | String host = "";\r | |
1376 | while(rs.next())\r | |
1377 | {\r | |
cb67c259 O |
1378 | C.cmd_mode_me(Bot.get_num(),Bot.get_corenum(),rs.getString("host"), channel , "-b");\r |
1379 | host = rs.getString("host");\r | |
b1d4498c | 1380 | }\r |
1381 | pstmt = con.prepareStatement("DELETE FROM q_bans WHERE name = ? AND host = ?");\r | |
1382 | pstmt.setString(1,channel);\r | |
1383 | pstmt.setString(2,host);\r | |
1384 | pstmt.executeUpdate();\r | |
1385 | }\r | |
1386 | catch ( SQLException e )\r | |
1387 | {\r | |
1388 | System.out.println ( "Error executing sql statement" );\r | |
1389 | e.printStackTrace();\r | |
bd09b4c0 | 1390 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1391 | }\r |
1392 | }\r | |
1393 | \r | |
1394 | /**\r | |
1395 | * Delete an accessrow\r | |
1396 | * @param auth auth of user to delete\r | |
1397 | * @param channel channel where access should be removed\r | |
1398 | */\r | |
1399 | public void delAccessRow(String auth, String channel)\r | |
1400 | {\r | |
1401 | try\r | |
1402 | {\r | |
1403 | PreparedStatement pstmt;\r | |
1404 | pstmt = con.prepareStatement("DELETE FROM q_access WHERE user = ? AND channel = ?");\r | |
1405 | pstmt.setString(1,auth);\r | |
1406 | pstmt.setString(2,channel);\r | |
1407 | pstmt.executeUpdate();\r | |
1408 | }\r | |
1409 | catch ( SQLException e )\r | |
1410 | {\r | |
1411 | System.out.println ( "Error executing sql statement" );\r | |
1412 | e.printStackTrace();\r | |
bd09b4c0 | 1413 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1414 | }\r |
1415 | }\r | |
1416 | \r | |
1417 | /**\r | |
1418 | * Delete a gline\r | |
1419 | * @param host host to be removed\r | |
1420 | */\r | |
1421 | public void delGline(String host)\r | |
1422 | {\r | |
1423 | try\r | |
1424 | {\r | |
1425 | PreparedStatement pstmt;\r | |
cb67c259 | 1426 | pstmt = con.prepareStatement("SELECT gline FROM q_glines WHERE gline like ?");\r |
b1d4498c | 1427 | pstmt.setString(1,host);\r |
1428 | ResultSet rs = pstmt.executeQuery();\r | |
1429 | while(rs.next())\r | |
1430 | {\r | |
cb67c259 | 1431 | C.cmd_ungline(Bot.get_num(),rs.getString("gline"));\r |
b1d4498c | 1432 | }\r |
1433 | pstmt = con.prepareStatement("DELETE FROM q_glines WHERE gline like ?");\r | |
1434 | pstmt.setString(1,host);\r | |
1435 | pstmt.executeUpdate();\r | |
1436 | }\r | |
1437 | catch ( SQLException e )\r | |
1438 | {\r | |
1439 | System.out.println ( "Error executing sql statement" );\r | |
1440 | e.printStackTrace();\r | |
bd09b4c0 | 1441 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1442 | }\r |
1443 | }\r | |
1444 | \r | |
1445 | /**\r | |
1446 | * Delete a gline\r | |
1447 | * @param host host to be removed\r | |
1448 | */\r | |
1449 | public void delJupe(String host, String numer)\r | |
1450 | {\r | |
1451 | try\r | |
1452 | {\r | |
1453 | PreparedStatement pstmt;\r | |
bd09b4c0 | 1454 | pstmt = con.prepareStatement("SELECT jupe FROM q_jupes WHERE jupe like ?");\r |
b1d4498c | 1455 | pstmt.setString(1,host);\r |
1456 | ResultSet rs = pstmt.executeQuery();\r | |
1457 | while(rs.next())\r | |
1458 | {\r | |
bd09b4c0 | 1459 | C.cmd_unjupe(numer, rs.getString("jupe"));\r |
b1d4498c | 1460 | }\r |
1461 | pstmt = con.prepareStatement("DELETE FROM q_jupes WHERE jupe like ?");\r | |
1462 | pstmt.setString(1,host);\r | |
1463 | pstmt.executeUpdate();\r | |
1464 | }\r | |
1465 | catch ( SQLException e )\r | |
1466 | {\r | |
1467 | System.out.println ( "Error executing sql statement" );\r | |
1468 | e.printStackTrace();\r | |
bd09b4c0 | 1469 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1470 | }\r |
1471 | }\r | |
1472 | \r | |
1473 | /**\r | |
1474 | * Delete a trust\r | |
1475 | * @param host host to be removed\r | |
1476 | */\r | |
1477 | public void delTrust(String host)\r | |
1478 | {\r | |
1479 | try\r | |
1480 | {\r | |
1481 | PreparedStatement pstmt;\r | |
1482 | pstmt = con.prepareStatement("DELETE FROM q_trusts WHERE host like ?");\r | |
1483 | pstmt.setString(1,host);\r | |
1484 | pstmt.executeUpdate();\r | |
1485 | }\r | |
1486 | catch ( SQLException e )\r | |
1487 | {\r | |
1488 | System.out.println ( "Error executing sql statement" );\r | |
1489 | e.printStackTrace();\r | |
bd09b4c0 | 1490 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1491 | }\r |
1492 | }\r | |
1493 | \r | |
1494 | /**\r | |
1495 | * Delete a fakeuser\r | |
1496 | * @param numer numeric of the fakeuser to be removed\r | |
1497 | */\r | |
1498 | public void delFakeUser(String numer)\r | |
1499 | {\r | |
1500 | try\r | |
1501 | {\r | |
1502 | PreparedStatement pstmt;\r | |
1503 | pstmt = con.prepareStatement("DELETE FROM q_fakeusers WHERE BINARY numer = ? ");\r | |
1504 | pstmt.setString(1,numer);\r | |
1505 | pstmt.executeUpdate();\r | |
1506 | }\r | |
1507 | catch ( SQLException e )\r | |
1508 | {\r | |
1509 | System.out.println ( "Error executing sql statement" );\r | |
1510 | e.printStackTrace();\r | |
bd09b4c0 | 1511 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1512 | }\r |
1513 | }\r | |
1514 | \r | |
1515 | /**\r | |
1516 | * Delete a mail\r | |
1517 | * @param mail mail to be removed\r | |
1518 | */\r | |
1519 | public void delMail(String mail)\r | |
1520 | {\r | |
1521 | try\r | |
1522 | {\r | |
1523 | PreparedStatement pstmt;\r | |
1524 | pstmt = con.prepareStatement("DELETE FROM q_mails WHERE mail like ? ");\r | |
1525 | pstmt.setString(1,mail);\r | |
1526 | pstmt.executeUpdate();\r | |
1527 | }\r | |
1528 | catch ( SQLException e )\r | |
1529 | {\r | |
1530 | System.out.println ( "Error executing sql statement" );\r | |
1531 | e.printStackTrace();\r | |
bd09b4c0 | 1532 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1533 | }\r |
1534 | }\r | |
1535 | \r | |
1536 | /**\r | |
1537 | * Delete an auth\r | |
1538 | * @param auth auth to delete\r | |
1539 | */\r | |
1540 | public void delChallenge(String user)\r | |
1541 | {\r | |
1542 | try\r | |
1543 | {\r | |
1544 | PreparedStatement pstmt;\r | |
1545 | pstmt = con.prepareStatement("DELETE FROM q_challenge WHERE user = ?");\r | |
1546 | pstmt.setString(1,user);\r | |
1547 | pstmt.executeUpdate();\r | |
1548 | }\r | |
1549 | catch ( SQLException e )\r | |
1550 | {\r | |
1551 | System.out.println ( "Error executing sql statement" );\r | |
1552 | e.printStackTrace();\r | |
bd09b4c0 | 1553 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1554 | }\r |
1555 | }\r | |
1556 | \r | |
1557 | public void addFakeUser(String nume,String nick, String ident, String host, String desc)\r | |
1558 | {\r | |
1559 | try\r | |
1560 | {\r | |
1561 | PreparedStatement pstmt;\r | |
cb67c259 | 1562 | pstmt = con.prepareStatement("INSERT INTO q_fakeusers VALUES (?,?,?,?,?)");\r |
b1d4498c | 1563 | pstmt.setString(1,nume);\r |
1564 | pstmt.setString(2,nick);\r | |
1565 | pstmt.setString(3,ident);\r | |
1566 | pstmt.setString(4,host);\r | |
1567 | pstmt.setString(5,desc);\r | |
1568 | pstmt.executeUpdate();\r | |
1569 | }\r | |
1570 | catch ( SQLException e )\r | |
1571 | {\r | |
1572 | System.out.println ( "Error executing sql statement" );\r | |
1573 | e.printStackTrace();\r | |
bd09b4c0 | 1574 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1575 | }\r |
1576 | }\r | |
1577 | \r | |
1578 | public void addMail(String mail)\r | |
1579 | {\r | |
1580 | try\r | |
1581 | {\r | |
1582 | PreparedStatement pstmt;\r | |
cb67c259 | 1583 | pstmt = con.prepareStatement("INSERT INTO q_mails VALUES (?)");\r |
b1d4498c | 1584 | pstmt.setString(1,mail);\r |
1585 | pstmt.executeUpdate();\r | |
1586 | }\r | |
1587 | catch ( SQLException e )\r | |
1588 | {\r | |
1589 | System.out.println ( "Error executing sql statement" );\r | |
1590 | e.printStackTrace();\r | |
bd09b4c0 | 1591 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1592 | }\r |
1593 | }\r | |
1594 | \r | |
cb67c259 | 1595 | public void addAuth(String auth,String pass, String mail1, int lev, boolean suspended, Long time, String info, String userflags, String vhost)\r |
b1d4498c | 1596 | {\r |
cb67c259 | 1597 | dbc.addAuth(auth, pass, mail1, lev, suspended, time, info, userflags, vhost);\r |
b1d4498c | 1598 | }\r |
1599 | \r | |
cb67c259 | 1600 | public void addChan(String channel,String flags,String modes,String welcome,String topic,Long time, int limit, boolean suspended, String key, int level, String owner)\r |
b1d4498c | 1601 | {\r |
1602 | try\r | |
1603 | {\r | |
1604 | PreparedStatement pstmt;\r | |
cb67c259 | 1605 | pstmt = con.prepareStatement("INSERT INTO q_channels VALUES (?,?,?,?,?,?,?,?,?,?,?)");\r |
b1d4498c | 1606 | pstmt.setString(1,channel);\r |
1607 | pstmt.setString(2,flags);\r | |
1608 | pstmt.setString(3,modes);\r | |
1609 | pstmt.setString(4,welcome);\r | |
1610 | pstmt.setString(5,topic);\r | |
cb67c259 O |
1611 | pstmt.setLong(6,time);\r |
1612 | pstmt.setInt(7,limit);\r | |
1613 | pstmt.setBoolean(8,suspended);\r | |
b1d4498c | 1614 | pstmt.setString(9,key);\r |
cb67c259 | 1615 | pstmt.setInt(10,level);\r |
b1d4498c | 1616 | pstmt.setString(11,owner);\r |
1617 | pstmt.executeUpdate();\r | |
1618 | }\r | |
1619 | catch ( SQLException e )\r | |
1620 | {\r | |
1621 | System.out.println ( "Error executing sql statement" );\r | |
1622 | e.printStackTrace();\r | |
bd09b4c0 | 1623 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1624 | }\r |
1625 | }\r | |
1626 | \r | |
1627 | public void addAccess(String user,String channel,String flags)\r | |
1628 | {\r | |
1629 | try\r | |
1630 | {\r | |
1631 | PreparedStatement pstmt;\r | |
cb67c259 | 1632 | pstmt = con.prepareStatement("INSERT INTO q_access VALUES (?,?,?)");\r |
b1d4498c | 1633 | pstmt.setString(1,user);\r |
1634 | pstmt.setString(2,channel);\r | |
1635 | pstmt.setString(3,flags);\r | |
1636 | pstmt.executeUpdate();\r | |
1637 | }\r | |
1638 | catch ( SQLException e )\r | |
1639 | {\r | |
1640 | System.out.println ( "Error executing sql statement" );\r | |
1641 | e.printStackTrace();\r | |
bd09b4c0 | 1642 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1643 | }\r |
1644 | }\r | |
1645 | \r | |
1646 | public void addPwRequest(String user,String pass,String code)\r | |
1647 | {\r | |
1648 | try\r | |
1649 | {\r | |
1650 | PreparedStatement pstmt;\r | |
1651 | pstmt = con.prepareStatement("DELETE FROM q_pwrequest WHERE user = ? ");\r | |
1652 | pstmt.setString(1,user);\r | |
1653 | pstmt.executeUpdate();\r | |
cb67c259 | 1654 | pstmt = con.prepareStatement("INSERT INTO q_pwrequest VALUES (?,?,?)");\r |
b1d4498c | 1655 | pstmt.setString(1,user);\r |
1656 | pstmt.setString(2,pass);\r | |
1657 | pstmt.setString(3,code);\r | |
1658 | pstmt.executeUpdate();\r | |
1659 | }\r | |
1660 | catch ( SQLException e )\r | |
1661 | {\r | |
1662 | System.out.println ( "Error executing sql statement" );\r | |
1663 | e.printStackTrace();\r | |
bd09b4c0 | 1664 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1665 | }\r |
1666 | }\r | |
1667 | \r | |
cb67c259 O |
1668 | public String getPwRequest(String user, String code)\r |
1669 | {\r | |
1670 | try\r | |
1671 | {\r | |
1672 | PreparedStatement pstmt;\r | |
1673 | pstmt = con.prepareStatement("SELECT pass FROM q_pwrequest WHERE user = ? AND code = ?");\r | |
1674 | pstmt.setString(1, user);\r | |
1675 | pstmt.setString(2, code);\r | |
1676 | ResultSet rs = pstmt.executeQuery();\r | |
1677 | rs.first();\r | |
1678 | String pass = rs.getString("pass");\r | |
1679 | pstmt = con.prepareStatement("DELETE FROM q_pwrequest WHERE user = ? ");\r | |
1680 | pstmt.setString(1, user);\r | |
1681 | pstmt.executeUpdate();\r | |
1682 | return pass;\r | |
1683 | }\r | |
1684 | catch (SQLException e)\r | |
1685 | {\r | |
1686 | return "0";\r | |
1687 | }\r | |
1688 | }\r | |
1689 | \r | |
b1d4498c | 1690 | public void addBan(String channel, String ban)\r |
1691 | {\r | |
1692 | try\r | |
1693 | {\r | |
1694 | PreparedStatement pstmt;\r | |
7376dcea | 1695 | pstmt = con.prepareStatement("INSERT IGNORE INTO q_bans VALUES (?,?)");\r |
b1d4498c | 1696 | pstmt.setString(1,channel);\r |
1697 | pstmt.setString(2,ban);\r | |
1698 | pstmt.executeUpdate();\r | |
1699 | }\r | |
1700 | catch ( SQLException e )\r | |
1701 | {\r | |
1702 | System.out.println ( "Error executing sql statement" );\r | |
1703 | e.printStackTrace();\r | |
bd09b4c0 | 1704 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1705 | }\r |
1706 | }\r | |
1707 | \r | |
1708 | public void addGline(String host,String timeset, String timeexp, String reason, String oper)\r | |
1709 | {\r | |
1710 | try\r | |
1711 | {\r | |
1712 | PreparedStatement pstmt;\r | |
cb67c259 | 1713 | pstmt = con.prepareStatement("INSERT IGNORE INTO q_glines VALUES (?,?,?,?,?)");\r |
b1d4498c | 1714 | pstmt.setString(1,host);\r |
1715 | pstmt.setString(2,timeset);\r | |
1716 | pstmt.setString(3,timeexp);\r | |
1717 | pstmt.setString(4,reason);\r | |
1718 | pstmt.setString(5,oper);\r | |
1719 | pstmt.executeUpdate();\r | |
1720 | if(!oper.equals("burst/other server"))\r | |
1721 | {\r | |
1722 | C.cmd_gline(Bot.get_num(), host, timeexp, reason);\r | |
1723 | }\r | |
1724 | }\r | |
1725 | catch ( SQLException e )\r | |
1726 | {\r | |
1727 | System.out.println ( "Error executing sql statement" );\r | |
1728 | e.printStackTrace();\r | |
bd09b4c0 | 1729 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1730 | }\r |
1731 | }\r | |
1732 | \r | |
cb67c259 | 1733 | public void addJupe(String host, String numeric, Long timeset, Long timeexp, String reason, String oper, String nume)\r |
b1d4498c | 1734 | {\r |
1735 | try\r | |
1736 | {\r | |
1737 | PreparedStatement pstmt;\r | |
cb67c259 | 1738 | pstmt = con.prepareStatement("INSERT INTO q_jupes VALUES (?,?,?,?,?,?)");\r |
b1d4498c | 1739 | pstmt.setString(1,host);\r |
1740 | pstmt.setString(2,numeric);\r | |
cb67c259 O |
1741 | pstmt.setLong(3,timeset);\r |
1742 | pstmt.setLong(4,timeexp);\r | |
b1d4498c | 1743 | pstmt.setString(5,reason);\r |
1744 | pstmt.setString(6,oper);\r | |
1745 | pstmt.executeUpdate();\r | |
1746 | C.cmd_jupe(nume, host, numeric);\r | |
1747 | }\r | |
1748 | catch ( SQLException e )\r | |
1749 | {\r | |
1750 | System.out.println ( "Error executing sql statement" );\r | |
1751 | e.printStackTrace();\r | |
bd09b4c0 | 1752 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1753 | }\r |
1754 | }\r | |
1755 | \r | |
cb67c259 | 1756 | public void addTrust(String host,int users, String auth, Long time, boolean ident)\r |
b1d4498c | 1757 | {\r |
1758 | try\r | |
1759 | {\r | |
1760 | PreparedStatement pstmt;\r | |
cb67c259 | 1761 | pstmt = con.prepareStatement("INSERT IGNORE INTO q_trusts VALUES (?,?,?,?,?)");\r |
b1d4498c | 1762 | pstmt.setString(1,host);\r |
cb67c259 | 1763 | pstmt.setInt(2,users);\r |
b1d4498c | 1764 | pstmt.setString(3,auth);\r |
cb67c259 O |
1765 | pstmt.setLong(4,time);\r |
1766 | pstmt.setBoolean(5,ident);\r | |
b1d4498c | 1767 | pstmt.executeUpdate();\r |
1768 | }\r | |
1769 | catch ( SQLException e )\r | |
1770 | {\r | |
1771 | System.out.println ( "Error executing sql statement" );\r | |
1772 | e.printStackTrace();\r | |
bd09b4c0 | 1773 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1774 | }\r |
1775 | }\r | |
1776 | \r | |
cb67c259 | 1777 | public void addChallenge(String user,String challenge, Long time)\r |
b1d4498c | 1778 | {\r |
1779 | try\r | |
1780 | {\r | |
1781 | PreparedStatement pstmt;\r | |
1782 | pstmt = con.prepareStatement("DELETE FROM q_challenge WHERE user = ? ");\r | |
1783 | pstmt.setString(1,user);\r | |
1784 | pstmt.executeUpdate();\r | |
cb67c259 | 1785 | pstmt = con.prepareStatement("INSERT INTO q_challenge VALUES (?,?,?)");\r |
b1d4498c | 1786 | pstmt.setString(1,user);\r |
1787 | pstmt.setString(2,challenge);\r | |
cb67c259 | 1788 | pstmt.setLong(3,time);\r |
b1d4498c | 1789 | pstmt.executeUpdate();\r |
1790 | }\r | |
1791 | catch ( SQLException e )\r | |
1792 | {\r | |
1793 | System.out.println ( "Error executing sql statement" );\r | |
1794 | e.printStackTrace();\r | |
bd09b4c0 | 1795 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1796 | }\r |
1797 | }\r | |
1798 | \r | |
1799 | public void unBanAll(String channel)\r | |
1800 | {\r | |
1801 | try\r | |
1802 | {\r | |
1803 | PreparedStatement pstmt;\r | |
cb67c259 | 1804 | pstmt = con.prepareStatement("SELECT host FROM q_bans WHERE name = ?");\r |
b1d4498c | 1805 | pstmt.setString(1,channel);\r |
1806 | ResultSet rs = pstmt.executeQuery();\r | |
1807 | while(rs.next())\r | |
1808 | {\r | |
cb67c259 | 1809 | C.cmd_mode_me(Bot.get_num(),Bot.get_corenum(),rs.getString("host"), channel , "-b");\r |
b1d4498c | 1810 | }\r |
1811 | pstmt = con.prepareStatement("DELETE FROM q_bans WHERE name = ?");\r | |
1812 | pstmt.setString(1,channel);\r | |
1813 | pstmt.executeUpdate();\r | |
1814 | }\r | |
1815 | catch ( SQLException e )\r | |
1816 | {\r | |
1817 | System.out.println ( "Error executing sql statement" );\r | |
1818 | e.printStackTrace();\r | |
bd09b4c0 | 1819 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1820 | }\r |
1821 | }\r | |
1822 | \r | |
1823 | public void clean()\r | |
1824 | {\r | |
8a3ce9f6 | 1825 | Calendar cal = Calendar.getInstance();\r |
cb67c259 | 1826 | long now = (cal.getTimeInMillis() / 1000);\r |
b1d4498c | 1827 | try\r |
1828 | {\r | |
8a3ce9f6 | 1829 | C.report("Cleaning Q DB...");\r |
b1d4498c | 1830 | PreparedStatement pstmt;\r |
8a3ce9f6 | 1831 | pstmt = con.prepareStatement("SELECT name,level,suspended,last FROM q_channels");\r |
b1d4498c | 1832 | ResultSet rs = pstmt.executeQuery();\r |
1833 | while(rs.next())\r | |
1834 | {\r | |
8a3ce9f6 | 1835 | if(!chanfixHasOps(rs.getString("name")) && Integer.parseInt(rs.getString("level")) < 2 && Integer.parseInt(rs.getString("suspended"))==0 && Long.parseLong(rs.getString("last")) < now-3456000)\r |
b1d4498c | 1836 | {\r |
8a3ce9f6 | 1837 | C.report("Deleting Channel: '" + rs.getString("name") + "'");\r |
1838 | delChan(rs.getString("name"));\r | |
1839 | C.cmd_part(Bot.get_num(),Bot.get_corenum(),rs.getString("name"), "Automatic removal");\r | |
b1d4498c | 1840 | }\r |
1841 | }\r | |
8a3ce9f6 | 1842 | pstmt = con.prepareStatement("SELECT gline,timeset,timeexp FROM q_glines");\r |
b1d4498c | 1843 | rs = pstmt.executeQuery();\r |
1844 | while(rs.next())\r | |
1845 | {\r | |
8a3ce9f6 | 1846 | if(Integer.parseInt(rs.getString("timeset")) + Integer.parseInt(rs.getString("timeexp")) - Integer.parseInt(C.get_time()) < 0)\r |
b1d4498c | 1847 | {\r |
8a3ce9f6 | 1848 | C.report("Deleting G-line: '" + rs.getString("gline") + "'");\r |
1849 | delGline(rs.getString("gline"));\r | |
b1d4498c | 1850 | }\r |
1851 | }\r | |
8a3ce9f6 | 1852 | pstmt = con.prepareStatement("SELECT host,time FROM q_trusts");\r |
b1d4498c | 1853 | rs = pstmt.executeQuery();\r |
1854 | while(rs.next())\r | |
1855 | {\r | |
8a3ce9f6 | 1856 | if(Long.parseLong(rs.getString("time")) < Long.parseLong(C.get_time()))\r |
b1d4498c | 1857 | {\r |
8a3ce9f6 | 1858 | C.report("Deleting Trust: '" + rs.getString("host") + "'.");\r |
1859 | addGline(rs.getString("host"),C.get_time(),"60","Trust expired. 60 Second gline applied.","Q");\r | |
1860 | delTrust(rs.getString("host"));\r | |
b1d4498c | 1861 | }\r |
1862 | }\r | |
8a3ce9f6 | 1863 | pstmt = con.prepareStatement("SELECT jupe,timeset,timeexp FROM q_jupes");\r |
b1d4498c | 1864 | rs = pstmt.executeQuery();\r |
1865 | while(rs.next())\r | |
1866 | {\r | |
8a3ce9f6 | 1867 | if(Integer.parseInt(rs.getString("timeset")) + Integer.parseInt(rs.getString("timeexp")) - Integer.parseInt(C.get_time()) < 0)\r |
b1d4498c | 1868 | {\r |
8a3ce9f6 | 1869 | C.report("Deleting Jupe: '" + rs.getString("jupe") + "'");\r |
1870 | delJupe(rs.getString("jupe"),Bot.get_num());\r | |
b1d4498c | 1871 | }\r |
1872 | }\r | |
8a3ce9f6 | 1873 | pstmt = con.prepareStatement("SELECT user,time FROM q_challenge");\r |
b1d4498c | 1874 | rs = pstmt.executeQuery();\r |
1875 | while(rs.next())\r | |
1876 | {\r | |
8a3ce9f6 | 1877 | if(Long.parseLong(rs.getString("time")) < now-60)\r |
b1d4498c | 1878 | {\r |
8a3ce9f6 | 1879 | delChallenge(rs.getString("user"));\r |
b1d4498c | 1880 | }\r |
1881 | }\r | |
ec7c57c9 | 1882 | pstmt = con.prepareStatement("DELETE FROM q_access WHERE user NOT IN (SELECT authnick FROM auths)");\r |
1883 | pstmt.executeUpdate();\r | |
8a3ce9f6 | 1884 | C.report("Q Cleanup complete!");\r |
b1d4498c | 1885 | }\r |
1886 | catch(Exception e)\r | |
1887 | {\r | |
1888 | System.out.println ( "Error executing sql statement" );\r | |
1889 | e.printStackTrace();\r | |
bd09b4c0 | 1890 | C.die("SQL error, trying to die gracefully.");\r |
8a3ce9f6 | 1891 | }\r |
b1d4498c | 1892 | }\r |
1893 | \r | |
1894 | public String encrypt(String plaintext)\r | |
1895 | {\r | |
1896 | byte[] defaultBytes = plaintext.getBytes();\r | |
1897 | try\r | |
1898 | {\r | |
1899 | MessageDigest algorithm = MessageDigest.getInstance("MD5");\r | |
1900 | algorithm.reset();\r | |
1901 | algorithm.update(defaultBytes);\r | |
1902 | byte messageDigest[] = algorithm.digest();\r | |
1903 | StringBuffer hexString = new StringBuffer();\r | |
1904 | for (int i=0;i<messageDigest.length;i++)\r | |
1905 | {\r | |
1906 | String hex = Integer.toHexString(0xFF & messageDigest[i]);\r | |
1907 | if(hex.length()==1) hexString.append('0');\r | |
1908 | hexString.append(hex);\r | |
1909 | }\r | |
1910 | return hexString.toString();\r | |
1911 | }\r | |
1912 | catch(NoSuchAlgorithmException e)\r | |
1913 | {\r | |
1914 | System.out.println ( "Error encrypting password." );\r | |
1915 | e.printStackTrace();\r | |
bd09b4c0 | 1916 | C.die("SQL error, trying to die gracefully.");\r |
b1d4498c | 1917 | return "0";\r |
1918 | }\r | |
1919 | }\r | |
1920 | } |