X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?a=blobdiff_plain;f=src%2Fcom%2Ftedpearson%2Fypp%2Fmarket%2FMarketUploader.java;h=98ef25e955239db0c402a706ded93dcd6555332d;hb=813ffd281d1dff106d6c04ef48925a45d552f223;hp=b3fa49fdb99ed99dc0eb60974d88bc4f18fd380d;hpb=985508c692b6de7964d89ede3b6cf3da1b5b55c7;p=jarrg-ian.git diff --git a/src/com/tedpearson/ypp/market/MarketUploader.java b/src/com/tedpearson/ypp/market/MarketUploader.java index b3fa49f..98ef25e 100644 --- a/src/com/tedpearson/ypp/market/MarketUploader.java +++ b/src/com/tedpearson/ypp/market/MarketUploader.java @@ -97,6 +97,13 @@ public class MarketUploader implements TopLevelWindowListener, GUIInitializedLis dtxt.println("progress "+(now - startTime)+"ms "+s); } + private void debug_write_stringdata(String what, String data) throws FileNotFoundException,IOException { + if (dtxt==null) return; + PrintStream strm = new PrintStream(new File("jarrg-debug-"+what)); + strm.print(data); + strm.close(); + } + private void progressNote(ProgressMonitor pm, String s) { String arb = null; if (arbitrageResult != null) @@ -235,7 +242,6 @@ public class MarketUploader implements TopLevelWindowListener, GUIInitializedLis * Entry point. Read our preferences. */ public MarketUploader() { - // check if we've been turned off in the control panel Preferences prefs = Preferences.userNodeForPackage(getClass()); if (prefs.getBoolean("writeDebugFiles", false)) { @@ -303,7 +309,6 @@ public class MarketUploader implements TopLevelWindowListener, GUIInitializedLis sidePanel.removePropertyChangeListener(changeListener); } } - //findMarketTable(); findMarket.setEnabled(true); } }.start(); @@ -360,7 +365,6 @@ public class MarketUploader implements TopLevelWindowListener, GUIInitializedLis } } } - // if we don't find the island name, hopefully the server will } /** @@ -383,8 +387,6 @@ public class MarketUploader implements TopLevelWindowListener, GUIInitializedLis } private void error_html(String msg, String html) { - //System.err.println("===" + html + "==="); - Pattern body = Pattern.compile("
(.*)", Pattern.DOTALL | Pattern.CASE_INSENSITIVE); Matcher m = body.matcher(html); if (m.find()) { @@ -409,19 +411,31 @@ public class MarketUploader implements TopLevelWindowListener, GUIInitializedLis * * @exception Exception if an error we didn't expect occured */ + private class YarrgTimestampFetcher extends Thread { + public String ts = null; + public void run() { + try { + ts = getYarrgTimestamp(); + progresslog("(async) yarrg timestamp ready."); + } catch(Exception e) { + error("Error getting YARRG timestamp: "+e); + } + } + }; + private void runUpload() throws Exception { progresslog("starting"); - String yarrgts = ""; ProgressMonitor pm = new ProgressMonitor(frame,"Processing Market Data","Getting table data",0,100); pm.setMillisToDecideToPopup(0); pm.setMillisToPopup(0); boolean doneyarrg = false, donepctb = false; + YarrgTimestampFetcher yarrgts_thread = null; if (uploadToYarrg) { - progresslog("yarrg timestamp..."); - yarrgts = getYarrgTimestamp(); - progresslog("yarrg timestamp done."); + progresslog("(async) yarrg timestamp..."); + yarrgts_thread = new YarrgTimestampFetcher(); + yarrgts_thread.start(); } AccessibleTable accesstable = findMarketTable(); @@ -449,6 +463,14 @@ public class MarketUploader implements TopLevelWindowListener, GUIInitializedLis } progresslog("(async) getisland done"); + String yarrgts = null; + if (yarrgts_thread != null) { + progresslog("(async) yarrg timestamp join..."); + yarrgts_thread.join(); + progresslog("(async) yarrg timestamp joined."); + yarrgts = yarrgts_thread.ts; + } + if (islandName == null) { error("Could not find island name in YPP user interface."); return; @@ -513,6 +535,8 @@ public class MarketUploader implements TopLevelWindowListener, GUIInitializedLis progressNote(pm, "Yarrg: Uploading"); progresslog("yarrg upload..."); + debug_write_stringdata("yarrg-deduped.tsv", yarrgdata); + doneyarrg = runYarrg(yarrgts, oceanName, islandName, yarrgdata); progresslog("yarrg done."); } @@ -541,7 +565,6 @@ public class MarketUploader implements TopLevelWindowListener, GUIInitializedLis } progresslog("pctb commodmap done."); int[] offerCount = getBuySellMaps(data,buys,sells,stallMap,commodMap); - //println(buys.toString()); // if (dtxt!=null) dtxt.println(sells); // if (dtxt!=null) dtxt.println("\n\n\n"+buys); @@ -552,7 +575,6 @@ public class MarketUploader implements TopLevelWindowListener, GUIInitializedLis return; } GZIPOutputStream out = new GZIPOutputStream(outStream); - //FileOutputStream out = new FileOutputStream(new File("output.text")); DataOutputStream dos = new DataOutputStream(out); dos.writeBytes("005y\n"); dos.writeBytes(stallMap.size()+"\n"); @@ -718,14 +740,6 @@ public class MarketUploader implements TopLevelWindowListener, GUIInitializedLis int first = sb.indexOf("") + 5; int last = sb.indexOf("