package com;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAccessor;
import java.util.HashSet;
import java.util.Locale;
public class UserUtils {
public static weblog filterLog(String line) {
weblog webLog = new weblog();
String[] contents = line.split(" ");
if (contents.length > 11) {
webLog.setRequestIP(contents[0]);
webLog.setRequestuser(contents[1]);
webLog.setRequestTime(parseDateTime(contents[3].substring(1)));
webLog.setRequestURL(contents[6]);
webLog.setRequestCode(contents[8]);
webLog.setRequestbytesCount(contents[9]);
webLog.setReferer(contents[10]);
if (contents.length > 12) {
webLog.setUserAgent(contents[11] + " " + contents[12]);
} else {
webLog.setUserAgent(contents[11]);
}
if (Integer.parseInt(webLog.getRequestCode()) >= 400) {
webLog.setFlag(false);
} else {
webLog.setFlag(true);
}
} else {
webLog.setFlag(false);
}
return webLog;
}
public static weblog filterByPVs(String line) {
weblog webLog = filterLog(line);
HashSet<String> urls = new HashSet<>();
urls.add("/about");
urls.add("/black-ip-list/");
urls.add("/cassandra-clustor/");
urls.add("/finance-rhive-repurchase/");
urls.add("/hadoop-family-roadmap/");
urls.add("/hadoop-hive-intro/");
urls.add("/hadoop-zookeeper-intro/");
urls.add("/hadoop-mahout-roadmap/");
if (!urls.contains(webLog.getRequestURL())) {
webLog.setFlag(false);
}
return webLog;
}
public static String parseDateTime(String dateTime) {
DateTimeFormatter srcDateTimeFormatter = DateTimeFormatter.ofPattern("dd/MMM/yyyy:HH:mm:ss", Locale.ENGLISH);
DateTimeFormatter dstDateTimeFormatter = DateTimeFormatter.ofPattern("yyyyMMddHH");
TemporalAccessor parseDateTime = srcDateTimeFormatter.parse(dateTime);
String formattedDateTime = dstDateTimeFormatter.format(parseDateTime);
return formattedDateTime;
}
}