/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package tools.wztosql;
import database.DatabaseConnection;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.charset.CharsetEncoder;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import provider.MapleData;
import provider.MapleDataProvider;
import provider.MapleDataProviderFactory;
import provider.MapleDataTool;
/**
*
* @author Itzik
*/
public class DumpOxQuizData {
private final Connection con = DatabaseConnection.getConnection();
static CharsetEncoder asciiEncoder = Charset.forName("ISO-8859-1").newEncoder();
public static void main(String args[]) throws FileNotFoundException, IOException, SQLException {
//String output = args[0];
//File outputDir = new File(output);
//File cashTxt = new File("ox.sql");
//outputDir.mkdir();
//cashTxt.createNewFile();
System.out.println("OXQuiz.img Loading ...");
//try (PrintWriter writer = new PrintWriter(new FileOutputStream(cashTxt))) {
// writer.println("INSERT INTO `wz_oxdata` (`questionset`, `questionid`, `question`, `display`, `answer`) VALUES");
DumpOxQuizData dump = new DumpOxQuizData();
dump.dumpOxData();
// writer.flush();
//}
System.out.println("Ox quiz data is complete");
}
public void dumpOxData() throws SQLException {
MapleDataProvider stringProvider;
stringProvider = MapleDataProviderFactory.getDataProvider(new File(System.getProperty("wzpath")
+ "/Etc.wz"));
MapleData ox = stringProvider.getData("OXQuiz.img");
PreparedStatement ps = con.prepareStatement("DELETE FROM `wz_oxdata`");
ps.execute();
ps.close();
for (MapleData child1 : ox.getChildren()) {
for (MapleData child2 : child1.getChildren()) {
MapleData q = child2.getChildByPath("q");
MapleData d = child2.getChildByPath("d");
int a = MapleDataTool.getInt(child2.getChildByPath("a"));
String qs = "";
String ds = "";
String as;
if (a == 0) {
as = "x";
} else {
as = "o";
}
if (q != null) {
qs = (String) q.getData();
}
if (d != null) {
ds = (String) d.getData();
}
if (!asciiEncoder.canEncode(child1.getName()) || !asciiEncoder.canEncode(child2.getName())
|| !asciiEncoder.canEncode(qs) || !asciiEncoder.canEncode(ds)
|| !asciiEncoder.canEncode(as)) {
continue;
}
ps = con.prepareStatement("INSERT INTO `wz_oxdata`"
+ " (`questionset`, `questionid`, `question`, `display`, `answer`)"
+ " VALUES (?, ?, ?, ?, ?)");
ps.setString(1, child1.getName());
ps.setString(2, child2.getName());
ps.setString(3, qs);
ps.setString(4, ds);
ps.setString(5, as);
ps.execute();
ps.close();
//writer.println("(" + child1.getName() + "," + child2.getName() + ", '" + qs + "', '" + ds + "', '" + as + "'), ");
}
}
}
}