yacy_search_server/source/de/anomic/http/server/AugmentedHtmlStream.java
Michael Peter Christen e806106b10 jquery bugfix
2012-06-16 08:25:28 +02:00

66 lines
1.9 KiB
Java

package de.anomic.http.server;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.FilterOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.nio.charset.Charset;
import net.yacy.cora.protocol.RequestHeader;
import net.yacy.interaction.AugmentHtmlStream;
import net.yacy.kelondro.data.meta.DigestURI;
public class AugmentedHtmlStream extends FilterOutputStream {
private final Writer out;
private final ByteArrayOutputStream buffer;
private final Charset charset;
private final DigestURI url;
private final String urls;
private final RequestHeader requestHeader;
public AugmentedHtmlStream(OutputStream out, Charset charset, DigestURI url, RequestHeader requestHeader) {
super(out);
this.out = new BufferedWriter(new OutputStreamWriter(out, charset));
this.buffer = new ByteArrayOutputStream();
this.charset = charset;
this.url = url;
this.urls = this.url.toNormalform(false, true);
this.requestHeader = requestHeader;
}
@Override
public void write(int b) throws IOException {
this.buffer.write(b);
}
@Override
public void write(byte[] b, int off, int len) throws IOException {
this.buffer.write(b, off, len);
}
@Override
public void close() throws IOException {
StringBuffer b = new StringBuffer(this.buffer.toString(this.charset.name()));
b = process(b);
this.out.write(b.toString());
this.out.close();
}
public StringBuffer process(StringBuffer data) {
if (this.urls.contains("currentyacypeer/")) {
return data;
} else {
return AugmentHtmlStream.process (data, this.charset, this.url, this.requestHeader);
}
}
public static boolean supportsMime(String mime) {
// System.out.println("mime" +mime);
return mime.split(";")[0].equals("text/html");
}
}