Revision: 2924
http://archive-access.svn.sourceforge.net/archive-access/?rev=2924&view=rev
Author: bradtofel
Date: 2009-11-11 00:13:00 +0000 (Wed, 11 Nov 2009)
Log Message:
-----------
FEATURE: implemented rewriting of absolute URLs inside text/javascript - hopefully does more good than harm.
Modified Paths:
--------------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/html/transformer/JSStringTransformer.java
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/html/transformer/JSStringTransformer.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/html/transformer/JSStringTransformer.java 2009-11-11 00:11:20 UTC (rev 2923)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/html/transformer/JSStringTransformer.java 2009-11-11 00:13:00 UTC (rev 2924)
@@ -24,13 +24,31 @@
*/
package org.archive.wayback.replay.html.transformer;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
import org.archive.wayback.replay.html.ReplayParseContext;
import org.archive.wayback.replay.html.StringTransformer;
+/**
+ * Attempts to rewrite any absolute URLs found within the text/javascript MIME
+ *
+ * @author brad
+ *
+ */
public class JSStringTransformer implements StringTransformer {
+ private final static Pattern httpPattern = Pattern
+ .compile("(http://[^/]*/)");
public String transform(ReplayParseContext context, String input) {
- // TODO: hehehe....
- return input;
+
+ StringBuffer replaced = new StringBuffer(input.length());
+ Matcher m = httpPattern.matcher(input);
+ while (m.find()) {
+ String host = m.group(1);
+ m.appendReplacement(replaced, context.contextualizeUrl(host));
+ }
+ m.appendTail(replaced);
+ return replaced.toString();
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|