private JFrame frame = null;
private Window window = null;
private JButton findMarket = null;
+ private JLabel resultSummary = null;
private final static String PCTB_LIVE_HOST_URL = "http://pctb.crabdance.com/";
private final static String PCTB_TEST_HOST_URL = "http://pctb.ilk.org/";
}
frame = new JFrame("MarketUploader");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
- frame.getContentPane().setLayout(new FlowLayout());
+ frame.getContentPane().setLayout(new GridLayout(2,1));
//frame.setPreferredSize(new Dimension(200, 60));
findMarket = new JButton("Upload Market Data");
findMarket.setEnabled(false);
new Thread() {
public void run() {
+ resultSummary.setText("");
try {
runPCTB();
} catch(Exception e) {
error(e.toString());
e.printStackTrace();
+ resultSummary.setText("failed");
} finally {
if(sidePanel != null) {
// remove it if it's still attached
}
});
frame.add(findMarket);
+
+ resultSummary = new JLabel("ready");
+ frame.add(resultSummary);
+
frame.pack();
}
ProgressMonitor pm = new ProgressMonitor(frame,"Processing Market Data","Getting table data",0,100);
pm.setMillisToDecideToPopup(0);
pm.setMillisToPopup(0);
+ boolean doneyarrg = false, donepctb = false;
if (uploadToYarrg) {
yarrgts = getYarrgTimestamp();
pm.setNote("Uploading to Yarrg");
if (islandName != null) {
- runYarrg(yarrgts, oceanName, islandName, yarrgdata);
+ doneyarrg = runYarrg(yarrgts, oceanName, islandName, yarrgdata);
} else {
System.out.println("Couldn't upload to Yarrg - no island name found");
}
return;
}
pm.setNote("Waiting for PCTB...");
- finishUpload(in);
+ donepctb = finishUpload(in);
}
pm.setProgress(100);
+
+ if ((uploadToPCTB && !donepctb) ||
+ (uploadToYarrg && !doneyarrg)) {
+ resultSummary.setText("trouble");
+ } else if (donepctb || doneyarrg) {
+ resultSummary.setText("Done " + islandName);
+ } else {
+ resultSummary.setText("uploaded nowhere!");
+ }
}
/**
*
* @param in stream of data from the server to read
*/
- private void finishUpload(InputStream in) throws IOException {
+ private boolean finishUpload(InputStream in) throws IOException {
String html = readstreamstring(in);
//System.out.println(html);
String topIsland = "0", ocean, islandNum, action, forceReload, filename;
JOptionPane.QUESTION_MESSAGE, null, myOceansList, null);
if(option == null) {
error_html("Unable to determine the current island!", html);
- return;
+ return false;
}
ocean = islandNumbers.get(option).toString();
} else {
}
} else {
error_html("Unknown island or other problem!", html);
- return;
+ return false;
}
} else {
error_html("Unable to determine island name from the client!", html);
- return;
+ return false;
}
} else {
topIsland = m.group(1);
m = oceanIslandNum.matcher(html);
if(!m.find()) {
error_html("This does not seem to be a valid island! Unable to upload.", html);
- return;
+ return false;
}
islandNum = m.group(1);
Pattern params = Pattern.compile("(?s)<input type=\"hidden\" name=\"action\" value=\"([^\"]+)\" />.+?<input type=\"hidden\" name=\"forcereload\" value=\"([^\"]+)\" />.+?<input type=\"hidden\" name=\"filename\" value=\"([^\"]+)\" />");
if(!m.find()) {
error_html("The PCTB server returned unusual data. Maybe you're using an old version of the uploader?",
html);
- return;
+ return false;
}
action = m.group(1);
forceReload = m.group(2);
Pattern done = Pattern.compile("Your data has been integrated into the database. Thank you!");
m = done.matcher(complete);
if(m.find()) {
- //System.out.println("FILE upload successful!!!");
+ System.out.println("FILE upload successful!!!");
+ return true;
} else {
error_html("Something was wrong with the final upload parameters!", complete);
+ return false;
}
}
return tsresult.substring(3, tsresult.length()-1);
}
- private void runYarrg(String timestamp, String ocean, String island, String yarrgdata) throws IOException {
+ private boolean runYarrg(String timestamp, String ocean, String island, String yarrgdata) throws IOException {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
BufferedOutputStream bufos = new BufferedOutputStream(new GZIPOutputStream(bos));
bufos.write(yarrgdata.getBytes() );
http.setParameter("island", island);
http.setParameter("data", "deduped.tsv.gz", file, "application/octet-stream");
InputStream in = post_for_yarrg(http);
- if (in == null) return;
+ if (in == null) return false;
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String yarrgresult;
while((yarrgresult = br.readLine()) != null) {
System.out.println(yarrgresult);
}
+ return true;
}
}