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=5ecc9ab7592ed9578a0b4be17cb5d5c07e7b1850;hp=715e847b895eac70e691b0fce699ea256b01edc0;hb=7478647d64ade9f3b5f3a3181a3b8641785a88ee;hpb=6e6057c68381d4ee429b7df3aadbed657c9a4578 diff --git a/src/com/tedpearson/ypp/market/MarketUploader.java b/src/com/tedpearson/ypp/market/MarketUploader.java index 715e847..5ecc9ab 100644 --- a/src/com/tedpearson/ypp/market/MarketUploader.java +++ b/src/com/tedpearson/ypp/market/MarketUploader.java @@ -340,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 = "

Error

"+msg+"

PCTB Server said:

"+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, @@ -865,7 +884,7 @@ public class MarketUploader implements TopLevelWindowListener, GUIInitializedLis islandName +"\" on " + myOceansList.length + " oceans:","Choose Ocean", JOptionPane.QUESTION_MESSAGE, null, myOceansList, null); if(option == null) { - error("Unable to determine the current island!"); + error_html("Unable to determine the current island!", html); return; } ocean = islandNumbers.get(option).toString(); @@ -873,11 +892,11 @@ public class MarketUploader implements TopLevelWindowListener, GUIInitializedLis ocean = myOceanNums.get(0).toString(); } } else { - error("Unknown island!"); + error_html("Unknown island or other problem!", html); return; } } else { - error("Unable to determine island name from the client!"); + error_html("Unable to determine island name from the client!", html); return; } } else { @@ -889,14 +908,15 @@ public class MarketUploader implements TopLevelWindowListener, GUIInitializedLis Pattern oceanIslandNum = Pattern.compile("islands\\[" + ocean + "\\]\\[\\d+\\]=new Option\\(\"" + islandName + "\",(\\d+)"); m = oceanIslandNum.matcher(html); if(!m.find()) { - error("This does not seem to be a valid island! Unable to upload."); + error_html("This does not seem to be a valid island! Unable to upload.", html); return; } islandNum = m.group(1); Pattern params = Pattern.compile("(?s).+?.+?"); m = params.matcher(html); if(!m.find()) { - error("The PCTB server returned unusual data. Maybe you're using an old version of the uploader?"); + error_html("The PCTB server returned unusual data. Maybe you're using an old version of the uploader?", + html); return; } action = m.group(1); @@ -915,9 +935,7 @@ public class MarketUploader implements TopLevelWindowListener, GUIInitializedLis if(m.find()) { //System.out.println("FILE upload successful!!!"); } else { - error("Something was wrong with the final upload parameters!"); - System.err.println(sb.toString()); - System.err.println(html); + error_html("Something was wrong with the final upload parameters!", html); } }