package cn.newgxu.bbs.common.filter;
import cn.newgxu.bbs.common.filter.ubb.AudioFilter;
import cn.newgxu.bbs.common.filter.ubb.BrFilter;
import cn.newgxu.bbs.common.filter.ubb.ColorFilter;
import cn.newgxu.bbs.common.filter.ubb.DirFilter;
import cn.newgxu.bbs.common.filter.ubb.EmailFilter;
import cn.newgxu.bbs.common.filter.ubb.FaceFilter;
import cn.newgxu.bbs.common.filter.ubb.FlashFilter;
import cn.newgxu.bbs.common.filter.ubb.FontFilter;
import cn.newgxu.bbs.common.filter.ubb.FormatFilter;
import cn.newgxu.bbs.common.filter.ubb.IMGFilter;
import cn.newgxu.bbs.common.filter.ubb.MpFilter;
import cn.newgxu.bbs.common.filter.ubb.QtFilter;
import cn.newgxu.bbs.common.filter.ubb.QuoteFilter;
import cn.newgxu.bbs.common.filter.ubb.QuoteReluctantFilter;
import cn.newgxu.bbs.common.filter.ubb.RmFilter;
import cn.newgxu.bbs.common.filter.ubb.SizeFilter;
import cn.newgxu.bbs.common.filter.ubb.SoundFilter;
import cn.newgxu.bbs.common.filter.ubb.URLFilter;
/**
*
* @author polly
* @since 4.0.0
* @version $Revision 1.1$
*/
public class FilterUtil {
private static final Filter ubbFilter = getUbbFilter();
private static Filter getUbbFilter() {
Filter filter = new BasicFilter();
filter = new HTMLEscapeFilter(filter);
filter = new AudioFilter(filter);
filter = new BrFilter(filter);
// 4*4*4种嵌套
filter = new SizeFilter(filter);
filter = new SizeFilter(filter);
filter = new SizeFilter(filter);
filter = new SizeFilter(filter);
filter = new ColorFilter(filter);
filter = new ColorFilter(filter);
filter = new ColorFilter(filter);
filter = new ColorFilter(filter);
filter = new FaceFilter(filter);
filter = new FaceFilter(filter);
filter = new FaceFilter(filter);
filter = new FaceFilter(filter);
/*----------------------------------------*/
filter = new FontFilter(filter);
filter = new FontFilter(filter);
filter = new DirFilter(filter);
filter = new EmailFilter(filter);
filter = new FlashFilter(filter);
filter = new FormatFilter(filter);
filter = new IMGFilter(filter);
filter = new MpFilter(filter);
filter = new QtFilter(filter);
for (int i = 0; i < 10; i++) {
filter = new QuoteReluctantFilter(filter);
}
filter = new QuoteFilter(filter);
filter = new RmFilter(filter);
filter = new SoundFilter(filter);
filter = new URLFilter(filter);
filter = new TitleWordFilter(filter);
return filter;
}
public static String ubb(String str) {
str = TagConvertFilter.before(str);
str = ubbFilter.doFilter(str);
str = TagConvertFilter.after(str);
return str;
}
public static String nick(String str) {
Filter filter = new BasicFilter();
filter = new HTMLEscapeFilter(filter);
filter = new WhitespaceEscapeFilter(filter);
filter = new QuotationMarkFilter(filter);
filter = new NameWordFilter(filter);
return filter.doFilter(str);
}
public static String truename(String str) {
Filter filter = new BasicFilter();
filter = new HTMLEscapeFilter(filter);
filter = new WhitespaceEscapeFilter(filter);
filter = new QuotationMarkFilter(filter);
filter = new NameWordFilter(filter);
return filter.doFilter(str);
}
public static String email(String str) {
Filter filter = new BasicFilter();
filter = new HTMLEscapeFilter(filter);
filter = new WhitespaceEscapeFilter(filter);
filter = new QuotationMarkFilter(filter);
return filter.doFilter(str);
}
public static String idcode(String str) {
Filter filter = new BasicFilter();
filter = new HTMLEscapeFilter(filter);
filter = new WhitespaceEscapeFilter(filter);
filter = new QuotationMarkFilter(filter);
return filter.doFilter(str);
}
public static String homepage(String str) {
Filter filter = new BasicFilter();
filter = new HTMLEscapeFilter(filter);
filter = new WhitespaceEscapeFilter(filter);
filter = new QuotationMarkFilter(filter);
return filter.doFilter(str);
}
public static String qq(String str) {
Filter filter = new BasicFilter();
filter = new HTMLEscapeFilter(filter);
filter = new WhitespaceEscapeFilter(filter);
filter = new QuotationMarkFilter(filter);
return filter.doFilter(str);
}
public static String idiograph(String str) {
Filter filter = new BasicFilter();
filter = new HTMLEscapeFilter(filter);
/*个人签名不需要过滤掉空格,而是将其格式化2010-11-11*/
//filter = new WhitespaceEscapeFilter(filter);
filter = new FormatFilter(filter);
filter = new QuotationMarkFilter(filter);
return filter.doFilter(str);
}
public static String title(String str) {
Filter filter = new BasicFilter();
filter = new HTMLEscapeFilter(filter);
filter = new TitleWordFilter(filter);
return filter.doFilter(str.trim());
}
public static String replyContent(String str) {
return ubb(str);
}
public static String optionString(String str) {
Filter filter = new BasicFilter();
filter = new HTMLEscapeFilter(filter);
filter = new TitleWordFilter(filter);
return filter.doFilter(str);
}
public static String diaryContent(String str) {
Filter filter = new BasicFilter();
filter = new HTMLEscapeFilter(filter);
filter = new TitleWordFilter(filter);
filter = new BrFilter(filter);
return filter.doFilter(str);
}
}