OSSEZ-20 设置 Twitter 的状态为每 5 分钟 2 条 Twitter 的速度进行补发

This commit is contained in:
YuCheng Hu 2017-10-02 23:29:30 -04:00
parent 8a8ef3d883
commit 0b53da6fe1

View File

@ -54,12 +54,16 @@ import twitter4j.conf.ConfigurationBuilder;
public class VisaImporter extends DataCrawl {
private static final Logger logger = LoggerFactory.getLogger(VisaImporter.class);
private static final String CONF_LAST_RUNTIME = VisaImporter.class.getName() + "-lastRuntime";
private static final String CONF_TWITTER_COUNT = VisaImporter.class.getName() + "-twitterCount";
private static final String TWITTER = "Twitter";
public static final String URL_CHECKEE = "https://www.checkee.info/main.php?dispdate=";
private static final String URL_CHECKEE = "https://www.checkee.info/main.php?dispdate=";
public static HashMap<String, VisaClass> visaClassMap = new HashMap<String, VisaClass>();
public static DateTime lastRuntime = new DateTime();
private static HashMap<String, VisaClass> visaClassMap = new HashMap<String, VisaClass>();
private static DateTime lastRuntime = new DateTime();
private static Integer twitterCount = 0;
private static boolean webCrawl = false;
/**
* Command process function
@ -97,13 +101,15 @@ public class VisaImporter extends DataCrawl {
crawlWebVisa(URL_CHECKEE + DateTimeFormat.forPattern("yyyy-MM").print(new DateTime()));
crawlWebVisa(URL_CHECKEE + DateTimeFormat.forPattern("yyyy-MM").print(new DateTime().minusMonths(1)));
processCleanup();
webCrawl = true;
} else {
logger.debug("NOT RUN");
}
// SOCIAL MEDIA
SocialMedia();
processCleanup();
}
/**
@ -124,6 +130,18 @@ public class VisaImporter extends DataCrawl {
}
logger.debug("Last Runtime - [{}]", lastRuntime);
// TWITTER COUNT
ConfApp confAppTwitterCount = ConfFactory.get(CONF_TWITTER_COUNT);
if (confAppTwitterCount != null) {
twitterCount = NumberUtils.createInteger(confAppTwitterCount.getValue());
} else {
confAppTwitterCount = new ConfApp();
confAppTwitterCount.setName(CONF_TWITTER_COUNT);
confAppTwitterCount.setValue("999");
ConfFactory.save(confAppTwitterCount);
}
logger.debug("Last Runtime - [{}]", lastRuntime);
// VISA CLASS MAP
List<VisaClass> visaClassList = VisaFactory.getAllVisaClass();
for (VisaClass visaClass : visaClassList) {
@ -140,13 +158,18 @@ public class VisaImporter extends DataCrawl {
logger.error("Init Data from Database");
ConfApp confAppLastRuntime = ConfFactory.get(CONF_LAST_RUNTIME);
if (confAppLastRuntime == null) {
confAppLastRuntime = new ConfApp();
confAppLastRuntime.setName(CONF_LAST_RUNTIME);
if (webCrawl && confAppLastRuntime != null) {
confAppLastRuntime.setValue(new DateTime().toString());
ConfFactory.save(confAppLastRuntime);
}
confAppLastRuntime = ConfFactory.get(CONF_TWITTER_COUNT);
if (confAppLastRuntime != null) {
confAppLastRuntime.setValue(String.valueOf(twitterCount + 3));
ConfFactory.save(confAppLastRuntime);
}
confAppLastRuntime.setValue(new DateTime().toString());
ConfFactory.save(confAppLastRuntime);
}
/**
@ -184,30 +207,30 @@ public class VisaImporter extends DataCrawl {
String visaClassName = StringUtils.trimToEmpty(tds.get(2).text());
if (StringUtils.isNotBlank(visaClassName)) {
switch (visaClassName) {
case "B1":
visaClassName = "B-1";
break;
case "B2":
visaClassName = "B-2";
break;
case "H1":
visaClassName = "H1-B";
break;
case "H4":
visaClassName = "H-4";
break;
case "F1":
visaClassName = "F-1";
break;
case "F2":
visaClassName = "F-2";
break;
case "J1":
visaClassName = "J-1";
break;
case "L1":
visaClassName = "L-1";
break;
case "B1" :
visaClassName = "B-1";
break;
case "B2" :
visaClassName = "B-2";
break;
case "H1" :
visaClassName = "H1-B";
break;
case "H4" :
visaClassName = "H-4";
break;
case "F1" :
visaClassName = "F-1";
break;
case "F2" :
visaClassName = "F-2";
break;
case "J1" :
visaClassName = "J-1";
break;
case "L1" :
visaClassName = "L-1";
break;
}
visa.setVisaClass(visaClassMap.get(visaClassName));
@ -217,12 +240,12 @@ public class VisaImporter extends DataCrawl {
String visaEntryName = StringUtils.upperCase(StringUtils.trimToEmpty(tds.get(3).text()));
if (StringUtils.isNotBlank(visaEntryName)) {
switch (visaEntryName) {
case "NEW":
visa.setVisaEntry(VisaEntry.NEW);
break;
case "RENEWAL":
visa.setVisaEntry(VisaEntry.RENEWAL);
break;
case "NEW" :
visa.setVisaEntry(VisaEntry.NEW);
break;
case "RENEWAL" :
visa.setVisaEntry(VisaEntry.RENEWAL);
break;
}
}
@ -231,27 +254,27 @@ public class VisaImporter extends DataCrawl {
String usEmbassyName = StringUtils.upperCase(StringUtils.trimToEmpty(tds.get(4).text()));
if (StringUtils.isNotBlank(usEmbassyName)) {
switch (usEmbassyName) {
case "BEIJING":
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "BeiJing"));
break;
case "CHENGDU":
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "Chengdu"));
break;
case "GUANGZHOU":
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "Guangzhou"));
break;
case "SHANGHAI":
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "Shanghai"));
break;
case "SHENYANG":
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "Shenyang"));
break;
case "WUHAN":
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "Wuhan"));
break;
case "HONGKONG":
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "HongKong"));
break;
case "BEIJING" :
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "BeiJing"));
break;
case "CHENGDU" :
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "Chengdu"));
break;
case "GUANGZHOU" :
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "Guangzhou"));
break;
case "SHANGHAI" :
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "Shanghai"));
break;
case "SHENYANG" :
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "Shenyang"));
break;
case "WUHAN" :
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "Wuhan"));
break;
case "HONGKONG" :
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "HongKong"));
break;
}
}
@ -264,15 +287,15 @@ public class VisaImporter extends DataCrawl {
String visaStatusName = StringUtils.upperCase(StringUtils.trimToEmpty(tds.get(6).text()));
if (StringUtils.isNotBlank(visaStatusName)) {
switch (visaStatusName) {
case "CLEAR":
visa.setVisaStatus(VisaStatus.ISSUED);
break;
case "PENDING":
visa.setVisaStatus(VisaStatus.ADMINISTRATIVE_PROCESSING);
break;
case "REJECT":
visa.setVisaStatus(VisaStatus.REFUSED);
break;
case "CLEAR" :
visa.setVisaStatus(VisaStatus.ISSUED);
break;
case "PENDING" :
visa.setVisaStatus(VisaStatus.ADMINISTRATIVE_PROCESSING);
break;
case "REJECT" :
visa.setVisaStatus(VisaStatus.REFUSED);
break;
}
}
@ -323,6 +346,14 @@ public class VisaImporter extends DataCrawl {
publishTwitter(visaStatusLog);
}
for (int i = twitterCount; i < twitterCount + 5; i++) {
VisaStatusLog visaStatusLog = LogFactory.getVisaStatusLog(NumberUtils.toLong(String.valueOf(i)));
if (visaStatusLog != null) {
publishTwitter(visaStatusLog);
}
}
}
private void publishTwitter(VisaStatusLog visaStatusLog) {