package net.sourceforge.phpeclipse.wiki.actions.mediawiki;
+import java.util.List;
+
+import net.sourceforge.phpeclipse.wiki.editor.WikiEditorPlugin;
import net.sourceforge.phpeclipse.wiki.internal.Configuration;
import net.sourceforge.phpeclipse.wiki.internal.ConfigurationWorkingCopy;
public final class DownloadWikibooksENAction extends DownloadWikipediaAction {
- protected Configuration getConfiguration(){
- ConfigurationWorkingCopy configuration = new ConfigurationWorkingCopy();
- configuration.setURL("http://en.wikibooks.org/w/wiki.phtml?title=$text.wikiname&action=edit");
+ protected Configuration getConfiguration() {
+ List configs = WikiEditorPlugin.getConfigurations();
+ ConfigurationWorkingCopy configuration = null;
+ // Wikipedia-en"" +
+ for (int i = 0; i < configs.size(); i++) {
+ configuration = (ConfigurationWorkingCopy) configs.get(i);
+ if (configuration.getName().equals("Wikibooks-en") && configuration.getType().equals("Wikipedia-Load Text")) {
+ break;
+ } else {
+ configuration = null;
+ }
+ }
+ if (configuration == null) {
+ // fall back, if user deleted configuration:
+ configuration = new ConfigurationWorkingCopy();
+ configuration.setURL("http://en.wikibooks.org/w/index.php?title=$text.wikiname&action=raw");
+ }
return configuration;
}
}
\ No newline at end of file
package net.sourceforge.phpeclipse.wiki.actions.mediawiki;
+import java.util.List;
+
+import net.sourceforge.phpeclipse.wiki.editor.WikiEditorPlugin;
import net.sourceforge.phpeclipse.wiki.internal.Configuration;
import net.sourceforge.phpeclipse.wiki.internal.ConfigurationWorkingCopy;
public final class DownloadWikipediaENAction extends DownloadWikipediaAction {
protected Configuration getConfiguration(){
- ConfigurationWorkingCopy configuration = new ConfigurationWorkingCopy();
- configuration.setURL("http://en.wikipedia.org/w/wiki.phtml?title=$text.wikiname&action=edit");
+ List configs = WikiEditorPlugin.getConfigurations();
+ ConfigurationWorkingCopy configuration = null;
+ for (int i = 0; i < configs.size(); i++) {
+ configuration = (ConfigurationWorkingCopy) configs.get(i);
+ if (configuration.getName().equals("Wikipedia-en") && configuration.getType().equals("Wikipedia-Load Text")) {
+ break;
+ } else {
+ configuration = null;
+ }
+ }
+ if (configuration == null) {
+ // fall back, if user deleted configuration:
+ configuration = new ConfigurationWorkingCopy();
+ configuration.setURL("http://en.wikipedia.org/w/wiki.phtml?title=$text.wikiname&action=raw");
+ }
return configuration;
}
}
\ No newline at end of file
package net.sourceforge.phpeclipse.wiki.actions.mediawiki;
-import java.io.IOException;
import java.io.InputStream;
-import java.io.StringReader;
import net.sourceforge.phpeclipse.wiki.editor.WikiEditorPlugin;
* Get the text of a wikimedia Wiki-Description from <code>en.wikipedia.org</code>
*
*/
- public static String getWikiText(String wikiDescriptor) {
- return getWikiText(wikiDescriptor, null);
+ public static String getWikiRawText(String wikiDescriptor) {
+ return getWikiRawText(wikiDescriptor, null);
}
/**
* Get the text of a wikimedia Wiki-Description
*
*/
- public static String getWikiText(String wikiname, String urlStr) {
+ public static String getWikiRawText(String wikiname, String urlStr) {
+ // examples
+ // http://en.wikipedia.org/w/wiki.phtml?title=Main_Page&action=raw
+ // http://en.wikibooks.org/w/index.php?title=Programming:PHP:SQL_Injection&action=raw
+ // http://en.wikipedia.org/w/wiki.phtml?title=Talk:Division_by_zero&action=raw
+ HttpMethod method = null;
+ try {
+ if (urlStr == null) {
+ WikiEditorPlugin.getDefault().reportError("No Wikipedia URL configured", "URL-String == null");
+ // urlStr = "http://en.wikipedia.org/w/wiki.phtml?title=" + wikiname + "&action=raw";
+ }
+ URI uri = new URI(urlStr.toCharArray());
+
+ String schema = uri.getScheme();
+ if ((schema == null) || (schema.equals(""))) {
+ schema = "http";
+ }
+ Protocol protocol = Protocol.getProtocol(schema);
+
+ HttpState state = new HttpState();
+
+ method = new GetMethod(uri.toString());
+ String host = uri.getHost();
+ int port = uri.getPort();
+
+ HttpConnection connection = new HttpConnection(host, port, protocol);
+ // timeout after 30 seconds
+ connection.setConnectionTimeout(30000);
+ connection.setProxyHost(System.getProperty("http.proxyHost"));
+ connection.setProxyPort(Integer.parseInt(System.getProperty("http.proxyPort", "80")));
+
+ if (System.getProperty("http.proxyUserName") != null) {
+ state.setProxyCredentials(null, null, new UsernamePasswordCredentials(System.getProperty("http.proxyUserName"), System
+ .getProperty("http.proxyPassword")));
+ }
+
+ if (connection.isProxied() && connection.isSecure()) {
+ method = new ConnectMethod(method);
+ }
+
+ method.execute(state, connection);
+
+ if (method.getStatusCode() == HttpStatus.SC_OK) {
+ // get the wiki text now:
+ String wikiText = method.getResponseBodyAsString();
+ return wikiText;
+ // wrong text not always complete
+ // InputStream stream = method.getResponseBodyAsStream();
+ // int byteLen = stream.available();
+ // int count = 1;
+ // byte[] buffer = new byte[byteLen];
+ // int len = 0;
+ // stream.read(buffer, 0, byteLen);
+ // String wikiText = new String(buffer);
+ // return wikiText;
+ // System.out.println(wikiText);
+ }
+ } catch (Throwable e) {
+ WikiEditorPlugin.log(e);
+ WikiEditorPlugin.getDefault().reportError("Exception occured", e.getMessage() + "\nSee stacktrace in /.metadata/.log file.");
+ } finally {
+ if (method != null) {
+ method.releaseConnection();
+ }
+ }
+ return null; // no success in getting wiki text
+ }
+
+ public static String getWikiEditTextarea(String wikiname, String urlStr) {
// examples
// http://en.wikipedia.org/w/wiki.phtml?title=Main_Page&action=edit
// http://en.wikibooks.org/w/wiki.phtml?title=Programming:PHP:SQL_Injection&action=edit
try {
if (urlStr == null) {
urlStr = "http://en.wikipedia.org/w/wiki.phtml?title=" + wikiname + "&action=edit";
- }
-// else {
-// urlStr = urlStr + "?title=" + wikiname + "&action=edit";
-// }
+ }
+ // else {
+ // urlStr = urlStr + "?title=" + wikiname + "&action=edit";
+ // }
URI uri = new URI(urlStr.toCharArray());
String schema = uri.getScheme();
byte[] buffer = new byte[byteLen];
stream.read(buffer, 0, byteLen);
String wikiText = new String(buffer);
-// String wikiText = method.getResponseBodyAsString();
+ // String wikiText = method.getResponseBodyAsString();
int start = wikiText.indexOf("<textarea");
if (start != (-1)) {
start = wikiText.indexOf(">", start + 1);
public final static String EXPORT_CSS_URL = "__export_css_url";
- public final static String PREF_STRING_CONFIGURATIONS = "configurations";
+ public final static String PREF_STRING_CONFIGURATIONS = "__configurations1";
public final static String CONFIG_MEMENTO = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<configurations>"
+ "<config name=\"Google Search\" type-id=\"HTTP Query\" url=\"http://www.google.com/search?q=$text.selection\"/>"
+ "<config name=\"Koders.com Search\" type-id=\"HTTP Query\" url=\"http://koders.com/?s=$text.selection\"/>"
+ "<config name=\"Leo.org Translation\" type-id=\"HTTP Query\" url=\"http://dict.leo.org/?search=$text.selection\"/>"
- + "<config name=\"Wikipedia-en\" type-id=\"Wikipedia-Load Text\" url=\"http://en.wikipedia.org/w/wiki.phtml?title=$text.wikiname&action=edit\"/>"
- + "<config name=\"Wikibooks-en\" type-id=\"Wikipedia-Load Text\" url=\"http://en.wikibooks.org/w/index.php?title=$text.wikiname&action=edit\"/>"
+ + "<config name=\"Wikipedia-en\" type-id=\"Wikipedia-Load Text\" url=\"http://en.wikipedia.org/w/index.php?title=$text.wikiname&action=raw\"/>"
+ + "<config name=\"Wikibooks-en\" type-id=\"Wikipedia-Load Text\" url=\"http://en.wikibooks.org/w/index.php?title=$text.wikiname&action=raw\"/>"
+ "<config name=\"Wikipedia-SQL\" type-id=\"Wikipedia SQL access\" user=\"root\" url=\"jdbc:mysql://localhost/wikidb\"/>"
+ "</configurations>";