package cn.newgxu.bbs.common.filter.ubb;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import cn.newgxu.bbs.common.filter.AbstractBaseFilter;
import cn.newgxu.bbs.common.filter.Filter;
/**
*
* @author polly
* @since 4.0.0
* @version $Revision 1.1$
*/
public class RmFilter extends AbstractBaseFilter {
private static final String RM_PATTERN_STRING = "\\[rm=(.+?),(.+?)\\](.+?)\\[\\/rm\\]";
private static final String RM_APPEND_1 = "<br>影音文件,单击播放按钮播放。"
+ "<br><OBJECT class=OBJECT " + "id=RAOCX height=\"";
private static final String RM_APPEND_2 = "\" width=\"";
private static final String RM_APPEND_3 = "\" classid=clsid:CFCDAA03-8BE4-"
+ "11cf-B84B-0020AFBBCCFA><PARAM NAME=\"SRC\" VALUE=\"";
private static final String RM_APPEND_4 = "\"><PARAM NAME=\"CONSOLE\" "
+ "VALUE=\"Clip1\"><PARAM NAME=\"CONTROLS\" VALUE=\"imagewindow\">"
+ "<PARAM NAME=\"AUTOSTART\" VALUE=\"false\"></OBJECT><BR><OBJECT "
+ "id=video2 height=32 width=\"";
private static final String RM_APPEND_5 = "\" classid=CLSID:CFCDAA03-8BE4-11CF"
+ "-B84B-0020AFBBCCFA><PARAM NAME=\"SRC\" VALUE=\"";
private static final String RM_APPEND_6 = "\"><PARAM NAME=\"AUTOSTART\" "
+ "VALUE=\"0\"><PARAM NAME=\"CONTROLS\" VALUE=\"controlpanel\">"
+ "<PARAM NAME=\"CONSOLE\" VALUE=\"Clip1\"></OBJECT><br>";
public RmFilter(Filter filter) {
super(filter);
}
public String convert(String input) {
try {
return rmConverter(input);
} catch (Exception e) {
return input;
}
}
private String rmConverter(String input) throws Exception {
Pattern pattern = Pattern.compile(RM_PATTERN_STRING, 2);
Matcher matcher = pattern.matcher(input);
StringBuffer stringbuffer = new StringBuffer();
for (boolean flag = matcher.find(); flag; flag = matcher.find()) {
matcher.appendReplacement(stringbuffer, RM_APPEND_1
+ matcher.group(2) + RM_APPEND_2 + matcher.group(1)
+ RM_APPEND_3 + matcher.group(3) + RM_APPEND_4
+ matcher.group(1) + RM_APPEND_5 + matcher.group(3)
+ RM_APPEND_6);
}
matcher.appendTail(stringbuffer);
return stringbuffer.toString();
}
}