OSSEZ-19 修改 Twitter 的格式

This commit is contained in:
YuCheng Hu 2017-10-02 17:02:36 -04:00
parent 95cb44029b
commit 8a8ef3d883
2 changed files with 98 additions and 3 deletions

View File

@ -341,12 +341,12 @@ public class VisaImporter extends DataCrawl {
visaStatusLog.setVisa(visa);
DateTime dt = new DateTime();
String visaStatus = StringUtils.upperCase(StringUtils.replace(visaStatusLog.getVisaStatus().name(), "_", " "));
StringBuffer twitterContent = new StringBuffer("Case Updated ");
twitterContent.append(" [" + visaStatusLog.getVisa().getVisaClass().getVisaClassName() + "]");
twitterContent.append(" - [" + visaStatusLog.getVisa().getUsEmbassy().getCity() + "] status to");
twitterContent
.append(" [" + StringUtils.capitalize(StringUtils.replace(visaStatusLog.getVisaStatus().name(), "_", " ")) + "] in");
twitterContent.append(" -[ #" + visaStatusLog.getVisa().getUsEmbassy().getCity() + " ] Status To");
twitterContent.append(" [ " + visaStatus + " ] in");
dt = new DateTime(visaStatusLog.getDateVisaLastUpdatedDate());
twitterContent.append(" [" + dt.toString("yyyy-MM-dd") + "].");

View File

@ -0,0 +1,95 @@
package com.usvisatrack.services.test;
import java.util.Date;
import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.usvisatrack.core.dao.model.SocialMedia;
import com.usvisatrack.core.dao.model.SocialMediaLog;
import com.usvisatrack.core.dao.model.Visa;
import com.usvisatrack.core.dao.model.VisaStatusLog;
import com.usvisatrack.core.factories.LogFactory;
import com.usvisatrack.core.factories.SocialMediaFactory;
import com.usvisatrack.core.factories.VisaFactory;
import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterFactory;
import twitter4j.conf.ConfigurationBuilder;
/**
* TEST Data API
*
* @author Yucheng Hu
*
*/
public class SocialMediaTest {
private static Logger logger = LoggerFactory.getLogger(SocialMediaTest.class);
private static final String TWITTER = "Twitter";
@Test
public void testTwitterUserTimeline() throws Exception {
SocialMedia socialMedia = SocialMediaFactory.get(TWITTER);
VisaStatusLog visaStatusLog = LogFactory.getVisaStatusLog(10023L);
SocialMediaLog socialMediaLog = LogFactory.getSocialMediaLog(socialMedia, visaStatusLog);
if (socialMediaLog == null) {
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true).setOAuthConsumerKey(socialMedia.getKey()).setOAuthConsumerSecret(socialMedia.getKeySecret())
.setOAuthAccessToken(socialMedia.getToken()).setOAuthAccessTokenSecret(socialMedia.getTokenSecret());
Twitter twitter = new TwitterFactory(cb.build()).getInstance();
Visa visa = VisaFactory.get(visaStatusLog.getVisa().getId());
visaStatusLog.setVisa(visa);
DateTime dt = new DateTime();
String visaStatus = StringUtils.upperCase(StringUtils.replace(visaStatusLog.getVisaStatus().name(), "_", " "));
StringBuffer twitterContent = new StringBuffer("Case Updated ");
twitterContent.append(" [" + visaStatusLog.getVisa().getVisaClass().getVisaClassName() + "]");
twitterContent.append(" -[ #" + visaStatusLog.getVisa().getUsEmbassy().getCity() + " ] Status To");
twitterContent.append(" [ " + visaStatus + " ] in");
dt = new DateTime(visaStatusLog.getDateVisaLastUpdatedDate());
twitterContent.append(" [" + dt.toString("yyyy-MM-dd") + "].");
twitterContent.append(" https://usvisatrack.com/caseinfo/" + visaStatusLog.getVisa().getId());
// String test = "https://usvisatrack.com Updated [H1-B]case for [BEIJING] embassy to status [ISSUED] in 2017-09-28. Click
// https://usvisatrack.com/caseinfo/31339";
logger.debug(twitterContent.toString());
Status status = twitter.updateStatus(twitterContent.toString());
logger.debug("TEXT - {}", status.getId());
socialMediaLog = new SocialMediaLog();
socialMediaLog.setSocialMedia(socialMedia);
socialMediaLog.setVisaStatusLog(visaStatusLog);
socialMediaLog.setContentPublished(twitterContent.toString());
socialMediaLog.setDatePublished(new Date());
socialMediaLog.setResponseUuid("" + status.getId());
SocialMediaFactory.save(socialMediaLog);
} else {
logger.debug("Content for [{}] already sent in [{}] for ID - [{}].", socialMedia.getName(), socialMediaLog.getCreateDate(),
socialMediaLog.getId());
}
// List<Status> statuses = twitter.getUserTimeline();
// for (Status status : statuses) {
// System.out.println("@" + status.getUser().getScreenName() + " - " + status.getText());
// }
}
@Test
public void testDealsSave() throws Exception {
}
}