Author: cyberdo
Date: 2006-02-23 10:38:55 +0000 (Thu, 23 Feb 2006)
New Revision: 8129
Modified:
trunk/plugins/TestGallery/TestGallery.java
Log:
Added a webform to load a gallery
Modified: trunk/plugins/TestGallery/TestGallery.java
===================================================================
--- trunk/plugins/TestGallery/TestGallery.java 2006-02-23 09:08:35 UTC (rev
8128)
+++ trunk/plugins/TestGallery/TestGallery.java 2006-02-23 10:38:55 UTC (rev
8129)
@@ -2,6 +2,7 @@
import java.io.IOException;
import java.net.MalformedURLException;
+import java.util.HashMap;
import java.util.Random;
import freenet.node.Node;
@@ -15,6 +16,7 @@
boolean goon = true;
Random rnd = new Random();
PluginRespirator pr;
+ private static final String plugName = "TestGallery";
public void terminate() {
goon = false;
}
@@ -33,17 +35,52 @@
public String handleHTTPPost(String path) throws PluginHTTPException {
throw new PluginHTTPException();
}
+
+ private HashMap getElements(String path) {
+ String[] getelements =
getArrayElement(path.split("\\?"),1).split("\\&");
+ HashMap ret = new HashMap();
+ for (int i = 0; i < getelements.length ; i++) {
+ int eqpos = getelements[i].indexOf("=");
+ if (eqpos < 1)
+ // Unhandled so far
+ continue;
+
+ String key = getelements[i].substring(0, eqpos);
+ String value = getelements[i].substring(eqpos + 1);
+
+ ret.put(key, value);
+ /*if (getelements[i].startsWith("page="))
+ page =
Integer.parseInt(getelements[i].substring("page=".length()));
+ */
+ }
+ return ret;
+ }
+
+ private String mkDefaultPage() {
+ StringBuffer out = new StringBuffer();
+ out.append("<HTML><HEAD><TITLE>" + plugName +
"</TITLE></HEAD><BODY>\n");
+ out.append("<CENTER><H1>" + plugName +
"</H1><BR/><BR/><BR/>\n");
+ out.append("Load gallery from the following key:<br/>");
+ out.append("<form method=\"GET\"><input type=text name=\"uri\"
size=80/><input type=submit value=\"Go!\"/></form>\n");
+ out.append("</CENTER></BODY></HTML>");
+ return out.toString();
+ }
+
public String handleHTTPGet(String path) throws PluginHTTPException {
StringBuffer out = new StringBuffer();
String[] pathelements = path.split("\\?");
- String uri = pathelements[0];
- String[] getelements = getArrayElement(pathelements,
1).split("\\?");
- int page = 1;
+ /*String[] getelements = getArrayElement(pathelements,
1).split("\\?");
for (int i = 0; i < getelements.length ; i++) {
if (getelements[i].startsWith("page="))
page =
Integer.parseInt(getelements[i].substring("page=".length()));
+ }*/
+ HashMap getelem = getElements(path);
+ int page = (getelem.get("page") ==
null)?1:Integer.parseInt((String)getelem.get("page"));
+ String uri = (getelem.get("uri") ==
null)?pathelements[0]:(String)getelem.get("uri");
+
+ if (uri.equals("")) {
+ return mkDefaultPage();
}
-
try {
int i = 0;
@@ -63,7 +100,7 @@
//imgarr[0] == title;
out.append("<HTML><HEAD><TITLE>" + title +
"</TITLE></HEAD><BODY>\n");
out.append("<CENTER><H1>" + title + "</H1><BR/>Page " +
page + "<BR/><BR/>\n");
- mkPageIndex(out, imgarr.length, page, uri);
+ mkPageIndex(out, imgarr.length, page, uri+"?");
out.append("<table><tr>\n");
int images = 0;
int flush = (page - 1)*6*4;
@@ -112,7 +149,7 @@
}
out.append("</tr><table>\n");
- mkPageIndex(out, imgarr.length, page, uri);
+ mkPageIndex(out, imgarr.length, page, uri+"?");
out.append("</CENTER></BODY></HTML>");
@@ -127,7 +164,7 @@
for (int pg = 1 ; pg <= (int)Math.ceil((imgarrlength-1)/(6*4))
; pg++) {
out.append(" ");
if (pg != page)
- out.append("<a
href=\""+uri+"?page="+pg+"\">["+pg+"]</a>");
+ out.append("<a
href=\""+uri+"page="+pg+"\">["+pg+"]</a>");
else
out.append("["+pg+"]");
out.append(" \n");