package com.taobao.loganalyzer.input.tanxclick.parser;
import com.taobao.loganalyzer.input.tanxclick.common.LogField;
import com.taobao.loganalyzer.input.tanxclick.common.LogParser;
import com.taobao.loganalyzer.input.tanxclick.common.LogRecord;
import com.taobao.loganalyzer.input.tanxclick.common.SectionParser;
/**
* Section 6: AF section解析类
* @see <a href="http://sps.corp.alimama.com/ad/ADExchange/DocLib/Tan(X)%E7%B3%BB%E7%BB%9F%E6%97%A5%E5%BF%97%E8%AE%BE%E8%AE%A1.pdf">点击日志格式</a>
* @author kangtian
*
*/
public class AFSectionParser implements SectionParser {
/**
* 对AF section进行解析
* section6-反作弊section为空--------不允许
*/
public boolean parse(LogParser lp, LogRecord lr) {
if (lp.isCurCharCA()) {
return false;
}
else {
//跳转类型
lr.addField("JumpType", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
//error message
//lr.addField("ErrorMsg", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
// HTTP_VIA
lr.addField("HttpVia", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
// HTTP_X_FORWARDED_FOR
lr.addField("HttpXForwardedFor", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
// HTTP_PROXY_CONNECTION
lr.addField("HttpProxyConnection", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
// HTTP_ACCEPT
lr.addField("HttpAccept", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
// HTTP_ACCEPT_CHARSET
lr.addField("HttpAcceptCharset", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
// HTTP_ACCPET_LANGUAGE
lr.addField("HttpAcceptLanguage", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
// HTTP_ACCEPT_ENCODING
lr.addField("HttpAcceptEncoding", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
// HTTP_KEEP_ALIVE
lr.addField("HttpKeepAlive", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
// HTTP_X_MOZ
lr.addField("HttpXMoz", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
// User-agent
lr.addField("UserAgent", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
// extra info
lr.addField("ExtraInfo", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
// 前端过滤明细代码
lr.addField("FFCode", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
// 后端过滤明细代码
lr.addField("BFCode", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
// 前端过滤是否被过滤标志1,0
lr.addField("FFIsFilter", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
// 是否被过滤
String IsFilter = lp.getAllRemained();
if (IsFilter==null || IsFilter.indexOf(LogParser.CONTROL_A)!=-1 || IsFilter.indexOf(LogParser.CONTROL_B)!=-1)
return false;
lr.addField("IsFilter", new LogField(LogField.TYPE_STRING, IsFilter));
}
if (lp.isError()) {
return false;
}
return true;
}
}