X-Git-Url: http://git.phpeclipse.com
diff --git a/archive/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/actions/mediawiki/connect/MediaWikiConnector.java b/archive/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/actions/mediawiki/connect/MediaWikiConnector.java
index 9225b17..efc1fc9 100644
--- a/archive/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/actions/mediawiki/connect/MediaWikiConnector.java
+++ b/archive/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/actions/mediawiki/connect/MediaWikiConnector.java
@@ -55,8 +55,8 @@ public class MediaWikiConnector {
+ ".*]*\\svalue=\"(\\d*)\"[^>]*\\sname=\"wpEdittime\"[^>]*>" + ".*", Pattern.DOTALL);
//
- private static final Pattern EDIT_TOKEN = Pattern.compile(".*.*",
- Pattern.DOTALL);
+ private static final Pattern EDIT_TOKEN = Pattern.compile(
+ ".*.*", Pattern.DOTALL);
//setup default user agent
final static public String userAgent = "plog4u.org/0.0";
@@ -69,7 +69,12 @@ public class MediaWikiConnector {
/**
* Delay a new store to 1 second
*/
- private Throttle storeThrottle = new Throttle(1000);
+ private Throttle loadThrottle = new Throttle(WikiEditorPlugin.HTTP_GET_THROTTLE);
+
+ /**
+ * Delay a new store to 1 second
+ */
+ private Throttle storeThrottle = new Throttle(WikiEditorPlugin.HTTP_PUT_THROTTLE);
class Throttle {
private long nextTime = 0;
@@ -80,6 +85,12 @@ public class MediaWikiConnector {
this.minimumDelay = minimumDelay;
}
+ public Throttle(String key) {
+ Preferences prefs = WikiEditorPlugin.getDefault().getPluginPreferences();
+ String minimumDelay = prefs.getString(key);
+ this.minimumDelay = Integer.parseInt(minimumDelay);
+ }
+
/** this is called from the client */
public synchronized void delay() throws InterruptedException {
long delay = nextTime - System.currentTimeMillis();
@@ -311,9 +322,41 @@ public class MediaWikiConnector {
return result;
}
+ public String loadHTMLPage(String actionURL, String charSet) throws UnexpectedAnswerException, MethodException,
+ PageNotEditableException {
+ GetMethod method = new GetMethod(actionURL);
+ method.setFollowRedirects(true);
+ method.addRequestHeader("User-Agent", userAgent);
+// NameValuePair[] params = new NameValuePair[] { new NameValuePair("title", title) };
+// method.setQueryString(EncodingUtil.formUrlEncode(params, charSet));
+
+ String result = "";
+ try {
+ int responseCode = client.executeMethod(method);
+ String responseBody = method.getResponseBodyAsString();
+ // log(method);
+
+ if (responseCode == 200) {
+ result = responseBody;
+// Parsed parsed = parseBody(charSet, responseBody);
+// Content content = new Content(parsed.timestamp, parsed.body);
+// result = new Loaded(actionURL, charSet, parsed.title, content);
+ } else {
+ throw new UnexpectedAnswerException("load not successful: expected 200 OK, got " + method.getStatusLine());
+ }
+ } catch (HttpException e) {
+ throw new MethodException("method failed", e);
+ } catch (IOException e) {
+ throw new MethodException("method failed", e);
+ } finally {
+ method.releaseConnection();
+ }
+ return result;
+ }
+
public ArrayList loadXML(IWikipedia config, String actionURL, String pages) throws UnexpectedAnswerException, MethodException,
InterruptedException {
- storeThrottle.delay();
+ loadThrottle.delay();
PostMethod method = new PostMethod(actionURL);
method.setFollowRedirects(false);
method.addRequestHeader("User-Agent", userAgent);