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 AudioFilter extends AbstractBaseFilter {
public AudioFilter(Filter filter) {
super(filter);
}
private static final String AUDIO_PATTERN_STRING = "\\[audio(.+?)\\]";
private static final String[] AUDIO_TEXT = { "就这事啊!地球人都知道", "嘿嘿!逗你玩!",
"年轻人,做人要厚道!", "借你干嘛,啊,这不是拿我打岔吗?", "一定要幸福哦!", "你好可爱哦!", "加油哦!",
"我好想你喔!", "你不要这样嘛", "我真的好感激你哦", "你简直太让我感动了!",
"过来..近点...再近点...Kiss", "弓虽!实在是弓虽!", "真的么?我要晕了。", "最近我真的好想你哦。",
"啊,你是中邪了...", "你好讨厌喔~", "抽根烟吧!", "不干,不干,不干,就是不干!", "饿不饿我请你吃饭。",
"听见了吗,那是我肚子在叫", "哼!小样!我看你还真是找扁!", "坦白从宽,你就交代了吧。", "哼,你这骗子!",
"我就是喜欢你动作非常慢的时候!", "Hi!是你吧,我知道你在,我可看见你了。", "哎,看来你真的很寂寞!",
"年轻人虚心点没错。", "我说你还不明白,你猪头啊!", "886~", "88了您呢", "哎哟,老板来了,我先走了啊。",
"不行不行,我得上厕所...上厕所。", "晚安,做个好梦!", "我困得不行了,得先走一步了", "有人在家吗?", "开会咯!",
"早安!", "还在加班?真忙还是假忙啊。", "你可算来了,我等你很久了!", "来啦小妞~", "早上好,你来了~",
"你要死了,到现在才出现,到哪里潜水去!", "喂~~我老板来了,等会再聊。", "啊~~~这是一定要的啦。",
"嗯哼~人家...去撇个尿啰..嗯哼~", "嗯哼~来,亲一个~",
"起来动一动吧,fowllow me,one more,tow more...",
"祝你生日快乐~祝你生日快乐..喔喔,祝你生日快乐哦", "不知道该说什么...", "好想睡哦...zzZ", "让我想一想~" };
private static final String AUDIO_APPEND_1 = "<br><TABLE width=90% "
+ "border=0 align=center cellPadding=0 cellSpacing=0><TBODY><TR><TD "
+ "title=鼠标左键单击这里播放 style='CURSOR: hand' "
+ "onclick=this.parentElement.children[0].children[0].Play() noWrap>"
+ "<OBJECT id=Audible19704814047 codeBase='<a target=_blank "
+ "href=http://download.macromedia.com/pub/shockwave/cabs/flash"
+ "/swflash.cab>http://download.macromedia.com/pub/shockwave/cabs/"
+ "flash/swflash.cab</a>#version=7,0,0,0' height=48 width=48 "
+ "classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000><PARAM "
+ "NAME='movie' VALUE='flash/";
private static final String AUDIO_APPEND_2 = ".swf'><PARAM NAME='menu' "
+ "VALUE='false'><PARAM NAME='quality' VALUE='high'><PARAM NAME='play' "
+ "VALUE='false'><PARAM NAME='wmode' VALUE='transparent'>"
+ "<embed src='flash/";
private static final String AUDIO_APPEND_3 = ".swf' quality='high' "
+ "width='48' height='48'></embed></OBJECT>";
private static final String AUDIO_APPEND_4 = "</TD></TR></TBODY></TABLE><br>";
public String convert(String input) {
try {
return audioConverter(input);
} catch (Exception e) {
return input;
}
}
private String getText(String index) throws Exception {
int i = Integer.parseInt(index) - 1;
return AUDIO_TEXT[i];
}
private String audioConverter(String input) throws Exception {
Pattern pattern = Pattern.compile(AUDIO_PATTERN_STRING, 2);
Matcher matcher = pattern.matcher(input);
StringBuffer stringbuffer = new StringBuffer();
int i = 0;
for (boolean flag = matcher.find(); flag; flag = matcher.find()) {
i++;
if (i > 3) {
matcher.appendReplacement(stringbuffer, "");
} else {
matcher.appendReplacement(stringbuffer, AUDIO_APPEND_1
+ matcher.group(1) + AUDIO_APPEND_2 + matcher.group(1)
+ AUDIO_APPEND_3 + getText(matcher.group(1))
+ AUDIO_APPEND_4);
}
}
matcher.appendTail(stringbuffer);
return stringbuffer.toString();
}
}