Source code: org/alicebot/server/core/responder/ResponderDatabaseLogger.java
1 // Decompiled by Jad v1.5.8c. Copyright 2001 Pavel Kouznetsov.
2 // Jad home page: http://www.geocities.com/kpdus/jad.html
3 // Decompiler options: packimports(3)
4
5 package org.alicebot.server.core.responder;
6
7 import java.io.UnsupportedEncodingException;
8 import java.net.URLEncoder;
9 import java.sql.SQLException;
10 import org.alicebot.server.core.Globals;
11 import org.alicebot.server.core.PredicateMaster;
12 import org.alicebot.server.core.logging.Log;
13 import org.alicebot.server.core.util.DeveloperError;
14 import org.alicebot.server.core.util.UserError;
15 import org.alicebot.server.sql.pool.DbAccess;
16 import org.alicebot.server.sql.pool.DbAccessRefsPoolMgr;
17
18 public class ResponderDatabaseLogger
19 {
20
21 private ResponderDatabaseLogger()
22 {
23 Log.devinfo("Opening database pool.", new String[] {
24 Log.DATABASE, Log.STARTUP
25 });
26 dbManager = new DbAccessRefsPoolMgr(Globals.getProperty("programd.database.driver", ""), Globals.getProperty("programd.database.url", ""), Globals.getProperty("programd.database.user", ""), Globals.getProperty("programd.database.password", ""));
27 Log.devinfo("Populating database pool.", new String[] {
28 Log.DATABASE, Log.STARTUP
29 });
30 dbManager.populate(Integer.parseInt(Globals.getProperty("programd.database.connections", "")));
31 }
32
33 public static void log(String s, String s1, String s2, String s3, String s4)
34 {
35 String s5 = PredicateMaster.get(Globals.getClientNamePredicate(), s3, s4);
36 DbAccess dbaccess = null;
37 try
38 {
39 dbaccess = dbManager.takeDbaRef();
40 }
41 catch(Exception exception)
42 {
43 throw new UserError("Could not get database reference when logging.", exception);
44 }
45 try
46 {
47 // dbaccess.executeQuery("insert into chatlog (userid, clientname, botid, input, response) values ('" + URLEncoder.encode(s3, "utf-8") + "', '" + URLEncoder.encode(PredicateMaster.get(Globals.getClientNamePredicate(), s3, s4), "utf-8") + "', '" + URLEncoder.encode(s4, "utf-8") + "', '" + URLEncoder.encode(s, "utf-8") + "', '" + URLEncoder.encode(s1, "utf-8") + "')");
48 dbaccess.executeQuery("insert into chatlog (userid, clientname, botid, input, response) values ('" + URLEncoder.encode(s3) + "', '" + URLEncoder.encode(PredicateMaster.get(Globals.getClientNamePredicate(), s3, s4)) + "', '" + URLEncoder.encode(s4) + "', '" + URLEncoder.encode(s) + "', '" + URLEncoder.encode(s1) + "')");
49 }
50 catch(SQLException sqlexception)
51 {
52 Log.userinfo("Database error: " + sqlexception, new String[] {
53 Log.DATABASE, Log.ERROR
54 });
55 }
56 // catch(UnsupportedEncodingException unsupportedencodingexception)
57 catch(Exception unsupportedencodingexception)
58 {
59 throw new DeveloperError("This platform does not support UTF-8!");
60 }
61 /* catch(SQLException sqlexception)
62 {
63 Log.userinfo("Database error: " + sqlexception, new String[] {
64 Log.DATABASE, Log.ERROR
65 });
66 }*/
67 dbManager.returnDbaRef(dbaccess);
68 }
69
70 private static DbAccessRefsPoolMgr dbManager;
71 private static final ResponderDatabaseLogger self = new ResponderDatabaseLogger();
72 private static final String ENC_UTF8 = "utf-8";
73
74 }