X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=jarrg-ian.git;a=blobdiff_plain;f=src%2Fcom%2Ftedpearson%2Fypp%2Fmarket%2FMarketUploader.java;h=666ad23f844e01f1478453db2db2d3e2836fdbd5;hp=4886868a89a61a2fb67f87dd247c0c88ed32a1f1;hb=cc270d577ac30ff93d3b6ba942f96a4cfd4c7c3d;hpb=615a2587009b0e237aeafc0313cfe6cf76aa69c3 diff --git a/src/com/tedpearson/ypp/market/MarketUploader.java b/src/com/tedpearson/ypp/market/MarketUploader.java index 4886868..666ad23 100644 --- a/src/com/tedpearson/ypp/market/MarketUploader.java +++ b/src/com/tedpearson/ypp/market/MarketUploader.java @@ -16,32 +16,23 @@ import org.w3c.dom.*; import javax.xml.parsers.DocumentBuilderFactory; import org.xml.sax.InputSource; import java.util.zip.GZIPOutputStream; -import com.myjavatools.web.ClientHttpRequest; +import net.chiark.yarrg.ClientHttpRequest; import java.util.regex.*; import java.util.prefs.Preferences; import java.beans.*; -import com.tedpearson.util.update.*; - -/* - TODO: - allow adding new islands - allow adding new oceans -*/ /** -* MarketUploader is a class that handles the uploading of market data from -* Yohoho! Puzzle Pirates. Currently, it must be launched in the save Java -* Virtual Machine as YPP. This is handled by a sister "helper" class, -* {@link MarketUploaderRunner}. -*
-* MarketUploader initializes after the main YPP window has initialized. It -* provides a simple window with a "Capture Market Data" button displayed. -* Upon clicking this button, a progress dialog is displayed, and the data -* is processed and submitted to the Pirate Commodities Trader with Bleach (PCTB) -* web server. If any errors occur, an error dialog is shown, and processing -* returns, the button becoming re-enabled. -* -* @see MarketUploaderRunner +* MarketUploader is a class that handles the uploading of market +* data from Yohoho! Puzzle Pirates via the Java Accessibility +* API. +* +* MarketUploader initializes after the main YPP window has +* initialized. It provides a simple window with a "Capture +* Market Data" button displayed. Upon clicking this button, a +* progress dialog is displayed, and the data is processed and +* submitted to the YARRG and PCTB servers. If any errors occur, +* an error dialog is shown, and processing returns, the button +* becoming re-enabled. */ public class MarketUploader implements TopLevelWindowListener, GUIInitializedListener { private JFrame frame = null; @@ -54,8 +45,9 @@ public class MarketUploader implements TopLevelWindowListener, GUIInitializedLis // Yarrg protocol parameters private final static String YARRG_CLIENTNAME = "jpctb greenend"; - private final static String YARRG_CLIENTVERSION = "0.1"; - private final static String YARRG_CLIENTFIXES = ""; + private final static String YARRG_CLIENTVERSION = + com.tedpearson.ypp.market.Version.version; + private final static String YARRG_CLIENTFIXES = "bug-094"; private final static String YARRG_LIVE_URL = "http://upload.yarrg.chiark.net/commod-update-receiver"; private final static String YARRG_TEST_URL = "http://upload.yarrg.chiark.net/test/commod-update-receiver"; private String YARRG_URL; @@ -223,17 +215,11 @@ public class MarketUploader implements TopLevelWindowListener, GUIInitializedLis } /** - * Entry point. Remove modified files and replace with backups. - * Register the jar file we are running from to be deleted upon quit. - * Finally, conditionally set up the GUI. + * Entry point. Read our preferences. */ public MarketUploader() { // check if we've been turned off in the control panel Preferences prefs = Preferences.userNodeForPackage(getClass()); - boolean launch = prefs.getBoolean("launchAtStartup", true); - if(!launch) { - return; - } if (prefs.getBoolean("useLiveServers", false)) { YARRG_URL = YARRG_LIVE_URL; @@ -255,8 +241,9 @@ public class MarketUploader implements TopLevelWindowListener, GUIInitializedLis } /** - * Set up the GUI, with its window and one-button interface. Only initialize - * if we're running alongside a Window named "Puzzle Pirates" though. + * Set up the GUI, with its window and one-button + * interface. Only initialize if we're running alongside + * a Window named "Puzzle Pirates" though. */ private void createGUI() { if (frame != null && window != null) { @@ -307,7 +294,6 @@ public class MarketUploader implements TopLevelWindowListener, GUIInitializedLis try { islandName = ((JLabel)leagueTracker).getToolTipText(); } catch (NullPointerException e) { - // evidently we're actually on an island islandName = null; @@ -354,6 +340,25 @@ public class MarketUploader implements TopLevelWindowListener, GUIInitializedLis JOptionPane.showMessageDialog(frame,msg,"Error",JOptionPane.ERROR_MESSAGE); } + 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()) { + html = m.group(1); + Pattern fixup = Pattern.compile("<(\\w+) */>");; + m = fixup.matcher(html); + html = m.replaceAll("<$1>"); + m = Pattern.compile("[\\r\\n]+").matcher(html); + html = m.replaceAll(" "); + } + String whole_msg = ""+html+""; + //System.err.println("###" + whole_msg + "###"); + + JOptionPane.showMessageDialog(frame,whole_msg,"Error",JOptionPane.ERROR_MESSAGE); + } + /** * Run the data collection process, and upload the results. This is the method * that calls most of the other worker methods for the process. If an error occurs, @@ -395,7 +400,7 @@ public class MarketUploader implements TopLevelWindowListener, GUIInitializedLis ArrayList