package com.webgroupmedia.cerb4.exporter.kayako; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import com.cerb4.impex.Configuration; import com.webgroupmedia.cerb4.exporter.kayako.entities.Contact; import com.webgroupmedia.cerb4.exporter.kayako.entities.Knowledgebase; import com.webgroupmedia.cerb4.exporter.kayako.entities.Org; import com.webgroupmedia.cerb4.exporter.kayako.entities.Ticket; import com.webgroupmedia.cerb4.exporter.kayako.entities.Worker; public class Driver { public Driver() { if(!checkSourceVersion()) { System.err.println("The source doesn't appear to be a Kayako eSupport 3.0.0+ database. Aborting!"); System.exit(1); } Boolean bExportTickets = new Boolean(Configuration.get("exportTickets", "false")); Boolean bExportWorkers = new Boolean(Configuration.get("exportWorkers", "false")); Boolean bExportOrgs = new Boolean(Configuration.get("exportOrgs", "false")); Boolean bExportContacts = new Boolean(Configuration.get("exportContacts", "false")); Boolean bExportKb = new Boolean(Configuration.get("exportKb", "false")); if(bExportWorkers) new Worker().export(); if(bExportTickets) new Ticket().export(); if(bExportOrgs) new Org().export(); if(bExportContacts) new Contact().export(); if(bExportKb) new Knowledgebase().export(); // new Address().export(); } // Check Kayako 3.x.x required private boolean checkSourceVersion() { System.out.println("Checking Kayako Version..."); boolean isAtLeastV3 = false; try { Connection conn = Database.getInstance(); Statement stmtVersion = conn.createStatement(); stmtVersion.execute("SELECT data FROM swsettings WHERE vkey = 'version'"); ResultSet rsPatches = stmtVersion.getResultSet(); while(rsPatches.next()) { String versionStr = rsPatches.getString("data"); String[] versionArr = versionStr.split("[.]"); if(versionArr == null || versionArr.length == 0) { isAtLeastV3 = false; break; } System.out.println("Found Kayako version: " + versionArr[0]); isAtLeastV3 = versionArr[0].equals("3"); } rsPatches.close(); stmtVersion.close(); } catch (SQLException sqlE) { sqlE.printStackTrace(); // [TODO] Logging } return isAtLeastV3; } public static String fixMagicQuotes (String str) { Boolean bFixMagicQuotes = new Boolean(Configuration.get("fixMagicQuotes", "false")); if(null == str) str = ""; // Fix magic quotes from earlier versions of PHP apps if(bFixMagicQuotes) { str = str.replace("\\\\", "\\"); str = str.replace("\\'", "'"); str = str.replace("\\\"", "\""); } return str; } }